LLVMFuzzerTestOneInput:
   12|  8.21k|{
   13|  8.21k|    using namespace boost::beast;
   14|       |
   15|  8.21k|    error_code ec;
   16|  8.21k|    flat_buffer buffer;
   17|  8.21k|    net::io_context ioc;
   18|  8.21k|    test::stream remote{ioc};
   19|       |
   20|  8.21k|    websocket::stream<test::stream> ws{
   21|  8.21k|        ioc, string_view{reinterpret_cast<const char*>(data), size}};
   22|       |
   23|  8.21k|    ws.set_option(websocket::stream_base::decorator(
   24|  8.21k|        [](websocket::response_type& res)
   25|  8.21k|        {
   26|  8.21k|            res.set(http::field::server, "websocket-server-sync");
   27|  8.21k|        }));
   28|       |
   29|  8.21k|    websocket::permessage_deflate pd;
   30|  8.21k|    pd.server_enable = (size % 2) != 0;
   31|  8.21k|    pd.compLevel = static_cast<int>(size % 9);
   32|  8.21k|    ws.set_option(pd);
   33|       |
   34|  8.21k|    ws.next_layer().connect(remote);
   35|  8.21k|    ws.next_layer().close_remote();
   36|  8.21k|    ws.accept(ec);
   37|       |
   38|  8.21k|    if(!ec)
  ------------------
  |  Branch (38:8): [True: 4.64k, False: 3.57k]
  ------------------
   39|  4.64k|    {
   40|  4.64k|        ws.read(buffer, ec);
   41|  4.64k|        ws.text(ws.got_text());
   42|  4.64k|        ws.write(buffer.data(), ec);
   43|  4.64k|    }
   44|       |
   45|  8.21k|    return 0;
   46|  8.21k|}
websocket_server.cpp:_ZZ22LLVMFuzzerTestOneInputENK3$_0clERN5boost5beast4http7messageILb0ENS2_17basic_string_bodyIcNSt3__111char_traitsIcEENS5_9allocatorIcEEEENS2_12basic_fieldsIS9_EEEE:
   25|  5.13k|        {
   26|  5.13k|            res.set(http::field::server, "websocket-server-sync");
   27|  5.13k|        }));

_ZN5boost4asio15any_io_executorC2INS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEET_NS0_10constraintIXsr13conditional_tIXaantsr7is_sameIS9_S1_EE5valuentsr10is_base_ofINS0_9execution6detail17any_executor_baseES9_EE5valueENSC_24is_valid_target_executorIS9_FvNSB_12context_as_tIRNS0_17execution_contextEEENSC_8blocking7never_tILi0EEENSB_11prefer_onlyINSJ_10possibly_tILi0EEEEENSM_INSC_16outstanding_work9tracked_tILi0EEEEENSM_INSQ_11untracked_tILi0EEEEENSM_INSC_12relationship6fork_tILi0EEEEENSM_INSX_14continuation_tILi0EEEEEEEENS5_17integral_constantIbLb0EEEEE5valueEiE4typeE:
  173|  16.4k|    : base_type(static_cast<Executor&&>(e))
  174|  16.4k|  {
  175|  16.4k|  }

_ZN5boost4asio20basic_waitable_timerINSt3__16chrono12steady_clockENS0_11wait_traitsIS4_EENS0_15any_io_executorEEC2ERKS7_:
  179|  8.21k|    : impl_(0, ex)
  180|  8.21k|  {
  181|  8.21k|  }
_ZN5boost4asio20basic_waitable_timerINSt3__16chrono12steady_clockENS0_11wait_traitsIS4_EENS0_15any_io_executorEED2Ev:
  376|  8.21k|  {
  377|  8.21k|  }
_ZN5boost4asio20basic_waitable_timerINSt3__16chrono12steady_clockENS0_11wait_traitsIS4_EENS0_15any_io_executorEE10expires_atERKNS3_10time_pointIS4_NS3_8durationIxNS2_5ratioILl1ELl1000000000EEEEEEE:
  481|  12.8k|  {
  482|  12.8k|    boost::system::error_code ec;
  483|  12.8k|    std::size_t s = impl_.get_service().expires_at(
  484|  12.8k|        impl_.get_implementation(), expiry_time, ec);
  485|  12.8k|    boost::asio::detail::throw_error(ec, "expires_at");
  486|  12.8k|    return s;
  487|  12.8k|  }
_ZN5boost4asio20basic_waitable_timerINSt3__16chrono12steady_clockENS0_11wait_traitsIS4_EENS0_15any_io_executorEE6cancelEv:
  408|  9.12k|  {
  409|  9.12k|    boost::system::error_code ec;
  410|  9.12k|    std::size_t s = impl_.get_service().cancel(impl_.get_implementation(), ec);
  411|  9.12k|    boost::asio::detail::throw_error(ec, "cancel");
  412|  9.12k|    return s;
  413|  9.12k|  }

_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS0_12const_bufferEEEmRKT_RKT0_:
 2594|   648k|{
 2595|   648k|  return detail::buffer_copy(
 2596|   648k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|   648k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|   648k|      boost::asio::buffer_sequence_begin(target),
 2599|   648k|      boost::asio::buffer_sequence_end(target),
 2600|   648k|      boost::asio::buffer_sequence_begin(source),
 2601|   648k|      boost::asio::buffer_sequence_end(source));
 2602|   648k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferEPKNS0_12const_bufferEEEmNS1_10one_bufferES9_T_SA_T0_SB_:
 2418|   648k|{
 2419|   648k|  return (buffer_copy_1)(*target_begin, *source_begin);
 2420|   648k|}
_ZN5boost4asio6detail13buffer_copy_1ERKNS0_14mutable_bufferERKNS0_12const_bufferE:
 2404|  3.95M|{
 2405|  3.95M|  using namespace std; // For memcpy.
 2406|  3.95M|  std::size_t target_size = target.size();
 2407|  3.95M|  std::size_t source_size = source.size();
 2408|  3.95M|  std::size_t n = target_size < source_size ? target_size : source_size;
  ------------------
  |  Branch (2408:19): [True: 2.65M, False: 1.30M]
  ------------------
 2409|  3.95M|  if (n > 0)
  ------------------
  |  Branch (2409:7): [True: 3.95M, False: 0]
  ------------------
 2410|  3.95M|    memcpy(target.data(), source.data(), n);
 2411|  3.95M|  return n;
 2412|  3.95M|}
_ZNK5boost4asio14mutable_buffer4sizeEv:
  188|   489M|  {
  189|   489M|    return size_;
  190|   489M|  }
_ZNK5boost4asio12const_buffer4sizeEv:
  307|  99.6M|  {
  308|  99.6M|    return size_;
  309|  99.6M|  }
_ZNK5boost4asio14mutable_buffer4dataEv:
  178|   278M|  {
  179|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  180|       |    if (size_ && debug_check_)
  181|       |      debug_check_();
  182|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  183|   278M|    return data_;
  184|   278M|  }
_ZNK5boost4asio12const_buffer4dataEv:
  297|  10.1M|  {
  298|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  299|       |    if (size_ && debug_check_)
  300|       |      debug_check_();
  301|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  302|  10.1M|    return data_;
  303|  10.1M|  }
_ZN5boost4asio21buffer_sequence_beginINS0_14mutable_bufferEEEPKS2_RKT_NS0_10constraintIXsr14is_convertibleIPS6_S4_EE5valueEiE4typeE:
  370|  5.01M|{
  371|  5.01M|  return static_cast<const mutable_buffer*>(detail::addressof(b));
  372|  5.01M|}
_ZN5boost4asio19buffer_sequence_endINS0_14mutable_bufferEEEPKS2_RKT_NS0_10constraintIXsr14is_convertibleIPS6_S4_EE5valueEiE4typeE:
  455|   199M|{
  456|   199M|  return static_cast<const mutable_buffer*>(detail::addressof(b)) + 1;
  457|   199M|}
_ZN5boost4asio21buffer_sequence_beginINS0_12const_bufferEEEPKS2_RKT_NS0_10constraintIXsr14is_convertibleIPS6_S4_EE5valueEiE4typeE:
  380|   754k|{
  381|   754k|  return static_cast<const const_buffer*>(detail::addressof(b));
  382|   754k|}
_ZN5boost4asio19buffer_sequence_endINS0_12const_bufferEEEPKS2_RKT_NS0_10constraintIXsr14is_convertibleIPS6_S4_EE5valueEiE4typeE:
  465|   878k|{
  466|   878k|  return static_cast<const const_buffer*>(detail::addressof(b)) + 1;
  467|   878k|}
_ZN5boost4asio14mutable_bufferC2EPvm:
  128|   149M|    : data_(data),
  129|   149M|      size_(size)
  130|   149M|  {
  131|   149M|  }
_ZN5boost4asio6bufferEPKvm:
  940|  8.25k|{
  941|  8.25k|  return const_buffer(data, size_in_bytes);
  942|  8.25k|}
_ZN5boost4asio12const_bufferC2EPKvm:
  241|  6.99M|    : data_(data),
  242|  6.99M|      size_(size)
  243|  6.99M|  {
  244|  6.99M|  }
_ZN5boost4asio11buffer_copyINS_5beast6detail12buffers_pairILb1EEENS0_12const_bufferEEEmRKT_RKT0_:
 2594|  8.21k|{
 2595|  8.21k|  return detail::buffer_copy(
 2596|  8.21k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|  8.21k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|  8.21k|      boost::asio::buffer_sequence_begin(target),
 2599|  8.21k|      boost::asio::buffer_sequence_end(target),
 2600|  8.21k|      boost::asio::buffer_sequence_begin(source),
 2601|  8.21k|      boost::asio::buffer_sequence_end(source));
 2602|  8.21k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferEPKNS0_12const_bufferEEEmNS1_16multiple_buffersENS1_10one_bufferET_SB_T0_SC_m:
 2461|  8.21k|{
 2462|  8.21k|  std::size_t total_bytes_copied = 0;
 2463|  8.21k|  TargetIterator target_iter = target_begin;
 2464|       |
 2465|  8.21k|  for (const_buffer source_buffer(
 2466|  8.21k|        boost::asio::buffer(*source_begin, max_bytes_to_copy));
 2467|  8.21k|      source_buffer.size() && target_iter != target_end; ++target_iter)
  ------------------
  |  Branch (2467:7): [True: 0, False: 8.21k]
  |  Branch (2467:31): [True: 0, False: 0]
  ------------------
 2468|      0|  {
 2469|      0|    mutable_buffer target_buffer(*target_iter);
 2470|      0|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2471|      0|    total_bytes_copied += bytes_copied;
 2472|      0|    source_buffer += bytes_copied;
 2473|      0|  }
 2474|       |
 2475|  8.21k|  return total_bytes_copied;
 2476|  8.21k|}
_ZN5boost4asio6bufferERKNS0_12const_bufferEm:
  914|   359k|{
  915|   359k|  return const_buffer(b.data(),
  916|   359k|      b.size() < max_size_in_bytes
  ------------------
  |  Branch (916:7): [True: 359k, False: 0]
  ------------------
  917|   359k|      ? b.size() : max_size_in_bytes
  918|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  919|       |      , b.get_debug_check()
  920|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  921|   359k|      );
  922|   359k|}
_ZN5boost4asio12const_bufferpLEm:
  313|  32.3k|  {
  314|  32.3k|    std::size_t offset = n < size_ ? n : size_;
  ------------------
  |  Branch (314:26): [True: 24.2k, False: 8.08k]
  ------------------
  315|  32.3k|    data_ = static_cast<const char*>(data_) + offset;
  316|  32.3k|    size_ -= offset;
  317|  32.3k|    return *this;
  318|  32.3k|  }
_ZN5boost4asio21buffer_sequence_beginINS_5beast6detail12buffers_pairILb1EEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKNS0_14mutable_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SC_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SH_EE5valueEiE4typeE:
  436|  4.70M|{
  437|  4.70M|  return c.begin();
  438|  4.70M|}
_ZN5boost4asio19buffer_sequence_endINS_5beast6detail12buffers_pairILb1EEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKNS0_14mutable_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SC_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SH_EE5valueEiE4typeE:
  521|  1.50M|{
  522|  1.50M|  return c.end();
  523|  1.50M|}
_ZN5boost4asio12const_bufferC2ERKNS0_14mutable_bufferE:
  248|  71.5M|    : data_(b.data()),
  249|  71.5M|      size_(b.size())
  250|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  251|       |      , debug_check_(b.get_debug_check())
  252|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  253|  71.5M|  {
  254|  71.5M|  }
_ZN5boost4asio11buffer_sizeINS_5beast6detail12buffers_pairILb1EEEEEmRKT_:
  586|  1.00M|{
  587|  1.00M|  return detail::buffer_size(
  588|  1.00M|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  1.00M|      boost::asio::buffer_sequence_begin(b),
  590|  1.00M|      boost::asio::buffer_sequence_end(b));
  591|  1.00M|}
_ZN5boost4asio6detail11buffer_sizeIPKNS0_14mutable_bufferEEEmNS1_16multiple_buffersET_S7_:
  551|  1.00M|{
  552|  1.00M|  std::size_t total_buffer_size = 0;
  553|       |
  554|  1.00M|  Iterator iter = begin;
  555|  2.06M|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 1.05M, False: 1.00M]
  ------------------
  556|  1.05M|  {
  557|  1.05M|    const_buffer b(*iter);
  558|  1.05M|    total_buffer_size += b.size();
  559|  1.05M|  }
  560|       |
  561|  1.00M|  return total_buffer_size;
  562|  1.00M|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS_5beast6detail12buffers_pairILb1EEEEEmRKT_RKT0_:
 2594|    573|{
 2595|    573|  return detail::buffer_copy(
 2596|    573|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|    573|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|    573|      boost::asio::buffer_sequence_begin(target),
 2599|    573|      boost::asio::buffer_sequence_end(target),
 2600|    573|      boost::asio::buffer_sequence_begin(source),
 2601|    573|      boost::asio::buffer_sequence_end(source));
 2602|    573|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferES5_EEmNS1_10one_bufferENS1_16multiple_buffersET_S8_T0_S9_m:
 2438|   368k|{
 2439|   368k|  std::size_t total_bytes_copied = 0;
 2440|   368k|  SourceIterator source_iter = source_begin;
 2441|       |
 2442|   368k|  for (mutable_buffer target_buffer(
 2443|   368k|        boost::asio::buffer(*target_begin, max_bytes_to_copy));
 2444|   737k|      target_buffer.size() && source_iter != source_end; ++source_iter)
  ------------------
  |  Branch (2444:7): [True: 375k, False: 362k]
  |  Branch (2444:31): [True: 369k, False: 6.18k]
  ------------------
 2445|   369k|  {
 2446|   369k|    const_buffer source_buffer(*source_iter);
 2447|   369k|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2448|   369k|    total_bytes_copied += bytes_copied;
 2449|   369k|    target_buffer += bytes_copied;
 2450|   369k|  }
 2451|       |
 2452|   368k|  return total_bytes_copied;
 2453|   368k|}
_ZN5boost4asio6bufferERKNS0_14mutable_bufferEm:
  883|  2.91M|{
  884|  2.91M|  return mutable_buffer(
  885|  2.91M|      mutable_buffer(b.data(),
  886|  2.91M|        b.size() < max_size_in_bytes
  ------------------
  |  Branch (886:9): [True: 2.54M, False: 364k]
  ------------------
  887|  2.91M|        ? b.size() : max_size_in_bytes
  888|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  889|       |        , b.get_debug_check()
  890|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  891|  2.91M|        ));
  892|  2.91M|}
_ZN5boost4asio14mutable_bufferpLEm:
  194|  2.94M|  {
  195|  2.94M|    std::size_t offset = n < size_ ? n : size_;
  ------------------
  |  Branch (195:26): [True: 64.3k, False: 2.87M]
  ------------------
  196|  2.94M|    data_ = static_cast<char*>(data_) + offset;
  197|  2.94M|    size_ -= offset;
  198|  2.94M|    return *this;
  199|  2.94M|  }
_ZN5boost4asio6bufferEPvm:
  930|  26.6k|{
  931|  26.6k|  return mutable_buffer(data, size_in_bytes);
  932|  26.6k|}
_ZN5boost4asio11buffer_copyINS_5beast6detail12buffers_pairILb1EEENS0_14mutable_bufferEEEmRKT_RKT0_m:
 2632|  26.3k|{
 2633|  26.3k|  return detail::buffer_copy(
 2634|  26.3k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2635|  26.3k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2636|  26.3k|      boost::asio::buffer_sequence_begin(target),
 2637|  26.3k|      boost::asio::buffer_sequence_end(target),
 2638|  26.3k|      boost::asio::buffer_sequence_begin(source),
 2639|  26.3k|      boost::asio::buffer_sequence_end(source), max_bytes_to_copy);
 2640|  26.3k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferES5_EEmNS1_16multiple_buffersENS1_10one_bufferET_S8_T0_S9_m:
 2461|  29.0k|{
 2462|  29.0k|  std::size_t total_bytes_copied = 0;
 2463|  29.0k|  TargetIterator target_iter = target_begin;
 2464|       |
 2465|  29.0k|  for (const_buffer source_buffer(
 2466|  29.0k|        boost::asio::buffer(*source_begin, max_bytes_to_copy));
 2467|  61.3k|      source_buffer.size() && target_iter != target_end; ++target_iter)
  ------------------
  |  Branch (2467:7): [True: 53.2k, False: 8.08k]
  |  Branch (2467:31): [True: 32.3k, False: 20.9k]
  ------------------
 2468|  32.3k|  {
 2469|  32.3k|    mutable_buffer target_buffer(*target_iter);
 2470|  32.3k|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2471|  32.3k|    total_bytes_copied += bytes_copied;
 2472|  32.3k|    source_buffer += bytes_copied;
 2473|  32.3k|  }
 2474|       |
 2475|  29.0k|  return total_bytes_copied;
 2476|  29.0k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast16buffers_cat_viewIJNS2_6detail11buffers_refINS3_IJNS0_12const_bufferES6_S6_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEEEDTcldtfp_5beginEERT_NS0_10constraintIXntsr14is_convertibleIPKSK_PKNS0_14mutable_bufferEEE5valueEiE4typeENSM_IXntsr14is_convertibleISO_PKS6_EE5valueEiE4typeENSM_IXntsr14is_convertibleISK_SP_EE5valueEiE4typeENSM_IXntsr14is_convertibleISK_S6_EE5valueEiE4typeE:
  417|  5.13k|{
  418|  5.13k|  return c.begin();
  419|  5.13k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES6_S6_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSK_PKNS0_14mutable_bufferEEE5valueEiE4typeENSM_IXntsr14is_convertibleISN_PKS6_EE5valueEiE4typeENSM_IXntsr14is_convertibleISJ_SO_EE5valueEiE4typeENSM_IXntsr14is_convertibleISJ_S6_EE5valueEiE4typeE:
  436|  5.13k|{
  437|  5.13k|  return c.begin();
  438|  5.13k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast16buffers_cat_viewIJNS0_12const_bufferES4_S4_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS5_10chunk_crlfEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSH_PKNS0_14mutable_bufferEEE5valueEiE4typeENSJ_IXntsr14is_convertibleISK_PKS4_EE5valueEiE4typeENSJ_IXntsr14is_convertibleISG_SL_EE5valueEiE4typeENSJ_IXntsr14is_convertibleISG_S4_EE5valueEiE4typeE:
  436|  5.14k|{
  437|  5.14k|  return c.begin();
  438|  5.14k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSD_PKNS0_14mutable_bufferEEE5valueEiE4typeENSF_IXntsr14is_convertibleISG_PKNS0_12const_bufferEEE5valueEiE4typeENSF_IXntsr14is_convertibleISC_SH_EE5valueEiE4typeENSF_IXntsr14is_convertibleISC_SM_EE5valueEiE4typeE:
  436|  30.8k|{
  437|  30.8k|  return c.begin();
  438|  30.8k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSD_PKNS0_14mutable_bufferEEE5valueEiE4typeENSF_IXntsr14is_convertibleISG_PKNS0_12const_bufferEEE5valueEiE4typeENSF_IXntsr14is_convertibleISC_SH_EE5valueEiE4typeENSF_IXntsr14is_convertibleISC_SM_EE5valueEiE4typeE:
  521|   163k|{
  522|   163k|  return c.end();
  523|   163k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast4http10chunk_crlfEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPS7_PKNS0_14mutable_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleISA_PKNS0_12const_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleIS6_SB_EE5valueEiE4typeENS9_IXntsr14is_convertibleIS6_SG_EE5valueEiE4typeE:
  436|  30.8k|{
  437|  30.8k|  return c.begin();
  438|  30.8k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast4http10chunk_crlfEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPS7_PKNS0_14mutable_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleISA_PKNS0_12const_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleIS6_SB_EE5valueEiE4typeENS9_IXntsr14is_convertibleIS6_SG_EE5valueEiE4typeE:
  521|  61.7k|{
  522|  61.7k|  return c.end();
  523|  61.7k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES6_S6_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSK_PKNS0_14mutable_bufferEEE5valueEiE4typeENSM_IXntsr14is_convertibleISN_PKS6_EE5valueEiE4typeENSM_IXntsr14is_convertibleISJ_SO_EE5valueEiE4typeENSM_IXntsr14is_convertibleISJ_S6_EE5valueEiE4typeE:
  521|   261k|{
  522|   261k|  return c.end();
  523|   261k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast16buffers_cat_viewIJNS0_12const_bufferES4_S4_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS5_10chunk_crlfEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSH_PKNS0_14mutable_bufferEEE5valueEiE4typeENSJ_IXntsr14is_convertibleISK_PKS4_EE5valueEiE4typeENSJ_IXntsr14is_convertibleISG_SL_EE5valueEiE4typeENSJ_IXntsr14is_convertibleISG_S4_EE5valueEiE4typeE:
  521|   261k|{
  522|   261k|  return c.end();
  523|   261k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast14buffers_suffixINS2_16buffers_cat_viewIJNS2_6detail11buffers_refINS4_IJNS0_12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSN_PKNS0_14mutable_bufferEEE5valueEiE4typeENSP_IXntsr14is_convertibleISQ_PKS7_EE5valueEiE4typeENSP_IXntsr14is_convertibleISM_SR_EE5valueEiE4typeENSP_IXntsr14is_convertibleISM_S7_EE5valueEiE4typeE:
  436|  30.8k|{
  437|  30.8k|  return c.begin();
  438|  30.8k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast16buffers_cat_viewIJNS2_6detail11buffers_refINS3_IJNS0_12const_bufferES6_S6_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSL_PKNS0_14mutable_bufferEEE5valueEiE4typeENSN_IXntsr14is_convertibleISO_PKS6_EE5valueEiE4typeENSN_IXntsr14is_convertibleISK_SP_EE5valueEiE4typeENSN_IXntsr14is_convertibleISK_S6_EE5valueEiE4typeE:
  521|  15.4k|{
  522|  15.4k|  return c.end();
  523|  15.4k|}
_ZN5boost4asioplERKNS0_12const_bufferEm:
  626|  5.81M|{
  627|  5.81M|  std::size_t offset = n < b.size() ? n : b.size();
  ------------------
  |  Branch (627:24): [True: 5.81M, False: 0]
  ------------------
  628|  5.81M|  const char* new_data = static_cast<const char*>(b.data()) + offset;
  629|  5.81M|  std::size_t new_size = b.size() - offset;
  630|  5.81M|  return const_buffer(new_data, new_size
  631|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  632|       |      , b.get_debug_check()
  633|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  634|  5.81M|      );
  635|  5.81M|}
_ZN5boost4asio11buffer_sizeINS_5beast6detail11buffers_refINS2_19buffers_prefix_viewIRKNS2_14buffers_suffixINS2_16buffers_cat_viewIJNS4_INS7_IJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEEEEEEEEEmRKT_:
  586|  10.2k|{
  587|  10.2k|  return detail::buffer_size(
  588|  10.2k|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  10.2k|      boost::asio::buffer_sequence_begin(b),
  590|  10.2k|      boost::asio::buffer_sequence_end(b));
  591|  10.2k|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast19buffers_prefix_viewIRKNS3_14buffers_suffixINS3_16buffers_cat_viewIJNS3_6detail11buffers_refINS6_IJNS0_12const_bufferES9_S9_NS3_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSA_10chunk_crlfEEEEEES9_EEEEEE14const_iteratorEEEmNS1_16multiple_buffersET_SS_:
  551|  10.2k|{
  552|  10.2k|  std::size_t total_buffer_size = 0;
  553|       |
  554|  10.2k|  Iterator iter = begin;
  555|  96.6k|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 86.3k, False: 10.2k]
  ------------------
  556|  86.3k|  {
  557|  86.3k|    const_buffer b(*iter);
  558|  86.3k|    total_buffer_size += b.size();
  559|  86.3k|  }
  560|       |
  561|  10.2k|  return total_buffer_size;
  562|  10.2k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast6detail11buffers_refINS2_19buffers_prefix_viewIRKNS2_14buffers_suffixINS2_16buffers_cat_viewIJNS4_INS7_IJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEEEEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSS_PKNS0_14mutable_bufferEEE5valueEiE4typeENSU_IXntsr14is_convertibleISV_PKS8_EE5valueEiE4typeENSU_IXntsr14is_convertibleISR_SW_EE5valueEiE4typeENSU_IXntsr14is_convertibleISR_S8_EE5valueEiE4typeE:
  436|  15.4k|{
  437|  15.4k|  return c.begin();
  438|  15.4k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast19buffers_prefix_viewIRKNS2_14buffers_suffixINS2_16buffers_cat_viewIJNS2_6detail11buffers_refINS5_IJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSR_PKNS0_14mutable_bufferEEE5valueEiE4typeENST_IXntsr14is_convertibleISU_PKS8_EE5valueEiE4typeENST_IXntsr14is_convertibleISQ_SV_EE5valueEiE4typeENST_IXntsr14is_convertibleISQ_S8_EE5valueEiE4typeE:
  436|  15.4k|{
  437|  15.4k|  return c.begin();
  438|  15.4k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast6detail11buffers_refINS2_19buffers_prefix_viewIRKNS2_14buffers_suffixINS2_16buffers_cat_viewIJNS4_INS7_IJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEEEEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSS_PKNS0_14mutable_bufferEEE5valueEiE4typeENSU_IXntsr14is_convertibleISV_PKS8_EE5valueEiE4typeENSU_IXntsr14is_convertibleISR_SW_EE5valueEiE4typeENSU_IXntsr14is_convertibleISR_S8_EE5valueEiE4typeE:
  521|  15.4k|{
  522|  15.4k|  return c.end();
  523|  15.4k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast19buffers_prefix_viewIRKNS2_14buffers_suffixINS2_16buffers_cat_viewIJNS2_6detail11buffers_refINS5_IJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSR_PKNS0_14mutable_bufferEEE5valueEiE4typeENST_IXntsr14is_convertibleISU_PKS8_EE5valueEiE4typeENST_IXntsr14is_convertibleISQ_SV_EE5valueEiE4typeENST_IXntsr14is_convertibleISQ_S8_EE5valueEiE4typeE:
  521|  15.4k|{
  522|  15.4k|  return c.end();
  523|  15.4k|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS_5beast6detail11buffers_refINS3_19buffers_prefix_viewIRKNS3_14buffers_suffixINS3_16buffers_cat_viewIJNS5_INS8_IJNS0_12const_bufferES9_S9_NS3_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSA_10chunk_crlfEEEEEES9_EEEEEEEEEEEmRKT_RKT0_:
 2594|  5.13k|{
 2595|  5.13k|  return detail::buffer_copy(
 2596|  5.13k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|  5.13k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|  5.13k|      boost::asio::buffer_sequence_begin(target),
 2599|  5.13k|      boost::asio::buffer_sequence_end(target),
 2600|  5.13k|      boost::asio::buffer_sequence_begin(source),
 2601|  5.13k|      boost::asio::buffer_sequence_end(source));
 2602|  5.13k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferENS_5beast19buffers_prefix_viewIRKNS6_14buffers_suffixINS6_16buffers_cat_viewIJNS6_6detail11buffers_refINS9_IJNS0_12const_bufferESC_SC_NS6_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSD_10chunk_crlfEEEEEESC_EEEEEE14const_iteratorEEEmNS1_10one_bufferENS1_16multiple_buffersET_SW_T0_SX_m:
 2438|  5.13k|{
 2439|  5.13k|  std::size_t total_bytes_copied = 0;
 2440|  5.13k|  SourceIterator source_iter = source_begin;
 2441|       |
 2442|  5.13k|  for (mutable_buffer target_buffer(
 2443|  5.13k|        boost::asio::buffer(*target_begin, max_bytes_to_copy));
 2444|  48.3k|      target_buffer.size() && source_iter != source_end; ++source_iter)
  ------------------
  |  Branch (2444:7): [True: 43.1k, False: 5.13k]
  |  Branch (2444:31): [True: 43.1k, False: 0]
  ------------------
 2445|  43.1k|  {
 2446|  43.1k|    const_buffer source_buffer(*source_iter);
 2447|  43.1k|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2448|  43.1k|    total_bytes_copied += bytes_copied;
 2449|  43.1k|    target_buffer += bytes_copied;
 2450|  43.1k|  }
 2451|       |
 2452|  5.13k|  return total_bytes_copied;
 2453|  5.13k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES6_S6_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEEEDTcldtfp_5beginEERT_NS0_10constraintIXntsr14is_convertibleIPKSJ_PKNS0_14mutable_bufferEEE5valueEiE4typeENSL_IXntsr14is_convertibleISN_PKS6_EE5valueEiE4typeENSL_IXntsr14is_convertibleISJ_SO_EE5valueEiE4typeENSL_IXntsr14is_convertibleISJ_S6_EE5valueEiE4typeE:
  417|     11|{
  418|     11|  return c.begin();
  419|     11|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast14buffers_suffixINS2_6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSM_PKNS0_14mutable_bufferEEE5valueEiE4typeENSO_IXntsr14is_convertibleISP_PKS7_EE5valueEiE4typeENSO_IXntsr14is_convertibleISL_SQ_EE5valueEiE4typeENSO_IXntsr14is_convertibleISL_S7_EE5valueEiE4typeE:
  436|     66|{
  437|     66|  return c.begin();
  438|     66|}
_ZN5boost4asio11buffer_sizeINS_5beast6detail11buffers_refINS2_19buffers_prefix_viewIRKNS2_14buffers_suffixINS4_INS2_16buffers_cat_viewIJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEEEEEEmRKT_:
  586|     22|{
  587|     22|  return detail::buffer_size(
  588|     22|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|     22|      boost::asio::buffer_sequence_begin(b),
  590|     22|      boost::asio::buffer_sequence_end(b));
  591|     22|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast19buffers_prefix_viewIRKNS3_14buffers_suffixINS3_6detail11buffers_refINS3_16buffers_cat_viewIJNS0_12const_bufferES9_S9_NS3_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSA_10chunk_crlfEEEEEEEEE14const_iteratorEEEmNS1_16multiple_buffersET_SR_:
  551|     22|{
  552|     22|  std::size_t total_buffer_size = 0;
  553|       |
  554|     22|  Iterator iter = begin;
  555|    154|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 132, False: 22]
  ------------------
  556|    132|  {
  557|    132|    const_buffer b(*iter);
  558|    132|    total_buffer_size += b.size();
  559|    132|  }
  560|       |
  561|     22|  return total_buffer_size;
  562|     22|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast6detail11buffers_refINS2_19buffers_prefix_viewIRKNS2_14buffers_suffixINS4_INS2_16buffers_cat_viewIJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSR_PKNS0_14mutable_bufferEEE5valueEiE4typeENST_IXntsr14is_convertibleISU_PKS8_EE5valueEiE4typeENST_IXntsr14is_convertibleISQ_SV_EE5valueEiE4typeENST_IXntsr14is_convertibleISQ_S8_EE5valueEiE4typeE:
  436|     33|{
  437|     33|  return c.begin();
  438|     33|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast19buffers_prefix_viewIRKNS2_14buffers_suffixINS2_6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSQ_PKNS0_14mutable_bufferEEE5valueEiE4typeENSS_IXntsr14is_convertibleIST_PKS8_EE5valueEiE4typeENSS_IXntsr14is_convertibleISP_SU_EE5valueEiE4typeENSS_IXntsr14is_convertibleISP_S8_EE5valueEiE4typeE:
  436|     33|{
  437|     33|  return c.begin();
  438|     33|}
_ZN5boost4asio19buffer_sequence_endINS_5beast6detail11buffers_refINS2_19buffers_prefix_viewIRKNS2_14buffers_suffixINS4_INS2_16buffers_cat_viewIJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSR_PKNS0_14mutable_bufferEEE5valueEiE4typeENST_IXntsr14is_convertibleISU_PKS8_EE5valueEiE4typeENST_IXntsr14is_convertibleISQ_SV_EE5valueEiE4typeENST_IXntsr14is_convertibleISQ_S8_EE5valueEiE4typeE:
  521|     33|{
  522|     33|  return c.end();
  523|     33|}
_ZN5boost4asio19buffer_sequence_endINS_5beast19buffers_prefix_viewIRKNS2_14buffers_suffixINS2_6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSQ_PKNS0_14mutable_bufferEEE5valueEiE4typeENSS_IXntsr14is_convertibleIST_PKS8_EE5valueEiE4typeENSS_IXntsr14is_convertibleISP_SU_EE5valueEiE4typeENSS_IXntsr14is_convertibleISP_S8_EE5valueEiE4typeE:
  521|     33|{
  522|     33|  return c.end();
  523|     33|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS_5beast6detail11buffers_refINS3_19buffers_prefix_viewIRKNS3_14buffers_suffixINS5_INS3_16buffers_cat_viewIJNS0_12const_bufferES9_S9_NS3_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSA_10chunk_crlfEEEEEEEEEEEEEEmRKT_RKT0_:
 2594|     11|{
 2595|     11|  return detail::buffer_copy(
 2596|     11|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|     11|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|     11|      boost::asio::buffer_sequence_begin(target),
 2599|     11|      boost::asio::buffer_sequence_end(target),
 2600|     11|      boost::asio::buffer_sequence_begin(source),
 2601|     11|      boost::asio::buffer_sequence_end(source));
 2602|     11|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferENS_5beast19buffers_prefix_viewIRKNS6_14buffers_suffixINS6_6detail11buffers_refINS6_16buffers_cat_viewIJNS0_12const_bufferESC_SC_NS6_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSD_10chunk_crlfEEEEEEEEE14const_iteratorEEEmNS1_10one_bufferENS1_16multiple_buffersET_SV_T0_SW_m:
 2438|     11|{
 2439|     11|  std::size_t total_bytes_copied = 0;
 2440|     11|  SourceIterator source_iter = source_begin;
 2441|       |
 2442|     11|  for (mutable_buffer target_buffer(
 2443|     11|        boost::asio::buffer(*target_begin, max_bytes_to_copy));
 2444|     77|      target_buffer.size() && source_iter != source_end; ++source_iter)
  ------------------
  |  Branch (2444:7): [True: 66, False: 11]
  |  Branch (2444:31): [True: 66, False: 0]
  ------------------
 2445|     66|  {
 2446|     66|    const_buffer source_buffer(*source_iter);
 2447|     66|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2448|     66|    total_bytes_copied += bytes_copied;
 2449|     66|    target_buffer += bytes_copied;
 2450|     66|  }
 2451|       |
 2452|     11|  return total_bytes_copied;
 2453|     11|}
_ZN5boost4asio11buffer_sizeINS_5beast14buffers_suffixINS2_16buffers_cat_viewIJNS2_6detail11buffers_refINS4_IJNS0_12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEEEmRKT_:
  586|  10.2k|{
  587|  10.2k|  return detail::buffer_size(
  588|  10.2k|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  10.2k|      boost::asio::buffer_sequence_begin(b),
  590|  10.2k|      boost::asio::buffer_sequence_end(b));
  591|  10.2k|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast14buffers_suffixINS3_16buffers_cat_viewIJNS3_6detail11buffers_refINS5_IJNS0_12const_bufferES8_S8_NS3_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEE14const_iteratorEEEmNS1_16multiple_buffersET_SO_:
  551|  10.2k|{
  552|  10.2k|  std::size_t total_buffer_size = 0;
  553|       |
  554|  10.2k|  Iterator iter = begin;
  555|  53.4k|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 43.1k, False: 10.2k]
  ------------------
  556|  43.1k|  {
  557|  43.1k|    const_buffer b(*iter);
  558|  43.1k|    total_buffer_size += b.size();
  559|  43.1k|  }
  560|       |
  561|  10.2k|  return total_buffer_size;
  562|  10.2k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast14buffers_suffixINS2_16buffers_cat_viewIJNS2_6detail11buffers_refINS4_IJNS0_12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSN_PKNS0_14mutable_bufferEEE5valueEiE4typeENSP_IXntsr14is_convertibleISQ_PKS7_EE5valueEiE4typeENSP_IXntsr14is_convertibleISM_SR_EE5valueEiE4typeENSP_IXntsr14is_convertibleISM_S7_EE5valueEiE4typeE:
  521|  10.2k|{
  522|  10.2k|  return c.end();
  523|  10.2k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast16buffers_cat_viewIJNS2_6detail11buffers_refINS3_IJNS0_12const_bufferES6_S6_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEEEDTcldtfp_3endEERT_NS0_10constraintIXntsr14is_convertibleIPKSK_PKNS0_14mutable_bufferEEE5valueEiE4typeENSM_IXntsr14is_convertibleISO_PKS6_EE5valueEiE4typeENSM_IXntsr14is_convertibleISK_SP_EE5valueEiE4typeENSM_IXntsr14is_convertibleISK_S6_EE5valueEiE4typeE:
  502|  5.13k|{
  503|  5.13k|  return c.end();
  504|  5.13k|}
_ZN5boost4asio11buffer_sizeINS_5beast14buffers_suffixINS2_6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEEEmRKT_:
  586|     22|{
  587|     22|  return detail::buffer_size(
  588|     22|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|     22|      boost::asio::buffer_sequence_begin(b),
  590|     22|      boost::asio::buffer_sequence_end(b));
  591|     22|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast14buffers_suffixINS3_6detail11buffers_refINS3_16buffers_cat_viewIJNS0_12const_bufferES8_S8_NS3_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEE14const_iteratorEEEmNS1_16multiple_buffersET_SN_:
  551|     22|{
  552|     22|  std::size_t total_buffer_size = 0;
  553|       |
  554|     22|  Iterator iter = begin;
  555|     88|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 66, False: 22]
  ------------------
  556|     66|  {
  557|     66|    const_buffer b(*iter);
  558|     66|    total_buffer_size += b.size();
  559|     66|  }
  560|       |
  561|     22|  return total_buffer_size;
  562|     22|}
_ZN5boost4asio19buffer_sequence_endINS_5beast14buffers_suffixINS2_6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSM_PKNS0_14mutable_bufferEEE5valueEiE4typeENSO_IXntsr14is_convertibleISP_PKS7_EE5valueEiE4typeENSO_IXntsr14is_convertibleISL_SQ_EE5valueEiE4typeENSO_IXntsr14is_convertibleISL_S7_EE5valueEiE4typeE:
  521|     22|{
  522|     22|  return c.end();
  523|     22|}
_ZN5boost4asio19buffer_sequence_endINS_5beast6detail11buffers_refINS2_16buffers_cat_viewIJNS0_12const_bufferES6_S6_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEEEDTcldtfp_3endEERT_NS0_10constraintIXntsr14is_convertibleIPKSJ_PKNS0_14mutable_bufferEEE5valueEiE4typeENSL_IXntsr14is_convertibleISN_PKS6_EE5valueEiE4typeENSL_IXntsr14is_convertibleISJ_SO_EE5valueEiE4typeENSL_IXntsr14is_convertibleISJ_S6_EE5valueEiE4typeE:
  502|     11|{
  503|     11|  return c.end();
  504|     11|}
_ZN5boost4asio12const_bufferC2Ev:
  234|   252k|    : data_(0),
  235|   252k|      size_(0)
  236|   252k|  {
  237|   252k|  }
_ZN5boost4asio21buffer_sequence_beginINS_5beast6detail12buffers_pairILb0EEEEEDTcldtfp_5beginEERT_NS0_10constraintIXntsr14is_convertibleIPKS7_PKNS0_14mutable_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SC_EE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SH_EE5valueEiE4typeE:
  417|   968k|{
  418|   968k|  return c.begin();
  419|   968k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast6detail12buffers_pairILb0EEEEEDTcldtfp_3endEERT_NS0_10constraintIXntsr14is_convertibleIPKS7_PKNS0_14mutable_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SC_EE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SH_EE5valueEiE4typeE:
  502|  1.93M|{
  503|  1.93M|  return c.end();
  504|  1.93M|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS_5beast14buffers_suffixINS3_6detail12buffers_pairILb0EEEEEEEmRKT_RKT0_:
 2594|  1.93M|{
 2595|  1.93M|  return detail::buffer_copy(
 2596|  1.93M|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|  1.93M|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|  1.93M|      boost::asio::buffer_sequence_begin(target),
 2599|  1.93M|      boost::asio::buffer_sequence_end(target),
 2600|  1.93M|      boost::asio::buffer_sequence_begin(source),
 2601|  1.93M|      boost::asio::buffer_sequence_end(source));
 2602|  1.93M|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferENS_5beast14buffers_suffixINS6_6detail12buffers_pairILb0EEEE14const_iteratorEEEmNS1_10one_bufferENS1_16multiple_buffersET_SF_T0_SG_m:
 2438|  1.93M|{
 2439|  1.93M|  std::size_t total_bytes_copied = 0;
 2440|  1.93M|  SourceIterator source_iter = source_begin;
 2441|       |
 2442|  1.93M|  for (mutable_buffer target_buffer(
 2443|  1.93M|        boost::asio::buffer(*target_begin, max_bytes_to_copy));
 2444|  3.87M|      target_buffer.size() && source_iter != source_end; ++source_iter)
  ------------------
  |  Branch (2444:7): [True: 1.93M, False: 1.93M]
  |  Branch (2444:31): [True: 1.93M, False: 0]
  ------------------
 2445|  1.93M|  {
 2446|  1.93M|    const_buffer source_buffer(*source_iter);
 2447|  1.93M|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2448|  1.93M|    total_bytes_copied += bytes_copied;
 2449|  1.93M|    target_buffer += bytes_copied;
 2450|  1.93M|  }
 2451|       |
 2452|  1.93M|  return total_bytes_copied;
 2453|  1.93M|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast14buffers_suffixINS2_6detail12buffers_pairILb0EEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSA_PKNS0_14mutable_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleISD_PKNS0_12const_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SE_EE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SJ_EE5valueEiE4typeE:
  436|  5.39M|{
  437|  5.39M|  return c.begin();
  438|  5.39M|}
_ZN5boost4asio19buffer_sequence_endINS_5beast14buffers_suffixINS2_6detail12buffers_pairILb0EEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSA_PKNS0_14mutable_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleISD_PKNS0_12const_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SE_EE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SJ_EE5valueEiE4typeE:
  521|  5.39M|{
  522|  5.39M|  return c.end();
  523|  5.39M|}
_ZN5boost4asio19buffer_sequence_endINS_5beast6detail12buffers_pairILb0EEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKNS0_14mutable_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SC_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SH_EE5valueEiE4typeE:
  521|  5.39M|{
  522|  5.39M|  return c.end();
  523|  5.39M|}
_ZN5boost4asio6bufferIhLm2EEENS0_14mutable_bufferERAT0__T_:
  954|   968k|{
  955|   968k|  return mutable_buffer(data, N * sizeof(PodType));
  956|   968k|}
_ZN5boost4asio11buffer_sizeINS_5beast14buffers_suffixINS2_6detail12buffers_pairILb0EEEEEEEmRKT_:
  586|  3.46M|{
  587|  3.46M|  return detail::buffer_size(
  588|  3.46M|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  3.46M|      boost::asio::buffer_sequence_begin(b),
  590|  3.46M|      boost::asio::buffer_sequence_end(b));
  591|  3.46M|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast14buffers_suffixINS3_6detail12buffers_pairILb0EEEE14const_iteratorEEEmNS1_16multiple_buffersET_SB_:
  551|  3.46M|{
  552|  3.46M|  std::size_t total_buffer_size = 0;
  553|       |
  554|  3.46M|  Iterator iter = begin;
  555|  7.08M|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 3.62M, False: 3.46M]
  ------------------
  556|  3.62M|  {
  557|  3.62M|    const_buffer b(*iter);
  558|  3.62M|    total_buffer_size += b.size();
  559|  3.62M|  }
  560|       |
  561|  3.46M|  return total_buffer_size;
  562|  3.46M|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferES2_EEmRKT_RKT0_:
 2594|   336k|{
 2595|   336k|  return detail::buffer_copy(
 2596|   336k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|   336k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|   336k|      boost::asio::buffer_sequence_begin(target),
 2599|   336k|      boost::asio::buffer_sequence_end(target),
 2600|   336k|      boost::asio::buffer_sequence_begin(source),
 2601|   336k|      boost::asio::buffer_sequence_end(source));
 2602|   336k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferES5_EEmNS1_10one_bufferES6_T_S7_T0_S8_:
 2418|   336k|{
 2419|   336k|  return (buffer_copy_1)(*target_begin, *source_begin);
 2420|   336k|}
_ZN5boost4asio6bufferIhLm14EEENS0_14mutable_bufferERAT0__T_:
  954|   336k|{
  955|   336k|  return mutable_buffer(data, N * sizeof(PodType));
  956|   336k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast19buffers_prefix_viewINS2_6detail12buffers_pairILb1EEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSA_PKNS0_14mutable_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleISD_PKNS0_12const_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SE_EE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SJ_EE5valueEiE4typeE:
  436|  3.20M|{
  437|  3.20M|  return c.begin();
  438|  3.20M|}
_ZN5boost4asio19buffer_sequence_endINS_5beast19buffers_prefix_viewINS2_6detail12buffers_pairILb1EEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSA_PKNS0_14mutable_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleISD_PKNS0_12const_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SE_EE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SJ_EE5valueEiE4typeE:
  521|  3.20M|{
  522|  3.20M|  return c.end();
  523|  3.20M|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast6detail12buffers_pairILb1EEEEEDTcldtfp_5beginEERT_NS0_10constraintIXntsr14is_convertibleIPKS7_PKNS0_14mutable_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SC_EE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SH_EE5valueEiE4typeE:
  417|  1.52M|{
  418|  1.52M|  return c.begin();
  419|  1.52M|}
_ZN5boost4asio11buffer_sizeINS_5beast19buffers_prefix_viewINS2_6detail12buffers_pairILb1EEEEEEEmRKT_:
  586|  1.67M|{
  587|  1.67M|  return detail::buffer_size(
  588|  1.67M|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  1.67M|      boost::asio::buffer_sequence_begin(b),
  590|  1.67M|      boost::asio::buffer_sequence_end(b));
  591|  1.67M|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast19buffers_prefix_viewINS3_6detail12buffers_pairILb1EEEE14const_iteratorEEEmNS1_16multiple_buffersET_SB_:
  551|  1.67M|{
  552|  1.67M|  std::size_t total_buffer_size = 0;
  553|       |
  554|  1.67M|  Iterator iter = begin;
  555|  3.35M|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 1.67M, False: 1.67M]
  ------------------
  556|  1.67M|  {
  557|  1.67M|    const_buffer b(*iter);
  558|  1.67M|    total_buffer_size += b.size();
  559|  1.67M|  }
  560|       |
  561|  1.67M|  return total_buffer_size;
  562|  1.67M|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS_5beast19buffers_prefix_viewINS3_6detail12buffers_pairILb1EEEEEEEmRKT_RKT0_:
 2594|   557k|{
 2595|   557k|  return detail::buffer_copy(
 2596|   557k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|   557k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|   557k|      boost::asio::buffer_sequence_begin(target),
 2599|   557k|      boost::asio::buffer_sequence_end(target),
 2600|   557k|      boost::asio::buffer_sequence_begin(source),
 2601|   557k|      boost::asio::buffer_sequence_end(source));
 2602|   557k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferENS_5beast19buffers_prefix_viewINS6_6detail12buffers_pairILb1EEEE14const_iteratorEEEmNS1_10one_bufferENS1_16multiple_buffersET_SF_T0_SG_m:
 2438|   557k|{
 2439|   557k|  std::size_t total_bytes_copied = 0;
 2440|   557k|  SourceIterator source_iter = source_begin;
 2441|       |
 2442|   557k|  for (mutable_buffer target_buffer(
 2443|   557k|        boost::asio::buffer(*target_begin, max_bytes_to_copy));
 2444|  1.11M|      target_buffer.size() && source_iter != source_end; ++source_iter)
  ------------------
  |  Branch (2444:7): [True: 557k, False: 557k]
  |  Branch (2444:31): [True: 557k, False: 0]
  ------------------
 2445|   557k|  {
 2446|   557k|    const_buffer source_buffer(*source_iter);
 2447|   557k|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2448|   557k|    total_bytes_copied += bytes_copied;
 2449|   557k|    target_buffer += bytes_copied;
 2450|   557k|  }
 2451|       |
 2452|   557k|  return total_bytes_copied;
 2453|   557k|}
_ZN5boost4asio11buffer_copyINSt3__15arrayINS0_14mutable_bufferELm2EEENS_5beast19buffers_prefix_viewINS6_6detail12buffers_pairILb1EEEEEEEmRKT_RKT0_:
 2594|    124|{
 2595|    124|  return detail::buffer_copy(
 2596|    124|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|    124|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|    124|      boost::asio::buffer_sequence_begin(target),
 2599|    124|      boost::asio::buffer_sequence_end(target),
 2600|    124|      boost::asio::buffer_sequence_begin(source),
 2601|    124|      boost::asio::buffer_sequence_end(source));
 2602|    124|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferENS_5beast19buffers_prefix_viewINS6_6detail12buffers_pairILb1EEEE14const_iteratorEEEmNS1_16multiple_buffersESD_T_SE_T0_SF_:
 2482|    124|{
 2483|    124|  std::size_t total_bytes_copied = 0;
 2484|       |
 2485|    124|  TargetIterator target_iter = target_begin;
 2486|    124|  std::size_t target_buffer_offset = 0;
 2487|       |
 2488|    124|  SourceIterator source_iter = source_begin;
 2489|    124|  std::size_t source_buffer_offset = 0;
 2490|       |
 2491|    331|  while (target_iter != target_end && source_iter != source_end)
  ------------------
  |  Branch (2491:10): [True: 256, False: 75]
  |  Branch (2491:39): [True: 207, False: 49]
  ------------------
 2492|    207|  {
 2493|    207|    mutable_buffer target_buffer =
 2494|    207|      mutable_buffer(*target_iter) + target_buffer_offset;
 2495|       |
 2496|    207|    const_buffer source_buffer =
 2497|    207|      const_buffer(*source_iter) + source_buffer_offset;
 2498|       |
 2499|    207|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2500|    207|    total_bytes_copied += bytes_copied;
 2501|       |
 2502|    207|    if (bytes_copied == target_buffer.size())
  ------------------
  |  Branch (2502:9): [True: 199, False: 8]
  ------------------
 2503|    199|    {
 2504|    199|      ++target_iter;
 2505|    199|      target_buffer_offset = 0;
 2506|    199|    }
 2507|      8|    else
 2508|      8|      target_buffer_offset += bytes_copied;
 2509|       |
 2510|    207|    if (bytes_copied == source_buffer.size())
  ------------------
  |  Branch (2510:9): [True: 133, False: 74]
  ------------------
 2511|    133|    {
 2512|    133|      ++source_iter;
 2513|    133|      source_buffer_offset = 0;
 2514|    133|    }
 2515|     74|    else
 2516|     74|      source_buffer_offset += bytes_copied;
 2517|    207|  }
 2518|       |
 2519|    124|  return total_bytes_copied;
 2520|    124|}
_ZN5boost4asioplERKNS0_14mutable_bufferEm:
  599|   130M|{
  600|   130M|  std::size_t offset = n < b.size() ? n : b.size();
  ------------------
  |  Branch (600:24): [True: 130M, False: 82]
  ------------------
  601|   130M|  char* new_data = static_cast<char*>(b.data()) + offset;
  602|   130M|  std::size_t new_size = b.size() - offset;
  603|   130M|  return mutable_buffer(new_data, new_size
  604|       |#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  605|       |      , b.get_debug_check()
  606|       |#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
  607|   130M|      );
  608|   130M|}
_ZN5boost4asio21buffer_sequence_beginINSt3__15arrayINS0_14mutable_bufferELm2EEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKS4_EE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  436|    124|{
  437|    124|  return c.begin();
  438|    124|}
_ZN5boost4asio19buffer_sequence_endINSt3__15arrayINS0_14mutable_bufferELm2EEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKS4_EE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  521|    124|{
  522|    124|  return c.end();
  523|    124|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS_5beast6detail12buffers_pairILb1EEEEEmRKT_RKT0_m:
 2632|   367k|{
 2633|   367k|  return detail::buffer_copy(
 2634|   367k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2635|   367k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2636|   367k|      boost::asio::buffer_sequence_begin(target),
 2637|   367k|      boost::asio::buffer_sequence_end(target),
 2638|   367k|      boost::asio::buffer_sequence_begin(source),
 2639|   367k|      boost::asio::buffer_sequence_end(source), max_bytes_to_copy);
 2640|   367k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast19buffers_prefix_viewINS0_14mutable_bufferEEEEEPKS4_RKT_NS0_10constraintIXsr14is_convertibleIPS9_S7_EE5valueEiE4typeE:
  370|   256k|{
  371|   256k|  return static_cast<const mutable_buffer*>(detail::addressof(b));
  372|   256k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast19buffers_prefix_viewINS0_14mutable_bufferEEEEEPKS4_RKT_NS0_10constraintIXsr14is_convertibleIPS9_S7_EE5valueEiE4typeE:
  455|   256k|{
  456|   256k|  return static_cast<const mutable_buffer*>(detail::addressof(b)) + 1;
  457|   256k|}
_ZN5boost4asio11buffer_sizeINS_5beast19buffers_prefix_viewINS0_14mutable_bufferEEEEEmRKT_:
  586|  5.86k|{
  587|  5.86k|  return detail::buffer_size(
  588|  5.86k|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  5.86k|      boost::asio::buffer_sequence_begin(b),
  590|  5.86k|      boost::asio::buffer_sequence_end(b));
  591|  5.86k|}
_ZN5boost4asio11buffer_copyINS_5beast19buffers_prefix_viewINS0_14mutable_bufferEEES4_EEmRKT_RKT0_m:
 2632|  2.64k|{
 2633|  2.64k|  return detail::buffer_copy(
 2634|  2.64k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2635|  2.64k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2636|  2.64k|      boost::asio::buffer_sequence_begin(target),
 2637|  2.64k|      boost::asio::buffer_sequence_end(target),
 2638|  2.64k|      boost::asio::buffer_sequence_begin(source),
 2639|  2.64k|      boost::asio::buffer_sequence_end(source), max_bytes_to_copy);
 2640|  2.64k|}
_ZN5boost4asio11buffer_sizeINS_5beast14buffers_suffixINS0_14mutable_bufferEEEEEmRKT_:
  586|  65.3M|{
  587|  65.3M|  return detail::buffer_size(
  588|  65.3M|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  65.3M|      boost::asio::buffer_sequence_begin(b),
  590|  65.3M|      boost::asio::buffer_sequence_end(b));
  591|  65.3M|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast14buffers_suffixINS0_14mutable_bufferEE14const_iteratorEEEmNS1_16multiple_buffersET_S9_:
  551|  65.3M|{
  552|  65.3M|  std::size_t total_buffer_size = 0;
  553|       |
  554|  65.3M|  Iterator iter = begin;
  555|   130M|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 65.0M, False: 65.3M]
  ------------------
  556|  65.0M|  {
  557|  65.0M|    const_buffer b(*iter);
  558|  65.0M|    total_buffer_size += b.size();
  559|  65.0M|  }
  560|       |
  561|  65.3M|  return total_buffer_size;
  562|  65.3M|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast14buffers_suffixINS0_14mutable_bufferEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKS4_EE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  436|   130M|{
  437|   130M|  return c.begin();
  438|   130M|}
_ZN5boost4asio19buffer_sequence_endINS_5beast14buffers_suffixINS0_14mutable_bufferEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKS4_EE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  521|   130M|{
  522|   130M|  return c.end();
  523|   130M|}
_ZN5boost4asio11buffer_sizeINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES4_EEEEEmRKT_:
  586|  13.3k|{
  587|  13.3k|  return detail::buffer_size(
  588|  13.3k|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  13.3k|      boost::asio::buffer_sequence_begin(b),
  590|  13.3k|      boost::asio::buffer_sequence_end(b));
  591|  13.3k|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES5_EE14const_iteratorEEEmNS1_16multiple_buffersET_S9_:
  551|  13.3k|{
  552|  13.3k|  std::size_t total_buffer_size = 0;
  553|       |
  554|  13.3k|  Iterator iter = begin;
  555|  39.9k|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 26.6k, False: 13.3k]
  ------------------
  556|  26.6k|  {
  557|  26.6k|    const_buffer b(*iter);
  558|  26.6k|    total_buffer_size += b.size();
  559|  26.6k|  }
  560|       |
  561|  13.3k|  return total_buffer_size;
  562|  13.3k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES4_EEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKS4_EE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  521|  13.3k|{
  522|  13.3k|  return c.end();
  523|  13.3k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES4_EEEEEDTcldtfp_5beginEERT_NS0_10constraintIXntsr14is_convertibleIPKS7_PKS4_EE5valueEiE4typeENS9_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  417|  26.6k|{
  418|  26.6k|  return c.begin();
  419|  26.6k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES4_EEEEEDTcldtfp_3endEERT_NS0_10constraintIXntsr14is_convertibleIPKS7_PKS4_EE5valueEiE4typeENS9_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  502|  26.6k|{
  503|  26.6k|  return c.end();
  504|  26.6k|}
_ZN5boost4asio11buffer_sizeINS0_6detail16prepared_buffersINS0_12const_bufferELm64EEEEEmRKT_:
  586|  30.5k|{
  587|  30.5k|  return detail::buffer_size(
  588|  30.5k|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  30.5k|      boost::asio::buffer_sequence_begin(b),
  590|  30.5k|      boost::asio::buffer_sequence_end(b));
  591|  30.5k|}
_ZN5boost4asio6detail11buffer_sizeIPKNS0_12const_bufferEEEmNS1_16multiple_buffersET_S7_:
  551|  30.5k|{
  552|  30.5k|  std::size_t total_buffer_size = 0;
  553|       |
  554|  30.5k|  Iterator iter = begin;
  555|  91.7k|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 61.1k, False: 30.5k]
  ------------------
  556|  61.1k|  {
  557|  61.1k|    const_buffer b(*iter);
  558|  61.1k|    total_buffer_size += b.size();
  559|  61.1k|  }
  560|       |
  561|  30.5k|  return total_buffer_size;
  562|  30.5k|}
_ZN5boost4asio21buffer_sequence_beginINS0_6detail16prepared_buffersINS0_12const_bufferELm64EEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKNS0_14mutable_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKS4_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SC_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeE:
  436|  45.8k|{
  437|  45.8k|  return c.begin();
  438|  45.8k|}
_ZN5boost4asio19buffer_sequence_endINS0_6detail16prepared_buffersINS0_12const_bufferELm64EEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKNS0_14mutable_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKS4_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SC_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeE:
  521|  45.8k|{
  522|  45.8k|  return c.end();
  523|  45.8k|}
_ZN5boost4asio11buffer_copyINS0_14mutable_bufferENS0_6detail16prepared_buffersINS0_12const_bufferELm64EEEEEmRKT_RKT0_:
 2594|  15.2k|{
 2595|  15.2k|  return detail::buffer_copy(
 2596|  15.2k|      detail::buffer_sequence_cardinality<MutableBufferSequence>(),
 2597|  15.2k|      detail::buffer_sequence_cardinality<ConstBufferSequence>(),
 2598|  15.2k|      boost::asio::buffer_sequence_begin(target),
 2599|  15.2k|      boost::asio::buffer_sequence_end(target),
 2600|  15.2k|      boost::asio::buffer_sequence_begin(source),
 2601|  15.2k|      boost::asio::buffer_sequence_end(source));
 2602|  15.2k|}
_ZN5boost4asio6detail11buffer_copyIPKNS0_14mutable_bufferEPKNS0_12const_bufferEEEmNS1_10one_bufferENS1_16multiple_buffersET_SB_T0_SC_m:
 2438|  15.2k|{
 2439|  15.2k|  std::size_t total_bytes_copied = 0;
 2440|  15.2k|  SourceIterator source_iter = source_begin;
 2441|       |
 2442|  15.2k|  for (mutable_buffer target_buffer(
 2443|  15.2k|        boost::asio::buffer(*target_begin, max_bytes_to_copy));
 2444|  45.8k|      target_buffer.size() && source_iter != source_end; ++source_iter)
  ------------------
  |  Branch (2444:7): [True: 30.5k, False: 15.2k]
  |  Branch (2444:31): [True: 30.5k, False: 0]
  ------------------
 2445|  30.5k|  {
 2446|  30.5k|    const_buffer source_buffer(*source_iter);
 2447|  30.5k|    std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
 2448|  30.5k|    total_bytes_copied += bytes_copied;
 2449|  30.5k|    target_buffer += bytes_copied;
 2450|  30.5k|  }
 2451|       |
 2452|  15.2k|  return total_bytes_copied;
 2453|  15.2k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES4_EEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPS8_PKS4_EE5valueEiE4typeENSA_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENSA_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  436|  26.6k|{
  437|  26.6k|  return c.begin();
  438|  26.6k|}
_ZN5boost4asio11buffer_sizeINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS4_EEEEEEEEEmRKT_:
  586|  1.96k|{
  587|  1.96k|  return detail::buffer_size(
  588|  1.96k|      detail::buffer_sequence_cardinality<BufferSequence>(),
  589|  1.96k|      boost::asio::buffer_sequence_begin(b),
  590|  1.96k|      boost::asio::buffer_sequence_end(b));
  591|  1.96k|}
_ZN5boost4asio6detail11buffer_sizeINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS3_19buffers_prefix_viewINS3_14buffers_suffixIS5_EEEEEE14const_iteratorEEEmNS1_16multiple_buffersET_SD_:
  551|  1.96k|{
  552|  1.96k|  std::size_t total_buffer_size = 0;
  553|       |
  554|  1.96k|  Iterator iter = begin;
  555|  5.87k|  for (; iter != end; ++iter)
  ------------------
  |  Branch (555:10): [True: 3.91k, False: 1.96k]
  ------------------
  556|  3.91k|  {
  557|  3.91k|    const_buffer b(*iter);
  558|  3.91k|    total_buffer_size += b.size();
  559|  3.91k|  }
  560|       |
  561|  1.96k|  return total_buffer_size;
  562|  1.96k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast19buffers_prefix_viewINS2_14buffers_suffixINS0_14mutable_bufferEEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSA_PKS5_EE5valueEiE4typeENSC_IXntsr14is_convertibleISD_PKNS0_12const_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_S5_EE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SI_EE5valueEiE4typeE:
  436|  5.88k|{
  437|  5.88k|  return c.begin();
  438|  5.88k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast19buffers_prefix_viewINS2_14buffers_suffixINS0_14mutable_bufferEEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSA_PKS5_EE5valueEiE4typeENSC_IXntsr14is_convertibleISD_PKNS0_12const_bufferEEE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_S5_EE5valueEiE4typeENSC_IXntsr14is_convertibleIS9_SI_EE5valueEiE4typeE:
  521|  11.7k|{
  522|  11.7k|  return c.end();
  523|  11.7k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS4_EEEEEEEEEDTcldtfp_3endEERKT_NS0_10constraintIXntsr14is_convertibleIPSC_PKS4_EE5valueEiE4typeENSE_IXntsr14is_convertibleISF_PKNS0_12const_bufferEEE5valueEiE4typeENSE_IXntsr14is_convertibleISB_S4_EE5valueEiE4typeENSE_IXntsr14is_convertibleISB_SK_EE5valueEiE4typeE:
  521|  1.96k|{
  522|  1.96k|  return c.end();
  523|  1.96k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS4_EEEEEEEEEDTcldtfp_5beginEERT_NS0_10constraintIXntsr14is_convertibleIPKSB_PKS4_EE5valueEiE4typeENSD_IXntsr14is_convertibleISF_PKNS0_12const_bufferEEE5valueEiE4typeENSD_IXntsr14is_convertibleISB_S4_EE5valueEiE4typeENSD_IXntsr14is_convertibleISB_SK_EE5valueEiE4typeE:
  417|  3.92k|{
  418|  3.92k|  return c.begin();
  419|  3.92k|}
_ZN5boost4asio19buffer_sequence_endINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS4_EEEEEEEEEDTcldtfp_3endEERT_NS0_10constraintIXntsr14is_convertibleIPKSB_PKS4_EE5valueEiE4typeENSD_IXntsr14is_convertibleISF_PKNS0_12const_bufferEEE5valueEiE4typeENSD_IXntsr14is_convertibleISB_S4_EE5valueEiE4typeENSD_IXntsr14is_convertibleISB_SK_EE5valueEiE4typeE:
  502|  3.92k|{
  503|  3.92k|  return c.end();
  504|  3.92k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS4_EEEEEEEEEDTcldtfp_5beginEERKT_NS0_10constraintIXntsr14is_convertibleIPSC_PKS4_EE5valueEiE4typeENSE_IXntsr14is_convertibleISF_PKNS0_12const_bufferEEE5valueEiE4typeENSE_IXntsr14is_convertibleISB_S4_EE5valueEiE4typeENSE_IXntsr14is_convertibleISB_SK_EE5valueEiE4typeE:
  436|  3.92k|{
  437|  3.92k|  return c.begin();
  438|  3.92k|}
_ZN5boost4asio21buffer_sequence_beginINS_5beast14buffers_suffixINS0_14mutable_bufferEEEEEDTcldtfp_5beginEERT_NS0_10constraintIXntsr14is_convertibleIPKS7_PKS4_EE5valueEiE4typeENS9_IXntsr14is_convertibleISB_PKNS0_12const_bufferEEE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_S4_EE5valueEiE4typeENS9_IXntsr14is_convertibleIS7_SG_EE5valueEiE4typeE:
  417|  1.96k|{
  418|  1.96k|  return c.begin();
  419|  1.96k|}

_ZN5boost4asio6detail33adapt_completion_condition_resultEm:
   44|   336k|{
   45|   336k|  return result;
   46|   336k|}
_ZN5boost4asio6detail14transfer_all_tclINS_6system10error_codeEEEmRKT_m:
   55|   336k|  {
   56|   336k|    return !!err ? 0 : default_max_transfer_size;
  ------------------
  |  Branch (56:12): [True: 0, False: 336k]
  ------------------
   57|   336k|  }
_ZN5boost4asio12transfer_allEv:
  189|   336k|{
  190|   336k|  return detail::transfer_all_t();
  191|   336k|}

_ZN5boost4asio6configC2ERNS0_17execution_contextE:
   65|  90.3k|    : service_(use_service<config_service>(context))
   66|  90.3k|  {
   67|  90.3k|  }

_ZN5boost4asio6detail27conditionally_enabled_event27maybe_unlock_and_signal_oneERNS1_27conditionally_enabled_mutex11scoped_lockE:
   79|  8.21k|  {
   80|  8.21k|    if (lock.mutex_.enabled_)
  ------------------
  |  Branch (80:9): [True: 8.21k, False: 0]
  ------------------
   81|  8.21k|      return event_.maybe_unlock_and_signal_one(lock);
   82|      0|    else
   83|      0|      return false;
   84|  8.21k|  }
_ZN5boost4asio6detail27conditionally_enabled_eventC2Ev:
   38|  8.21k|  {
   39|  8.21k|  }
_ZN5boost4asio6detail27conditionally_enabled_eventD2Ev:
   43|  8.21k|  {
   44|  8.21k|  }

_ZN5boost4asio6detail27conditionally_enabled_mutexC2Ebi:
  117|  24.6k|    : spin_count_(spin_count),
  118|  24.6k|      enabled_(enabled)
  119|  24.6k|  {
  120|  24.6k|  }
_ZNK5boost4asio6detail27conditionally_enabled_mutex7enabledEv:
  129|  8.21k|  {
  130|  8.21k|    return enabled_;
  131|  8.21k|  }
_ZNK5boost4asio6detail27conditionally_enabled_mutex10spin_countEv:
  135|  8.21k|  {
  136|  8.21k|    return spin_count_;
  137|  8.21k|  }
_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev:
   64|  57.5k|    {
   65|  57.5k|      if (locked_)
  ------------------
  |  Branch (65:11): [True: 16.4k, False: 41.0k]
  ------------------
   66|  16.4k|        mutex_.mutex_.unlock();
   67|  57.5k|    }
_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockC2ERS2_:
   51|  57.5k|      : mutex_(m)
   52|  57.5k|    {
   53|  57.5k|      if (m.enabled_)
  ------------------
  |  Branch (53:11): [True: 57.5k, False: 0]
  ------------------
   54|  57.5k|      {
   55|  57.5k|        mutex_.mutex_.lock();
   56|  57.5k|        locked_ = true;
   57|  57.5k|      }
   58|      0|      else
   59|      0|        locked_ = false;
   60|  57.5k|    }
_ZNK5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6lockedEv:
   99|  8.21k|    {
  100|  8.21k|      return locked_;
  101|  8.21k|    }
_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv:
   89|  41.0k|    {
   90|  41.0k|      if (locked_)
  ------------------
  |  Branch (90:11): [True: 41.0k, False: 0]
  ------------------
   91|  41.0k|      {
   92|  41.0k|        mutex_.unlock();
   93|  41.0k|        locked_ = false;
   94|  41.0k|      }
   95|  41.0k|    }
_ZN5boost4asio6detail27conditionally_enabled_mutex6unlockEv:
  153|  41.0k|  {
  154|  41.0k|    if (enabled_)
  ------------------
  |  Branch (154:9): [True: 41.0k, False: 0]
  ------------------
  155|  41.0k|      mutex_.unlock();
  156|  41.0k|  }
_ZN5boost4asio6detail27conditionally_enabled_mutexD2Ev:
  124|  24.6k|  {
  125|  24.6k|  }

_ZN5boost4asio6detail17consuming_buffersINS0_12const_bufferENS0_14mutable_bufferEPKS4_EC2ERS5_:
  216|   321k|    : consuming_single_buffer<const_buffer>(buffer)
  217|   321k|  {
  218|   321k|  }
_ZN5boost4asio6detail23consuming_single_bufferINS0_12const_bufferEEC2INS0_14mutable_bufferEEERKT_:
  165|   321k|    : buffer_(buffer),
  166|   321k|      total_consumed_(0)
  167|   321k|  {
  168|   321k|  }
_ZNK5boost4asio6detail23consuming_single_bufferINS0_12const_bufferEE5emptyEv:
  172|   642k|  {
  173|   642k|    return total_consumed_ >= buffer_.size();
  174|   642k|  }
_ZNK5boost4asio6detail23consuming_single_bufferINS0_12const_bufferEE14total_consumedEv:
  190|   642k|  {
  191|   642k|    return total_consumed_;
  192|   642k|  }
_ZN5boost4asio6detail23consuming_single_bufferINS0_12const_bufferEE7consumeEm:
  184|   321k|  {
  185|   321k|    total_consumed_ += size;
  186|   321k|  }
_ZN5boost4asio6detail23consuming_single_bufferINS0_12const_bufferEE7prepareEm:
  178|   321k|  {
  179|   321k|    return boost::asio::buffer(buffer_ + total_consumed_, max_size);
  180|   321k|  }
_ZN5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES6_EEENS7_14const_iteratorEEC2ERKS7_:
   77|  13.3k|    : buffers_(buffers),
   78|  13.3k|      total_consumed_(0),
   79|  13.3k|      next_elem_(0),
   80|  13.3k|      next_elem_offset_(0)
   81|  13.3k|  {
   82|  13.3k|    using boost::asio::buffer_size;
   83|  13.3k|    total_size_ = buffer_size(buffers);
   84|  13.3k|  }
_ZNK5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES6_EEENS7_14const_iteratorEE5emptyEv:
   88|  26.6k|  {
   89|  26.6k|    return total_consumed_ >= total_size_;
   90|  26.6k|  }
_ZNK5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES6_EEENS7_14const_iteratorEE14total_consumedEv:
  145|  26.6k|  {
  146|  26.6k|    return total_consumed_;
  147|  26.6k|  }
_ZN5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES6_EEENS7_14const_iteratorEE7consumeEm:
  118|  13.3k|  {
  119|  13.3k|    total_consumed_ += size;
  120|       |
  121|  13.3k|    Buffer_Iterator next = boost::asio::buffer_sequence_begin(buffers_);
  122|  13.3k|    Buffer_Iterator end = boost::asio::buffer_sequence_end(buffers_);
  123|       |
  124|  13.3k|    std::advance(next, next_elem_);
  125|  39.9k|    while (next != end && size > 0)
  ------------------
  |  Branch (125:12): [True: 26.6k, False: 13.3k]
  |  Branch (125:27): [True: 26.6k, False: 0]
  ------------------
  126|  26.6k|    {
  127|  26.6k|      Buffer next_buf = Buffer(*next) + next_elem_offset_;
  128|  26.6k|      if (size < next_buf.size())
  ------------------
  |  Branch (128:11): [True: 0, False: 26.6k]
  ------------------
  129|      0|      {
  130|      0|        next_elem_offset_ += size;
  131|      0|        size = 0;
  132|      0|      }
  133|  26.6k|      else
  134|  26.6k|      {
  135|  26.6k|        size -= next_buf.size();
  136|  26.6k|        next_elem_offset_ = 0;
  137|  26.6k|        ++next_elem_;
  138|  26.6k|        ++next;
  139|  26.6k|      }
  140|  26.6k|    }
  141|  13.3k|  }
_ZNK5boost4asio6detail16prepared_buffersINS0_12const_bufferELm64EE5beginEv:
   60|  45.8k|  const_iterator begin() const { return elems; }
_ZNK5boost4asio6detail16prepared_buffersINS0_12const_bufferELm64EE3endEv:
   61|  45.8k|  const_iterator end() const { return elems + count; }
_ZN5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferES6_EEENS7_14const_iteratorEE7prepareEm:
   94|  13.3k|  {
   95|  13.3k|    prepared_buffers_type result;
   96|       |
   97|  13.3k|    Buffer_Iterator next = boost::asio::buffer_sequence_begin(buffers_);
   98|  13.3k|    Buffer_Iterator end = boost::asio::buffer_sequence_end(buffers_);
   99|       |
  100|  13.3k|    std::advance(next, next_elem_);
  101|  13.3k|    std::size_t elem_offset = next_elem_offset_;
  102|  39.9k|    while (next != end && max_size > 0 && (result.count) < result.max_buffers)
  ------------------
  |  Branch (102:12): [True: 26.6k, False: 13.3k]
  |  Branch (102:27): [True: 26.6k, False: 0]
  |  Branch (102:43): [True: 26.6k, False: 0]
  ------------------
  103|  26.6k|    {
  104|  26.6k|      Buffer next_buf = Buffer(*next) + elem_offset;
  105|  26.6k|      result.elems[result.count] = boost::asio::buffer(next_buf, max_size);
  106|  26.6k|      max_size -= result.elems[result.count].size();
  107|  26.6k|      elem_offset = 0;
  108|  26.6k|      if (result.elems[result.count].size() > 0)
  ------------------
  |  Branch (108:11): [True: 26.6k, False: 0]
  ------------------
  109|  26.6k|        ++result.count;
  110|  26.6k|      ++next;
  111|  26.6k|    }
  112|       |
  113|  13.3k|    return result;
  114|  13.3k|  }
_ZN5boost4asio6detail16prepared_buffersINS0_12const_bufferELm64EEC2Ev:
   59|  15.2k|  prepared_buffers() : count(0) {}
_ZN5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS4_19buffers_prefix_viewINS4_14buffers_suffixIS6_EEEEEEENSB_14const_iteratorEEC2ERKSB_:
   77|  1.96k|    : buffers_(buffers),
   78|  1.96k|      total_consumed_(0),
   79|  1.96k|      next_elem_(0),
   80|  1.96k|      next_elem_offset_(0)
   81|  1.96k|  {
   82|  1.96k|    using boost::asio::buffer_size;
   83|  1.96k|    total_size_ = buffer_size(buffers);
   84|  1.96k|  }
_ZNK5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS4_19buffers_prefix_viewINS4_14buffers_suffixIS6_EEEEEEENSB_14const_iteratorEE5emptyEv:
   88|  3.92k|  {
   89|  3.92k|    return total_consumed_ >= total_size_;
   90|  3.92k|  }
_ZNK5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS4_19buffers_prefix_viewINS4_14buffers_suffixIS6_EEEEEEENSB_14const_iteratorEE14total_consumedEv:
  145|  3.92k|  {
  146|  3.92k|    return total_consumed_;
  147|  3.92k|  }
_ZN5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS4_19buffers_prefix_viewINS4_14buffers_suffixIS6_EEEEEEENSB_14const_iteratorEE7consumeEm:
  118|  1.96k|  {
  119|  1.96k|    total_consumed_ += size;
  120|       |
  121|  1.96k|    Buffer_Iterator next = boost::asio::buffer_sequence_begin(buffers_);
  122|  1.96k|    Buffer_Iterator end = boost::asio::buffer_sequence_end(buffers_);
  123|       |
  124|  1.96k|    std::advance(next, next_elem_);
  125|  5.87k|    while (next != end && size > 0)
  ------------------
  |  Branch (125:12): [True: 3.91k, False: 1.96k]
  |  Branch (125:27): [True: 3.91k, False: 0]
  ------------------
  126|  3.91k|    {
  127|  3.91k|      Buffer next_buf = Buffer(*next) + next_elem_offset_;
  128|  3.91k|      if (size < next_buf.size())
  ------------------
  |  Branch (128:11): [True: 0, False: 3.91k]
  ------------------
  129|      0|      {
  130|      0|        next_elem_offset_ += size;
  131|      0|        size = 0;
  132|      0|      }
  133|  3.91k|      else
  134|  3.91k|      {
  135|  3.91k|        size -= next_buf.size();
  136|  3.91k|        next_elem_offset_ = 0;
  137|  3.91k|        ++next_elem_;
  138|  3.91k|        ++next;
  139|  3.91k|      }
  140|  3.91k|    }
  141|  1.96k|  }
_ZN5boost4asio6detail17consuming_buffersINS0_12const_bufferENS_5beast16buffers_cat_viewIJNS0_14mutable_bufferENS4_19buffers_prefix_viewINS4_14buffers_suffixIS6_EEEEEEENSB_14const_iteratorEE7prepareEm:
   94|  1.96k|  {
   95|  1.96k|    prepared_buffers_type result;
   96|       |
   97|  1.96k|    Buffer_Iterator next = boost::asio::buffer_sequence_begin(buffers_);
   98|  1.96k|    Buffer_Iterator end = boost::asio::buffer_sequence_end(buffers_);
   99|       |
  100|  1.96k|    std::advance(next, next_elem_);
  101|  1.96k|    std::size_t elem_offset = next_elem_offset_;
  102|  5.87k|    while (next != end && max_size > 0 && (result.count) < result.max_buffers)
  ------------------
  |  Branch (102:12): [True: 3.91k, False: 1.96k]
  |  Branch (102:27): [True: 3.91k, False: 0]
  |  Branch (102:43): [True: 3.91k, False: 0]
  ------------------
  103|  3.91k|    {
  104|  3.91k|      Buffer next_buf = Buffer(*next) + elem_offset;
  105|  3.91k|      result.elems[result.count] = boost::asio::buffer(next_buf, max_size);
  106|  3.91k|      max_size -= result.elems[result.count].size();
  107|  3.91k|      elem_offset = 0;
  108|  3.91k|      if (result.elems[result.count].size() > 0)
  ------------------
  |  Branch (108:11): [True: 3.91k, False: 0]
  ------------------
  109|  3.91k|        ++result.count;
  110|  3.91k|      ++next;
  111|  3.91k|    }
  112|       |
  113|  1.96k|    return result;
  114|  1.96k|  }

_ZN5boost4asio6detail22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEEC2ERNS0_17execution_contextE:
   70|  8.21k|    : execution_context_service_base<
   71|  8.21k|        deadline_timer_service<Time_Traits>>(context),
   72|  8.21k|      scheduler_(boost::asio::use_service<timer_scheduler>(context))
   73|  8.21k|  {
   74|  8.21k|    scheduler_.init_task();
   75|  8.21k|    scheduler_.add_timer_queue(timer_queue_);
   76|  8.21k|  }
_ZN5boost4asio6detail22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEED2Ev:
   80|  8.21k|  {
   81|  8.21k|    scheduler_.remove_timer_queue(timer_queue_);
   82|  8.21k|  }
_ZN5boost4asio6detail22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEE8shutdownEv:
   86|  16.4k|  {
   87|  16.4k|  }
_ZN5boost4asio6detail22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEE9constructERNSA_19implementation_typeE:
   91|  8.21k|  {
   92|  8.21k|    impl.expiry = time_type();
   93|  8.21k|    impl.might_have_pending_waits = false;
   94|  8.21k|  }
_ZN5boost4asio6detail22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEE7destroyERNSA_19implementation_typeE:
   98|  8.21k|  {
   99|  8.21k|    boost::system::error_code ec;
  100|  8.21k|    cancel(impl, ec);
  101|  8.21k|  }
_ZN5boost4asio6detail22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEE6cancelERNSA_19implementation_typeERNS_6system10error_codeE:
  156|  30.1k|  {
  157|  30.1k|    if (!impl.might_have_pending_waits)
  ------------------
  |  Branch (157:9): [True: 30.1k, False: 0]
  ------------------
  158|  30.1k|    {
  159|  30.1k|      ec = boost::system::error_code();
  160|  30.1k|      return 0;
  161|  30.1k|    }
  162|       |
  163|      0|    BOOST_ASIO_HANDLER_OPERATION((scheduler_.context(),
  ------------------
  |  |  247|      0|# define BOOST_ASIO_HANDLER_OPERATION(args) (void)0
  ------------------
  164|      0|          "deadline_timer", &impl, 0, "cancel"));
  165|       |
  166|      0|    std::size_t count = scheduler_.cancel_timer(timer_queue_, impl.timer_data);
  167|      0|    impl.might_have_pending_waits = false;
  168|      0|    ec = boost::system::error_code();
  169|      0|    return count;
  170|  30.1k|  }
_ZN5boost4asio6detail22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEE10expires_atERNSA_19implementation_typeERKNS5_10time_pointIS6_NS5_8durationIxNS4_5ratioILl1ELl1000000000EEEEEEERNS_6system10error_codeE:
  214|  12.8k|  {
  215|  12.8k|    std::size_t count = cancel(impl, ec);
  216|  12.8k|    impl.expiry = expiry_time;
  217|  12.8k|    ec = boost::system::error_code();
  218|  12.8k|    return count;
  219|  12.8k|  }

_ZNK5boost4asio6detail26eventfd_select_interrupter15read_descriptorEv:
   49|  8.21k|  {
   50|  8.21k|    return read_descriptor_;
   51|  8.21k|  }

_ZN5boost4asio6detail13epoll_reactor15add_timer_queueINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEEvRNS1_11timer_queueIT_EE:
   36|  8.21k|{
   37|  8.21k|  do_add_timer_queue(queue);
   38|  8.21k|}
_ZN5boost4asio6detail13epoll_reactor18remove_timer_queueINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEEvRNS1_11timer_queueIT_EE:
   42|  8.21k|{
   43|  8.21k|  do_remove_timer_queue(queue);
   44|  8.21k|}

_ZN5boost4asio6detail13epoll_reactorC2ERNS0_17execution_contextE:
   41|  8.21k|  : execution_context_service_base<epoll_reactor>(ctx),
   42|  8.21k|    scheduler_(use_service<scheduler>(ctx)),
   43|  8.21k|    mutex_(config(ctx).get("reactor", "registration_locking", true),
   44|  8.21k|        config(ctx).get("reactor", "registration_locking_spin_count", 0)),
   45|  8.21k|    interrupter_(),
   46|  8.21k|    epoll_fd_(do_epoll_create()),
   47|  8.21k|    timer_fd_(do_timerfd_create()),
   48|  8.21k|    shutdown_(false),
   49|  8.21k|    io_locking_(config(ctx).get("reactor", "io_locking", true)),
   50|       |    io_locking_spin_count_(
   51|  8.21k|        config(ctx).get("reactor", "io_locking_spin_count", 0)),
   52|  8.21k|    registered_descriptors_mutex_(mutex_.enabled(), mutex_.spin_count()),
   53|  8.21k|    registered_descriptors_(
   54|  8.21k|        config(ctx).get("reactor", "preallocated_io_objects", 0U),
   55|  8.21k|        io_locking_, io_locking_spin_count_)
   56|  8.21k|{
   57|       |  // Add the interrupter's descriptor to epoll.
   58|  8.21k|  epoll_event ev = { 0, { 0 } };
   59|  8.21k|  ev.events = EPOLLIN | EPOLLERR | EPOLLET;
   60|  8.21k|  ev.data.ptr = &interrupter_;
   61|  8.21k|  epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, interrupter_.read_descriptor(), &ev);
   62|  8.21k|  interrupter_.interrupt();
   63|       |
   64|       |  // Add the timer descriptor to epoll.
   65|  8.21k|  if (timer_fd_ != -1)
  ------------------
  |  Branch (65:7): [True: 8.21k, False: 0]
  ------------------
   66|  8.21k|  {
   67|  8.21k|    ev.events = EPOLLIN | EPOLLERR;
   68|  8.21k|    ev.data.ptr = &timer_fd_;
   69|  8.21k|    epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, timer_fd_, &ev);
   70|  8.21k|  }
   71|  8.21k|}
_ZN5boost4asio6detail13epoll_reactor15do_epoll_createEv:
  631|  8.21k|{
  632|  8.21k|#if defined(EPOLL_CLOEXEC)
  633|  8.21k|  int fd = epoll_create1(EPOLL_CLOEXEC);
  634|       |#else // defined(EPOLL_CLOEXEC)
  635|       |  int fd = -1;
  636|       |  errno = EINVAL;
  637|       |#endif // defined(EPOLL_CLOEXEC)
  638|       |
  639|  8.21k|  if (fd == -1 && (errno == EINVAL || errno == ENOSYS))
  ------------------
  |  Branch (639:7): [True: 0, False: 8.21k]
  |  Branch (639:20): [True: 0, False: 0]
  |  Branch (639:39): [True: 0, False: 0]
  ------------------
  640|      0|  {
  641|      0|    fd = epoll_create(epoll_size);
  642|      0|    if (fd != -1)
  ------------------
  |  Branch (642:9): [True: 0, False: 0]
  ------------------
  643|      0|      ::fcntl(fd, F_SETFD, FD_CLOEXEC);
  644|      0|  }
  645|       |
  646|  8.21k|  if (fd == -1)
  ------------------
  |  Branch (646:7): [True: 0, False: 8.21k]
  ------------------
  647|      0|  {
  648|      0|    boost::system::error_code ec(errno,
  649|      0|        boost::asio::error::get_system_category());
  650|      0|    boost::asio::detail::throw_error(ec, "epoll");
  651|      0|  }
  652|       |
  653|  8.21k|  return fd;
  654|  8.21k|}
_ZN5boost4asio6detail13epoll_reactor17do_timerfd_createEv:
  657|  8.21k|{
  658|  8.21k|#if defined(BOOST_ASIO_HAS_TIMERFD)
  659|  8.21k|# if defined(TFD_CLOEXEC)
  660|  8.21k|  int fd = timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC);
  661|       |# else // defined(TFD_CLOEXEC)
  662|       |  int fd = -1;
  663|       |  errno = EINVAL;
  664|       |# endif // defined(TFD_CLOEXEC)
  665|       |
  666|  8.21k|  if (fd == -1 && errno == EINVAL)
  ------------------
  |  Branch (666:7): [True: 0, False: 8.21k]
  |  Branch (666:19): [True: 0, False: 0]
  ------------------
  667|      0|  {
  668|      0|    fd = timerfd_create(CLOCK_MONOTONIC, 0);
  669|      0|    if (fd != -1)
  ------------------
  |  Branch (669:9): [True: 0, False: 0]
  ------------------
  670|      0|      ::fcntl(fd, F_SETFD, FD_CLOEXEC);
  671|      0|  }
  672|       |
  673|  8.21k|  return fd;
  674|       |#else // defined(BOOST_ASIO_HAS_TIMERFD)
  675|       |  return -1;
  676|       |#endif // defined(BOOST_ASIO_HAS_TIMERFD)
  677|  8.21k|}
_ZN5boost4asio6detail13epoll_reactorD2Ev:
   74|  8.21k|{
   75|  8.21k|  if (epoll_fd_ != -1)
  ------------------
  |  Branch (75:7): [True: 8.21k, False: 0]
  ------------------
   76|  8.21k|    close(epoll_fd_);
   77|  8.21k|  if (timer_fd_ != -1)
  ------------------
  |  Branch (77:7): [True: 8.21k, False: 0]
  ------------------
   78|  8.21k|    close(timer_fd_);
   79|  8.21k|}
_ZN5boost4asio6detail13epoll_reactor8shutdownEv:
   82|  16.4k|{
   83|  16.4k|  mutex::scoped_lock lock(mutex_);
   84|  16.4k|  shutdown_ = true;
   85|  16.4k|  lock.unlock();
   86|       |
   87|  16.4k|  op_queue<operation> ops;
   88|       |
   89|  16.4k|  while (descriptor_state* state = registered_descriptors_.first())
  ------------------
  |  Branch (89:28): [True: 0, False: 16.4k]
  ------------------
   90|      0|  {
   91|      0|    for (int i = 0; i < max_ops; ++i)
  ------------------
  |  Branch (91:21): [True: 0, False: 0]
  ------------------
   92|      0|      ops.push(state->op_queue_[i]);
   93|      0|    state->shutdown_ = true;
   94|      0|    registered_descriptors_.free(state);
   95|      0|  }
   96|       |
   97|  16.4k|  timer_queues_.get_all_timers(ops);
   98|       |
   99|  16.4k|  scheduler_.abandon_operations(ops);
  100|  16.4k|}
_ZN5boost4asio6detail13epoll_reactor9init_taskEv:
  159|  8.21k|{
  160|  8.21k|  scheduler_.init_task();
  161|  8.21k|}
_ZN5boost4asio6detail13epoll_reactor18do_add_timer_queueERNS1_16timer_queue_baseE:
  692|  8.21k|{
  693|  8.21k|  mutex::scoped_lock lock(mutex_);
  694|  8.21k|  timer_queues_.insert(&queue);
  695|  8.21k|}
_ZN5boost4asio6detail13epoll_reactor21do_remove_timer_queueERNS1_16timer_queue_baseE:
  698|  8.21k|{
  699|  8.21k|  mutex::scoped_lock lock(mutex_);
  700|  8.21k|  timer_queues_.erase(&queue);
  701|  8.21k|}

_ZN5boost4asio6detail26eventfd_select_interrupterC2Ev:
   43|  8.21k|{
   44|  8.21k|  open_descriptors();
   45|  8.21k|}
_ZN5boost4asio6detail26eventfd_select_interrupter16open_descriptorsEv:
   48|  8.21k|{
   49|       |#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
   50|       |  write_descriptor_ = read_descriptor_ = syscall(__NR_eventfd, 0);
   51|       |  if (read_descriptor_ != -1)
   52|       |  {
   53|       |    ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK);
   54|       |    ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC);
   55|       |  }
   56|       |#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
   57|  8.21k|# if defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK)
   58|  8.21k|  write_descriptor_ = read_descriptor_ =
   59|  8.21k|    ::eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);
   60|       |# else // defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK)
   61|       |  errno = EINVAL;
   62|       |  write_descriptor_ = read_descriptor_ = -1;
   63|       |# endif // defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK)
   64|  8.21k|  if (read_descriptor_ == -1 && errno == EINVAL)
  ------------------
  |  Branch (64:7): [True: 0, False: 8.21k]
  |  Branch (64:33): [True: 0, False: 0]
  ------------------
   65|      0|  {
   66|      0|    write_descriptor_ = read_descriptor_ = ::eventfd(0, 0);
   67|      0|    if (read_descriptor_ != -1)
  ------------------
  |  Branch (67:9): [True: 0, False: 0]
  ------------------
   68|      0|    {
   69|      0|      ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK);
   70|      0|      ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC);
   71|      0|    }
   72|      0|  }
   73|  8.21k|#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 && !defined(__UCLIBC__)
   74|       |
   75|  8.21k|  if (read_descriptor_ == -1)
  ------------------
  |  Branch (75:7): [True: 0, False: 8.21k]
  ------------------
   76|      0|  {
   77|      0|    int pipe_fds[2];
   78|      0|    if (pipe(pipe_fds) == 0)
  ------------------
  |  Branch (78:9): [True: 0, False: 0]
  ------------------
   79|      0|    {
   80|      0|      read_descriptor_ = pipe_fds[0];
   81|      0|      ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK);
   82|      0|      ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC);
   83|      0|      write_descriptor_ = pipe_fds[1];
   84|      0|      ::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK);
   85|      0|      ::fcntl(write_descriptor_, F_SETFD, FD_CLOEXEC);
   86|      0|    }
   87|      0|    else
   88|      0|    {
   89|      0|      boost::system::error_code ec(errno,
   90|      0|          boost::asio::error::get_system_category());
   91|      0|      boost::asio::detail::throw_error(ec, "eventfd_select_interrupter");
   92|      0|    }
   93|      0|  }
   94|  8.21k|}
_ZN5boost4asio6detail26eventfd_select_interrupter9interruptEv:
  120|  8.21k|{
  121|  8.21k|  uint64_t counter(1UL);
  122|  8.21k|  int result = ::write(write_descriptor_, &counter, sizeof(uint64_t));
  123|  8.21k|  (void)result;
  124|  8.21k|}
_ZN5boost4asio6detail26eventfd_select_interrupterD2Ev:
   97|  8.21k|{
   98|  8.21k|  close_descriptors();
   99|  8.21k|}
_ZN5boost4asio6detail26eventfd_select_interrupter17close_descriptorsEv:
  102|  8.21k|{
  103|  8.21k|  if (write_descriptor_ != -1 && write_descriptor_ != read_descriptor_)
  ------------------
  |  Branch (103:7): [True: 8.21k, False: 0]
  |  Branch (103:34): [True: 0, False: 8.21k]
  ------------------
  104|      0|    ::close(write_descriptor_);
  105|  8.21k|  if (read_descriptor_ != -1)
  ------------------
  |  Branch (105:7): [True: 8.21k, False: 0]
  ------------------
  106|  8.21k|    ::close(read_descriptor_);
  107|  8.21k|}

_ZN5boost4asio6detail11posix_eventC2Ev:
   33|  8.21k|  : state_(0)
   34|  8.21k|{
   35|       |#if (defined(__MACH__) && defined(__APPLE__)) \
   36|       |      || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
   37|       |  int error = ::pthread_cond_init(&cond_, 0);
   38|       |#else // (defined(__MACH__) && defined(__APPLE__))
   39|       |      // || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
   40|  8.21k|  ::pthread_condattr_t attr;
   41|  8.21k|  int error = ::pthread_condattr_init(&attr);
   42|  8.21k|  if (error == 0)
  ------------------
  |  Branch (42:7): [True: 8.21k, False: 0]
  ------------------
   43|  8.21k|  {
   44|  8.21k|    error = ::pthread_condattr_setclock(&attr, CLOCK_MONOTONIC);
   45|  8.21k|    if (error == 0)
  ------------------
  |  Branch (45:9): [True: 8.21k, False: 0]
  ------------------
   46|  8.21k|      error = ::pthread_cond_init(&cond_, &attr);
   47|  8.21k|    ::pthread_condattr_destroy(&attr);
   48|  8.21k|  }
   49|  8.21k|#endif // (defined(__MACH__) && defined(__APPLE__))
   50|       |       // || (defined(__ANDROID__) && (__ANDROID_API__ < 21))
   51|       |
   52|  8.21k|  boost::system::error_code ec(error,
   53|  8.21k|      boost::asio::error::get_system_category());
   54|  8.21k|  boost::asio::detail::throw_error(ec, "event");
   55|  8.21k|}

_ZN5boost4asio6detail11posix_mutexC2Ev:
   33|  32.8k|{
   34|  32.8k|  int error = ::pthread_mutex_init(&mutex_, 0);
   35|  32.8k|  boost::system::error_code ec(error,
   36|  32.8k|      boost::asio::error::get_system_category());
   37|  32.8k|  boost::asio::detail::throw_error(ec, "mutex");
   38|  32.8k|}

_ZN5boost4asio6detail9scheduler16get_default_taskERNS0_17execution_contextE:
  675|  8.21k|{
  676|       |#if defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
  677|       |  return &use_service<io_uring_service>(ctx);
  678|       |#else // defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
  679|  8.21k|  return &use_service<reactor>(ctx);
  680|  8.21k|#endif // defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
  681|  8.21k|}
_ZN5boost4asio6detail9scheduler26wake_one_thread_and_unlockERNS1_27conditionally_enabled_mutex11scoped_lockE:
  662|  8.21k|{
  663|  8.21k|  if (wait_usec_ == 0 || !wakeup_event_.maybe_unlock_and_signal_one(lock))
  ------------------
  |  Branch (663:7): [True: 0, False: 8.21k]
  |  Branch (663:26): [True: 8.21k, False: 0]
  ------------------
  664|  8.21k|  {
  665|  8.21k|    if (!task_interrupted_ && task_)
  ------------------
  |  Branch (665:9): [True: 0, False: 8.21k]
  |  Branch (665:31): [True: 0, False: 0]
  ------------------
  666|      0|    {
  667|      0|      task_interrupted_ = true;
  668|      0|      task_->interrupt();
  669|      0|    }
  670|  8.21k|    lock.unlock();
  671|  8.21k|  }
  672|  8.21k|}
_ZN5boost4asio6detail9scheduler18abandon_operationsERNS1_8op_queueINS1_19scheduler_operationEEE:
  442|  16.4k|{
  443|  16.4k|  op_queue<scheduler::operation> ops2;
  444|  16.4k|  ops2.push(ops);
  445|  16.4k|}
_ZN5boost4asio6detail9schedulerC2ERNS0_17execution_contextEbPFPNS1_14scheduler_taskES4_E:
  114|  8.21k|  : boost::asio::detail::execution_context_service_base<scheduler>(ctx),
  115|  8.21k|    one_thread_(config(ctx).get("scheduler", "concurrency_hint", 0) == 1),
  116|  8.21k|    mutex_(config(ctx).get("scheduler", "locking", true),
  117|  8.21k|        config(ctx).get("scheduler", "locking_spin_count", 0)),
  118|  8.21k|    task_(0),
  119|  8.21k|    get_task_(get_task),
  120|  8.21k|    task_interrupted_(true),
  121|  8.21k|    outstanding_work_(0),
  122|  8.21k|    stopped_(false),
  123|  8.21k|    shutdown_(false),
  124|  8.21k|    concurrency_hint_(config(ctx).get("scheduler", "concurrency_hint", 0)),
  125|  8.21k|    task_usec_(config(ctx).get("scheduler", "task_usec", -1L)),
  126|  8.21k|    wait_usec_(config(ctx).get("scheduler", "wait_usec", -1L)),
  127|  8.21k|    thread_(0)
  128|  8.21k|{
  129|  8.21k|  BOOST_ASIO_HANDLER_TRACKING_INIT;
  ------------------
  |  |  241|  8.21k|# define BOOST_ASIO_HANDLER_TRACKING_INIT (void)0
  ------------------
  130|       |
  131|  8.21k|  if (own_thread)
  ------------------
  |  Branch (131:7): [True: 0, False: 8.21k]
  ------------------
  132|      0|  {
  133|      0|    ++outstanding_work_;
  134|      0|    boost::asio::detail::signal_blocker sb;
  135|      0|    thread_ = new boost::asio::detail::thread(thread_function(this));
  136|      0|  }
  137|  8.21k|}
_ZN5boost4asio6detail9schedulerD2Ev:
  140|  8.21k|{
  141|  8.21k|  if (thread_)
  ------------------
  |  Branch (141:7): [True: 0, False: 8.21k]
  ------------------
  142|      0|  {
  143|      0|    mutex::scoped_lock lock(mutex_);
  144|      0|    shutdown_ = true;
  145|      0|    stop_all_threads(lock);
  146|      0|    lock.unlock();
  147|      0|    thread_->join();
  148|      0|    delete thread_;
  149|      0|  }
  150|  8.21k|}
_ZN5boost4asio6detail9scheduler8shutdownEv:
  153|  16.4k|{
  154|  16.4k|  mutex::scoped_lock lock(mutex_);
  155|  16.4k|  shutdown_ = true;
  156|  16.4k|  if (thread_)
  ------------------
  |  Branch (156:7): [True: 0, False: 16.4k]
  ------------------
  157|      0|    stop_all_threads(lock);
  158|  16.4k|  lock.unlock();
  159|       |
  160|       |  // Join thread to ensure task operation is returned to queue.
  161|  16.4k|  if (thread_)
  ------------------
  |  Branch (161:7): [True: 0, False: 16.4k]
  ------------------
  162|      0|  {
  163|      0|    thread_->join();
  164|      0|    delete thread_;
  165|      0|    thread_ = 0;
  166|      0|  }
  167|       |
  168|       |  // Destroy handler objects.
  169|  24.6k|  while (!op_queue_.empty())
  ------------------
  |  Branch (169:10): [True: 8.21k, False: 16.4k]
  ------------------
  170|  8.21k|  {
  171|  8.21k|    operation* o = op_queue_.front();
  172|  8.21k|    op_queue_.pop();
  173|  8.21k|    if (o != &task_operation_)
  ------------------
  |  Branch (173:9): [True: 0, False: 8.21k]
  ------------------
  174|      0|      o->destroy();
  175|  8.21k|  }
  176|       |
  177|       |  // Reset to initial state.
  178|  16.4k|  task_ = 0;
  179|  16.4k|}
_ZN5boost4asio6detail9scheduler9init_taskEv:
  182|  8.21k|{
  183|  8.21k|  mutex::scoped_lock lock(mutex_);
  184|  8.21k|  if (!shutdown_ && !task_)
  ------------------
  |  Branch (184:7): [True: 8.21k, False: 0]
  |  Branch (184:21): [True: 8.21k, False: 0]
  ------------------
  185|  8.21k|  {
  186|  8.21k|    task_ = get_task_(this->context());
  187|  8.21k|    op_queue_.push(&task_operation_);
  188|  8.21k|    wake_one_thread_and_unlock(lock);
  189|  8.21k|  }
  190|  8.21k|}

_ZN5boost4asio6detail16service_registry11add_serviceINS1_36config_from_concurrency_hint_serviceEEEvPT_:
   44|  8.21k|{
   45|  8.21k|  execution_context::service::key key;
   46|  8.21k|  init_key<Service>(key, 0);
   47|  8.21k|  return do_add_service(key, new_service);
   48|  8.21k|}
_ZN5boost4asio6detail16service_registry8init_keyINS1_36config_from_concurrency_hint_serviceEEEvRNS0_17execution_context7service3keyEz:
   61|  8.21k|{
   62|  8.21k|  init_key_from_id(key, Service::id);
   63|  8.21k|}
_ZN5boost4asio6detail16service_registry16init_key_from_idINS0_14config_serviceEEEvRNS0_17execution_context7service3keyERKNS1_10service_idIT_EE:
   77|  98.5k|{
   78|  98.5k|  key.type_info_ = &typeid(typeid_wrapper<Service>);
   79|  98.5k|  key.id_ = 0;
   80|  98.5k|}
_ZN5boost4asio6detail16service_registry11add_serviceINS1_9schedulerEEEvPT_:
   44|  8.21k|{
   45|  8.21k|  execution_context::service::key key;
   46|  8.21k|  init_key<Service>(key, 0);
   47|  8.21k|  return do_add_service(key, new_service);
   48|  8.21k|}
_ZN5boost4asio6detail16service_registry8init_keyINS1_9schedulerEEEvRNS0_17execution_context7service3keyEz:
   61|  16.4k|{
   62|  16.4k|  init_key_from_id(key, Service::id);
   63|  16.4k|}
_ZN5boost4asio6detail16service_registry16init_key_from_idINS1_9schedulerEEEvRNS0_17execution_context7service3keyERKNS1_10service_idIT_EE:
   77|  16.4k|{
   78|  16.4k|  key.type_info_ = &typeid(typeid_wrapper<Service>);
   79|  16.4k|  key.id_ = 0;
   80|  16.4k|}
_ZN5boost4asio6detail16service_registry11use_serviceINS1_13epoll_reactorEEERT_v:
   26|  16.4k|{
   27|  16.4k|  execution_context::service::key key;
   28|  16.4k|  init_key<Service>(key, 0);
   29|  16.4k|  factory_type factory = &service_registry::create<Service, execution_context>;
   30|  16.4k|  return *static_cast<Service*>(do_use_service(key, factory, &owner_));
   31|  16.4k|}
_ZN5boost4asio6detail16service_registry8init_keyINS1_13epoll_reactorEEEvRNS0_17execution_context7service3keyEz:
   61|  16.4k|{
   62|  16.4k|  init_key_from_id(key, Service::id);
   63|  16.4k|}
_ZN5boost4asio6detail16service_registry16init_key_from_idINS1_13epoll_reactorEEEvRNS0_17execution_context7service3keyERKNS1_10service_idIT_EE:
   77|  16.4k|{
   78|  16.4k|  key.type_info_ = &typeid(typeid_wrapper<Service>);
   79|  16.4k|  key.id_ = 0;
   80|  16.4k|}
_ZN5boost4asio6detail16service_registry6createINS1_13epoll_reactorENS0_17execution_contextEEEPNS5_7serviceEPv:
   85|  8.21k|{
   86|  8.21k|  return new Service(*static_cast<Owner*>(owner));
   87|  8.21k|}
_ZN5boost4asio6detail16service_registry11use_serviceINS1_9schedulerEEERT_v:
   26|  8.21k|{
   27|  8.21k|  execution_context::service::key key;
   28|  8.21k|  init_key<Service>(key, 0);
   29|  8.21k|  factory_type factory = &service_registry::create<Service, execution_context>;
   30|  8.21k|  return *static_cast<Service*>(do_use_service(key, factory, &owner_));
   31|  8.21k|}
_ZN5boost4asio6detail16service_registry11use_serviceINS0_14config_serviceEEERT_v:
   26|  90.3k|{
   27|  90.3k|  execution_context::service::key key;
   28|  90.3k|  init_key<Service>(key, 0);
   29|  90.3k|  factory_type factory = &service_registry::create<Service, execution_context>;
   30|  90.3k|  return *static_cast<Service*>(do_use_service(key, factory, &owner_));
   31|  90.3k|}
_ZN5boost4asio6detail16service_registry8init_keyINS0_14config_serviceEEEvRNS0_17execution_context7service3keyEz:
   61|  90.3k|{
   62|  90.3k|  init_key_from_id(key, Service::id);
   63|  90.3k|}
_ZN5boost4asio6detail16service_registry11use_serviceINS_5beast4test6detail14stream_serviceEEERT_v:
   26|  16.4k|{
   27|  16.4k|  execution_context::service::key key;
   28|  16.4k|  init_key<Service>(key, 0);
   29|  16.4k|  factory_type factory = &service_registry::create<Service, execution_context>;
   30|  16.4k|  return *static_cast<Service*>(do_use_service(key, factory, &owner_));
   31|  16.4k|}
_ZN5boost4asio6detail16service_registry8init_keyINS_5beast4test6detail14stream_serviceEEEvRNS0_17execution_context7service3keyEz:
   61|  16.4k|{
   62|  16.4k|  init_key_from_id(key, Service::id);
   63|  16.4k|}
_ZN5boost4asio6detail16service_registry6createINS_5beast4test6detail14stream_serviceENS0_17execution_contextEEEPNS8_7serviceEPv:
   85|  8.21k|{
   86|  8.21k|  return new Service(*static_cast<Owner*>(owner));
   87|  8.21k|}
_ZN5boost4asio6detail16service_registry11use_serviceINS_5beast9websocket6detail7serviceEEERT_v:
   26|  8.21k|{
   27|  8.21k|  execution_context::service::key key;
   28|  8.21k|  init_key<Service>(key, 0);
   29|  8.21k|  factory_type factory = &service_registry::create<Service, execution_context>;
   30|  8.21k|  return *static_cast<Service*>(do_use_service(key, factory, &owner_));
   31|  8.21k|}
_ZN5boost4asio6detail16service_registry8init_keyINS_5beast9websocket6detail7serviceEEEvRNS0_17execution_context7service3keyEz:
   61|  8.21k|{
   62|  8.21k|  init_key_from_id(key, Service::id);
   63|  8.21k|}
_ZN5boost4asio6detail16service_registry6createINS_5beast9websocket6detail7serviceENS0_17execution_contextEEEPNS8_7serviceEPv:
   85|  8.21k|{
   86|  8.21k|  return new Service(*static_cast<Owner*>(owner));
   87|  8.21k|}
_ZN5boost4asio6detail16service_registry11use_serviceINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS8_EEEEEEEERT_v:
   26|  8.21k|{
   27|  8.21k|  execution_context::service::key key;
   28|  8.21k|  init_key<Service>(key, 0);
   29|  8.21k|  factory_type factory = &service_registry::create<Service, execution_context>;
   30|  8.21k|  return *static_cast<Service*>(do_use_service(key, factory, &owner_));
   31|  8.21k|}
_ZN5boost4asio6detail16service_registry8init_keyINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS8_EEEEEEEEvRNS0_17execution_context7service3keyEz:
   61|  8.21k|{
   62|  8.21k|  init_key_from_id(key, Service::id);
   63|  8.21k|}
_ZN5boost4asio6detail16service_registry16init_key_from_idINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS8_EEEEEEEEvRNS0_17execution_context7service3keyERKNS1_10service_idIT_EE:
   77|  8.21k|{
   78|  8.21k|  key.type_info_ = &typeid(typeid_wrapper<Service>);
   79|  8.21k|  key.id_ = 0;
   80|  8.21k|}
_ZN5boost4asio6detail16service_registry6createINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS8_EEEEEENS0_17execution_contextEEEPNSD_7serviceEPv:
   85|  8.21k|{
   86|  8.21k|  return new Service(*static_cast<Owner*>(owner));
   87|  8.21k|}

_ZN5boost4asio6detail16service_registry14do_add_serviceERKNS0_17execution_context7service3keyEPS4_:
  156|  16.4k|{
  157|  16.4k|  if (&owner_ != &new_service->context())
  ------------------
  |  Branch (157:7): [True: 0, False: 16.4k]
  ------------------
  158|      0|    boost::asio::detail::throw_exception(invalid_service_owner());
  159|       |
  160|  16.4k|  boost::asio::detail::mutex::scoped_lock lock(mutex_);
  161|       |
  162|       |  // Check if there is an existing service object with the given key.
  163|  16.4k|  execution_context::service* service = first_service_;
  164|  24.6k|  while (service)
  ------------------
  |  Branch (164:10): [True: 8.21k, False: 16.4k]
  ------------------
  165|  8.21k|  {
  166|  8.21k|    if (keys_match(service->key_, key))
  ------------------
  |  Branch (166:9): [True: 0, False: 8.21k]
  ------------------
  167|      0|      boost::asio::detail::throw_exception(service_already_exists());
  168|  8.21k|    service = service->next_;
  169|  8.21k|  }
  170|       |
  171|       |  // Take ownership of the service object.
  172|  16.4k|  new_service->key_ = key;
  173|  16.4k|  new_service->next_ = first_service_;
  174|  16.4k|  first_service_ = new_service;
  175|  16.4k|}
_ZN5boost4asio6detail16service_registry10keys_matchERKNS0_17execution_context7service3keyES7_:
   98|   484k|{
   99|   484k|  if (key1.id_ && key2.id_)
  ------------------
  |  Branch (99:7): [True: 188k, False: 295k]
  |  Branch (99:19): [True: 24.6k, False: 164k]
  ------------------
  100|  24.6k|    if (key1.id_ == key2.id_)
  ------------------
  |  Branch (100:9): [True: 8.21k, False: 16.4k]
  ------------------
  101|  8.21k|      return true;
  102|   476k|  if (key1.type_info_ && key2.type_info_)
  ------------------
  |  Branch (102:7): [True: 295k, False: 180k]
  |  Branch (102:26): [True: 230k, False: 65.7k]
  ------------------
  103|   230k|    if (*key1.type_info_ == *key2.type_info_)
  ------------------
  |  Branch (103:9): [True: 106k, False: 123k]
  ------------------
  104|   106k|      return true;
  105|   369k|  return false;
  106|   476k|}
_ZN5boost4asio6detail16service_registryC2ERNS0_17execution_contextE:
   30|  8.21k|  : owner_(owner),
   31|  8.21k|    first_service_(0)
   32|  8.21k|{
   33|  8.21k|}
_ZN5boost4asio6detail16service_registry14do_use_serviceERKNS0_17execution_context7service3keyEPFPS4_PvES9_:
  116|   147k|{
  117|   147k|  boost::asio::detail::mutex::scoped_lock lock(mutex_);
  118|       |
  119|       |  // First see if there is an existing service object with the given key.
  120|   147k|  execution_context::service* service = first_service_;
  121|   394k|  while (service)
  ------------------
  |  Branch (121:10): [True: 361k, False: 32.8k]
  ------------------
  122|   361k|  {
  123|   361k|    if (keys_match(service->key_, key))
  ------------------
  |  Branch (123:9): [True: 115k, False: 246k]
  ------------------
  124|   115k|      return service;
  125|   246k|    service = service->next_;
  126|   246k|  }
  127|       |
  128|       |  // Create a new service object. The service registry's mutex is not locked
  129|       |  // at this time to allow for nested calls into this function from the new
  130|       |  // service's constructor.
  131|  32.8k|  lock.unlock();
  132|  32.8k|  auto_service_ptr new_service = { factory(owner) };
  133|  32.8k|  new_service.ptr_->key_ = key;
  134|  32.8k|  lock.lock();
  135|       |
  136|       |  // Check that nobody else created another service object of the same type
  137|       |  // while the lock was released.
  138|  32.8k|  service = first_service_;
  139|   147k|  while (service)
  ------------------
  |  Branch (139:10): [True: 115k, False: 32.8k]
  ------------------
  140|   115k|  {
  141|   115k|    if (keys_match(service->key_, key))
  ------------------
  |  Branch (141:9): [True: 0, False: 115k]
  ------------------
  142|      0|      return service;
  143|   115k|    service = service->next_;
  144|   115k|  }
  145|       |
  146|       |  // Service was successfully initialised, pass ownership to registry.
  147|  32.8k|  new_service.ptr_->next_ = first_service_;
  148|  32.8k|  first_service_ = new_service.ptr_;
  149|  32.8k|  new_service.ptr_ = 0;
  150|  32.8k|  return first_service_;
  151|  32.8k|}
_ZN5boost4asio6detail16service_registry7destroyEPNS0_17execution_context7serviceE:
  109|  82.1k|{
  110|  82.1k|  delete service;
  111|  82.1k|}
_ZN5boost4asio6detail16service_registry17shutdown_servicesEv:
   40|  16.4k|{
   41|  16.4k|  execution_context::service* service = first_service_;
   42|   115k|  while (service)
  ------------------
  |  Branch (42:10): [True: 98.5k, False: 16.4k]
  ------------------
   43|  98.5k|  {
   44|  98.5k|    service->shutdown();
   45|  98.5k|    service = service->next_;
   46|  98.5k|  }
   47|  16.4k|}
_ZN5boost4asio6detail16service_registry16destroy_servicesEv:
   50|  8.21k|{
   51|  57.5k|  while (first_service_)
  ------------------
  |  Branch (51:10): [True: 49.2k, False: 8.21k]
  ------------------
   52|  49.2k|  {
   53|  49.2k|    execution_context::service* next_service = first_service_->next_;
   54|  49.2k|    destroy(first_service_);
   55|  49.2k|    first_service_ = next_service;
   56|  49.2k|  }
   57|  8.21k|}
_ZN5boost4asio6detail16service_registryD2Ev:
   36|  8.21k|{
   37|  8.21k|}
_ZN5boost4asio6detail16service_registry16init_key_from_idERNS0_17execution_context7service3keyERKNS3_2idE:
   90|  24.6k|{
   91|  24.6k|  key.type_info_ = 0;
   92|  24.6k|  key.id_ = &id;
   93|  24.6k|}

_ZN5boost4asio6detail15timer_queue_setC2Ev:
   28|  8.21k|  : first_(0)
   29|  8.21k|{
   30|  8.21k|}
_ZN5boost4asio6detail15timer_queue_set14get_all_timersERNS1_8op_queueINS1_19scheduler_operationEEE:
   92|  16.4k|{
   93|  32.8k|  for (timer_queue_base* p = first_; p; p = p->next_)
  ------------------
  |  Branch (93:38): [True: 16.4k, False: 16.4k]
  ------------------
   94|  16.4k|    p->get_all_timers(ops);
   95|  16.4k|}
_ZN5boost4asio6detail15timer_queue_set6insertEPNS1_16timer_queue_baseE:
   33|  8.21k|{
   34|  8.21k|  q->next_ = first_;
   35|  8.21k|  first_ = q;
   36|  8.21k|}
_ZN5boost4asio6detail15timer_queue_set5eraseEPNS1_16timer_queue_baseE:
   39|  8.21k|{
   40|  8.21k|  if (first_)
  ------------------
  |  Branch (40:7): [True: 8.21k, False: 0]
  ------------------
   41|  8.21k|  {
   42|  8.21k|    if (q == first_)
  ------------------
  |  Branch (42:9): [True: 8.21k, False: 0]
  ------------------
   43|  8.21k|    {
   44|  8.21k|      first_ = q->next_;
   45|  8.21k|      q->next_ = 0;
   46|  8.21k|      return;
   47|  8.21k|    }
   48|       |
   49|      0|    for (timer_queue_base* p = first_; p->next_; p = p->next_)
  ------------------
  |  Branch (49:40): [True: 0, False: 0]
  ------------------
   50|      0|    {
   51|      0|      if (p->next_ == q)
  ------------------
  |  Branch (51:11): [True: 0, False: 0]
  ------------------
   52|      0|      {
   53|      0|        p->next_ = q->next_;
   54|      0|        q->next_ = 0;
   55|      0|        return;
   56|      0|      }
   57|      0|    }
   58|      0|  }
   59|  8.21k|}

_ZN5boost4asio6detail14io_object_implINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEENS0_15any_io_executorEEC2EiRKSC_:
   48|  8.21k|    : service_(&boost::asio::use_service<IoObjectService>(
   49|  8.21k|          io_object_impl::get_context(ex))),
   50|  8.21k|      executor_(ex)
   51|  8.21k|  {
   52|  8.21k|    service_->construct(implementation_);
   53|  8.21k|  }
_ZN5boost4asio6detail14io_object_implINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEENS0_15any_io_executorEE11get_contextISC_EERNS0_17execution_contextERKT_PNS5_9enable_ifIXsr11is_executorISH_EE5valueEvE4typeE:
  147|  8.21k|  {
  148|  8.21k|    return boost::asio::query(t, execution::context);
  149|  8.21k|  }
_ZN5boost4asio6detail14io_object_implINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEENS0_15any_io_executorEED2Ev:
   94|  8.21k|  {
   95|  8.21k|    service_->destroy(implementation_);
   96|  8.21k|  }
_ZN5boost4asio6detail14io_object_implINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEENS0_15any_io_executorEE11get_serviceEv:
  120|  21.9k|  {
  121|  21.9k|    return *service_;
  122|  21.9k|  }
_ZN5boost4asio6detail14io_object_implINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEENS0_15any_io_executorEE18get_implementationEv:
  132|  21.9k|  {
  133|  21.9k|    return implementation_;
  134|  21.9k|  }

_ZN5boost4asio6detail15keyword_tss_ptrINS1_10call_stackINS1_14thread_contextENS1_16thread_info_baseEE7contextEEC2Ev:
   37|      2|  {
   38|      2|  }

_ZN5boost4asio6detail11noncopyableC2Ev:
   29|   443k|  noncopyable() {}
_ZN5boost4asio6detail11noncopyableD2Ev:
   30|   443k|  ~noncopyable() {}

_ZN5boost4asio6detail11object_poolINS1_13epoll_reactor16descriptor_stateEEC2IJbiEEEjDpT_:
   72|  8.21k|    : live_list_(0),
   73|  8.21k|      free_list_(0)
   74|  8.21k|  {
   75|  8.21k|    while (preallocated > 0)
  ------------------
  |  Branch (75:12): [True: 0, False: 8.21k]
  ------------------
   76|      0|    {
   77|      0|      Object* o = object_pool_access::create<Object>(args...);
   78|      0|      object_pool_access::next(o) = free_list_;
   79|      0|      object_pool_access::prev(o) = 0;
   80|      0|      free_list_ = o;
   81|      0|      --preallocated;
   82|      0|    }
   83|  8.21k|  }
_ZN5boost4asio6detail11object_poolINS1_13epoll_reactor16descriptor_stateEED2Ev:
   87|  8.21k|  {
   88|  8.21k|    destroy_list(live_list_);
   89|  8.21k|    destroy_list(free_list_);
   90|  8.21k|  }
_ZN5boost4asio6detail11object_poolINS1_13epoll_reactor16descriptor_stateEE12destroy_listEPS4_:
  143|  16.4k|  {
  144|  16.4k|    while (list)
  ------------------
  |  Branch (144:12): [True: 0, False: 16.4k]
  ------------------
  145|      0|    {
  146|      0|      Object* o = list;
  147|      0|      list = object_pool_access::next(o);
  148|      0|      object_pool_access::destroy(o);
  149|      0|    }
  150|  16.4k|  }
_ZN5boost4asio6detail11object_poolINS1_13epoll_reactor16descriptor_stateEE5firstEv:
   94|  16.4k|  {
   95|  16.4k|    return live_list_;
   96|  16.4k|  }

_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEEC2Ev:
   70|  41.0k|    : front_(0),
   71|  41.0k|      back_(0)
   72|  41.0k|  {
   73|  41.0k|  }
_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEE4pushEPS3_:
  106|  8.21k|  {
  107|  8.21k|    op_queue_access::next(h, static_cast<Operation*>(0));
  108|  8.21k|    if (back_)
  ------------------
  |  Branch (108:9): [True: 0, False: 8.21k]
  ------------------
  109|      0|    {
  110|      0|      op_queue_access::next(back_, h);
  111|      0|      back_ = h;
  112|      0|    }
  113|  8.21k|    else
  114|  8.21k|    {
  115|  8.21k|      front_ = back_ = h;
  116|  8.21k|    }
  117|  8.21k|  }
_ZN5boost4asio6detail15op_queue_access4nextINS1_19scheduler_operationES4_EEvRPT_PT0_:
   40|  16.4k|  {
   41|  16.4k|    o1->next_ = o2;
   42|  16.4k|  }
_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEE5frontEv:
   87|  8.21k|  {
   88|  8.21k|    return front_;
   89|  8.21k|  }
_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEE3popEv:
   93|  8.21k|  {
   94|  8.21k|    if (front_)
  ------------------
  |  Branch (94:9): [True: 8.21k, False: 0]
  ------------------
   95|  8.21k|    {
   96|  8.21k|      Operation* tmp = front_;
   97|  8.21k|      front_ = op_queue_access::next(front_);
   98|  8.21k|      if (front_ == 0)
  ------------------
  |  Branch (98:11): [True: 8.21k, False: 0]
  ------------------
   99|  8.21k|        back_ = 0;
  100|  8.21k|      op_queue_access::next(tmp, static_cast<Operation*>(0));
  101|  8.21k|    }
  102|  8.21k|  }
_ZN5boost4asio6detail15op_queue_access4nextINS1_19scheduler_operationEEEPT_S6_:
   34|  8.21k|  {
   35|  8.21k|    return static_cast<Operation*>(o->next_);
   36|  8.21k|  }
_ZNK5boost4asio6detail8op_queueINS1_19scheduler_operationEE5emptyEv:
  138|  24.6k|  {
  139|  24.6k|    return front_ == 0;
  140|  24.6k|  }
_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEE4pushIS3_EEvRNS2_IT_EE:
  123|  16.4k|  {
  124|  16.4k|    if (Operation* other_front = op_queue_access::front(q))
  ------------------
  |  Branch (124:20): [True: 0, False: 16.4k]
  ------------------
  125|      0|    {
  126|      0|      if (back_)
  ------------------
  |  Branch (126:11): [True: 0, False: 0]
  ------------------
  127|      0|        op_queue_access::next(back_, other_front);
  128|      0|      else
  129|      0|        front_ = other_front;
  130|      0|      back_ = op_queue_access::back(q);
  131|      0|      op_queue_access::front(q) = 0;
  132|      0|      op_queue_access::back(q) = 0;
  133|      0|    }
  134|  16.4k|  }
_ZN5boost4asio6detail15op_queue_access5frontINS1_19scheduler_operationEEERPT_RNS1_8op_queueIS5_EE:
   52|  16.4k|  {
   53|  16.4k|    return q.front_;
   54|  16.4k|  }
_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEED2Ev:
   77|  41.0k|  {
   78|  41.0k|    while (Operation* op = front_)
  ------------------
  |  Branch (78:23): [True: 0, False: 41.0k]
  ------------------
   79|      0|    {
   80|      0|      pop();
   81|      0|      op_queue_access::destroy(op);
   82|      0|    }
   83|  41.0k|  }
_ZN5boost4asio6detail8op_queueINS1_7wait_opEEC2Ev:
   70|  8.21k|    : front_(0),
   71|  8.21k|      back_(0)
   72|  8.21k|  {
   73|  8.21k|  }
_ZN5boost4asio6detail8op_queueINS1_7wait_opEED2Ev:
   77|  8.21k|  {
   78|  8.21k|    while (Operation* op = front_)
  ------------------
  |  Branch (78:23): [True: 0, False: 8.21k]
  ------------------
   79|      0|    {
   80|      0|      pop();
   81|      0|      op_queue_access::destroy(op);
   82|      0|    }
   83|  8.21k|  }

_ZN5boost4asio6detail11posix_event27maybe_unlock_and_signal_oneINS1_27conditionally_enabled_mutex11scoped_lockEEEbRT_:
   90|  8.21k|  {
   91|  8.21k|    BOOST_ASIO_ASSERT(lock.locked());
  ------------------
  |  |   27|  8.21k|# define BOOST_ASIO_ASSERT(expr) BOOST_ASSERT(expr)
  |  |  ------------------
  |  |  |  |   66|  8.21k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
   92|  8.21k|    state_ |= 1;
   93|  8.21k|    if (state_ > 1)
  ------------------
  |  Branch (93:9): [True: 0, False: 8.21k]
  ------------------
   94|      0|    {
   95|      0|      lock.unlock();
   96|      0|      ::pthread_cond_signal(&cond_); // Ignore EINVAL.
   97|      0|      return true;
   98|      0|    }
   99|  8.21k|    return false;
  100|  8.21k|  }
_ZN5boost4asio6detail11posix_eventD2Ev:
   42|  8.21k|  {
   43|  8.21k|    ::pthread_cond_destroy(&cond_);
   44|  8.21k|  }

_ZN5boost4asio6detail11posix_mutex4lockEv:
   57|   254k|  {
   58|   254k|    (void)::pthread_mutex_lock(&mutex_); // Ignore EINVAL.
   59|   254k|  }
_ZN5boost4asio6detail11posix_mutex6unlockEv:
   63|   254k|  {
   64|   254k|    (void)::pthread_mutex_unlock(&mutex_); // Ignore EINVAL.
   65|   254k|  }
_ZN5boost4asio6detail11posix_mutexD2Ev:
   45|  32.8k|  {
   46|  32.8k|    ::pthread_mutex_destroy(&mutex_); // Ignore EBUSY.
   47|  32.8k|  }

_ZN5boost4asio6detail9scheduler14task_operationC2Ev:
  201|  8.21k|    task_operation() : operation(0) {}

_ZN5boost4asio6detail19scheduler_operationC2EPFvPvPS2_RKNS_6system10error_codeEmE:
   54|  8.21k|    : next_(0),
   55|  8.21k|      func_(func),
   56|  8.21k|      task_result_(0)
   57|  8.21k|  {
   58|  8.21k|  }
_ZN5boost4asio6detail19scheduler_operationD2Ev:
   62|  8.21k|  {
   63|  8.21k|  }

_ZN5boost4asio6detail14scheduler_taskD2Ev:
   41|  8.21k|  {
   42|  8.21k|  }

_ZN5boost4asio6detail11scoped_lockINS1_11posix_mutexEEC2ERS3_:
   44|   164k|    : mutex_(m)
   45|   164k|  {
   46|   164k|    mutex_.lock();
   47|   164k|    locked_ = true;
   48|   164k|  }
_ZN5boost4asio6detail11scoped_lockINS1_11posix_mutexEED2Ev:
   52|   164k|  {
   53|   164k|    if (locked_)
  ------------------
  |  Branch (53:9): [True: 164k, False: 0]
  ------------------
   54|   164k|      mutex_.unlock();
   55|   164k|  }
_ZN5boost4asio6detail11scoped_lockINS1_11posix_mutexEE6unlockEv:
   69|  32.8k|  {
   70|  32.8k|    if (locked_)
  ------------------
  |  Branch (70:9): [True: 32.8k, False: 0]
  ------------------
   71|  32.8k|    {
   72|  32.8k|      mutex_.unlock();
   73|  32.8k|      locked_ = false;
   74|  32.8k|    }
   75|  32.8k|  }
_ZN5boost4asio6detail11scoped_lockINS1_11posix_mutexEE4lockEv:
   59|  32.8k|  {
   60|  32.8k|    if (!locked_)
  ------------------
  |  Branch (60:9): [True: 32.8k, False: 0]
  ------------------
   61|  32.8k|    {
   62|  32.8k|      mutex_.lock();
   63|  32.8k|      locked_ = true;
   64|  32.8k|    }
   65|  32.8k|  }

_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEEC2EPS3_:
   32|  8.21k|    : p_(p)
   33|  8.21k|  {
   34|  8.21k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEE3getEv:
   44|  8.21k|  {
   45|  8.21k|    return p_;
   46|  8.21k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEEdeEv:
   56|  8.21k|  {
   57|  8.21k|    return *p_;
   58|  8.21k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEE7releaseEv:
   69|  8.21k|  {
   70|  8.21k|    T* tmp = p_;
   71|  8.21k|    p_ = 0;
   72|  8.21k|    return tmp;
   73|  8.21k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_36config_from_concurrency_hint_serviceEED2Ev:
   38|  8.21k|  {
   39|  8.21k|    delete p_;
   40|  8.21k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_9schedulerEEC2EPS3_:
   32|  8.21k|    : p_(p)
   33|  8.21k|  {
   34|  8.21k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_9schedulerEE3getEv:
   44|  8.21k|  {
   45|  8.21k|    return p_;
   46|  8.21k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_9schedulerEE7releaseEv:
   69|  8.21k|  {
   70|  8.21k|    T* tmp = p_;
   71|  8.21k|    p_ = 0;
   72|  8.21k|    return tmp;
   73|  8.21k|  }
_ZN5boost4asio6detail10scoped_ptrINS1_9schedulerEED2Ev:
   38|  8.21k|  {
   39|  8.21k|    delete p_;
   40|  8.21k|  }

_ZN5boost4asio6detail16service_registry16auto_service_ptrD2Ev:
  124|  32.8k|    ~auto_service_ptr() { destroy(ptr_); }

_ZN5boost4asio6detail11throw_errorERKNS_6system10error_codeEPKcRKNS_15source_locationE:
   49|  63.0k|{
   50|  63.0k|  if (err)
  ------------------
  |  Branch (50:7): [True: 0, False: 63.0k]
  ------------------
   51|      0|    do_throw_error(err, location BOOST_ASIO_SOURCE_LOCATION_ARG);
  ------------------
  |  |  644|      0|# define BOOST_ASIO_SOURCE_LOCATION_ARG , loc
  ------------------
   52|  63.0k|}

_ZN5boost4asio6detail11timer_queueINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEEC2Ev:
   73|  8.21k|      heap_()
   74|  8.21k|  {
   75|  8.21k|  }
_ZN5boost4asio6detail11timer_queueINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEE14get_all_timersERNS1_8op_queueINS1_19scheduler_operationEEE:
  167|  16.4k|  {
  168|  16.4k|    while (timers_)
  ------------------
  |  Branch (168:12): [True: 0, False: 16.4k]
  ------------------
  169|      0|    {
  170|      0|      per_timer_data* timer = timers_;
  171|      0|      timers_ = timers_->next_;
  172|      0|      ops.push(timer->op_queue_);
  173|      0|      timer->next_ = 0;
  174|      0|      timer->prev_ = 0;
  175|      0|    }
  176|       |
  177|  16.4k|    heap_.clear();
  178|  16.4k|  }
_ZN5boost4asio6detail11timer_queueINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS6_EEEEE14per_timer_dataC2Ev:
   51|  8.21k|      heap_index_((std::numeric_limits<std::size_t>::max)()),
   52|  8.21k|      next_(0), prev_(0)
   53|  8.21k|    {
   54|  8.21k|    }

_ZN5boost4asio6detail16timer_queue_baseC2Ev:
   34|  8.21k|  timer_queue_base() : next_(0) {}

_ZN5boost4asio5error19get_system_categoryEv:
  258|  44.4k|{
  259|  44.4k|  return boost::system::system_category();
  260|  44.4k|}
_ZN5boost4asio5error15make_error_codeENS1_12basic_errorsE:
  335|  3.39k|{
  336|  3.39k|  return boost::system::error_code(
  337|  3.39k|      static_cast<int>(e), get_system_category());
  338|  3.39k|}
_ZN5boost4asio5error15make_error_codeENS1_11misc_errorsE:
  353|  16.5k|{
  354|  16.5k|  return boost::system::error_code(
  355|  16.5k|      static_cast<int>(e), get_misc_category());
  356|  16.5k|}

_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEEC2INS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEET_PNSX_9enable_ifIXsr13conditional_tIXaantsr7is_sameIS11_ST_EE5valuentsr10is_base_ofINS7_17any_executor_baseES11_EE5valueENS7_24is_valid_target_executorIS11_FvS6_SA_SE_SI_SL_SP_SS_EEENSX_17integral_constantIbLb0EEEEE5valueEvE4typeE:
 1451|  16.4k|    : detail::any_executor_base(
 1452|  16.4k|        static_cast<Executor&&>(ex), false_type()),
 1453|  16.4k|      prop_fns_(prop_fns_table<Executor>())
 1454|  16.4k|  {
 1455|  16.4k|  }
_ZN5boost4asio9execution6detail17any_executor_baseC2INS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEET_NS7_17integral_constantIbLb0EEE:
  498|  16.4k|    : target_fns_(target_fns_table<Executor>(
  499|  16.4k|          any_executor_base::query_blocking(ex,
  500|  16.4k|            can_query<const Executor&, const execution::blocking_t&>())
  501|  16.4k|          == execution::blocking.always))
  502|  16.4k|  {
  503|  16.4k|    any_executor_base::construct_object(ex,
  504|  16.4k|        integral_constant<bool,
  505|  16.4k|          sizeof(Executor) <= sizeof(object_type)
  506|  16.4k|            && alignment_of<Executor>::value <= alignment_of<object_type>::value
  507|  16.4k|        >());
  508|  16.4k|  }
_ZN5boost4asio9execution6detail17any_executor_base16target_fns_tableINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEPKNS3_10target_fnsEbPNS7_9enable_ifIXntsr7is_sameIT_vEE5valueEvE4typeE:
  916|  16.4k|  {
  917|  16.4k|    static const target_fns fns_with_execute =
  918|  16.4k|    {
  919|  16.4k|      &any_executor_base::target_type_ex<Ex>,
  920|  16.4k|      &any_executor_base::equal_ex<Ex>,
  921|  16.4k|      &any_executor_base::execute_ex<Ex>,
  922|  16.4k|      0
  923|  16.4k|    };
  924|       |
  925|  16.4k|    static const target_fns fns_with_blocking_execute =
  926|  16.4k|    {
  927|  16.4k|      &any_executor_base::target_type_ex<Ex>,
  928|  16.4k|      &any_executor_base::equal_ex<Ex>,
  929|  16.4k|      0,
  930|  16.4k|      &any_executor_base::blocking_execute_ex<Ex>
  931|  16.4k|    };
  932|       |
  933|  16.4k|    return is_always_blocking ? &fns_with_blocking_execute : &fns_with_execute;
  ------------------
  |  Branch (933:12): [True: 0, False: 16.4k]
  ------------------
  934|  16.4k|  }
_ZN5boost4asio9execution6detail17any_executor_base14query_blockingINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEENS2_10blocking_tILi0EEERKT_NS7_17integral_constantIbLb1EEE:
 1146|  16.4k|  {
 1147|  16.4k|    return boost::asio::query(ex, execution::blocking);
 1148|  16.4k|  }
_ZN5boost4asio9execution6detail17any_executor_base16construct_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEvRT_NS7_17integral_constantIbLb1EEE:
 1158|  16.4k|  {
 1159|  16.4k|    object_fns_ = object_fns_table<Executor>();
 1160|  16.4k|    target_ = new (&object_) Executor(static_cast<Executor&&>(ex));
 1161|  16.4k|  }
_ZN5boost4asio9execution6detail17any_executor_base16object_fns_tableINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEPKNS3_10object_fnsEPNS7_9enable_ifIXaantsr7is_sameIT_vEE5valuentsr7is_sameISF_NS2_22shared_target_executorEEE5valueEvE4typeE:
  844|  16.4k|  {
  845|  16.4k|    static const object_fns fns =
  846|  16.4k|    {
  847|  16.4k|      &any_executor_base::destroy_object<Obj>,
  848|  16.4k|      &any_executor_base::copy_object<Obj>,
  849|  16.4k|      &any_executor_base::move_object<Obj>,
  850|  16.4k|      &any_executor_base::target_object<Obj>
  851|  16.4k|    };
  852|  16.4k|    return &fns;
  853|  16.4k|  }
_ZN5boost4asio9execution6detail17any_executor_base14destroy_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEvRS3_:
  813|  57.5k|  {
  814|  57.5k|    ex.object<Obj>().~Obj();
  815|  57.5k|  }
_ZN5boost4asio9execution6detail17any_executor_base6objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEERT_v:
  750|   172k|  {
  751|   172k|    return *static_cast<Ex*>(static_cast<void*>(&object_));
  752|   172k|  }
_ZN5boost4asio9execution6detail17any_executor_base11copy_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEvRS3_RKS3_:
  819|  41.0k|  {
  820|  41.0k|    new (&ex1.object_) Obj(ex2.object<Obj>());
  821|  41.0k|    ex1.target_ = &ex1.object<Obj>();
  822|  41.0k|  }
_ZNK5boost4asio9execution6detail17any_executor_base6objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEERKT_v:
  756|  73.9k|  {
  757|  73.9k|    return *static_cast<const Ex*>(static_cast<const void*>(&object_));
  758|  73.9k|  }
_ZN5boost4asio9execution6detail17any_executor_base11move_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEvRS3_SB_:
  826|  24.6k|  {
  827|  24.6k|    new (&ex1.object_) Obj(static_cast<Obj&&>(ex2.object<Obj>()));
  828|  24.6k|    ex1.target_ = &ex1.object<Obj>();
  829|  24.6k|    ex2.object<Obj>().~Obj();
  830|  24.6k|  }
_ZN5boost4asio9execution6detail17any_executor_base13target_objectINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEPKvRKS3_:
  834|  32.8k|  {
  835|  32.8k|    return &ex.object<Obj>();
  836|  32.8k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEE14prop_fns_tableINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEEEEPKNS7_17any_executor_base8prop_fnsIST_EEv:
 1819|  16.4k|  {
 1820|  16.4k|    static const prop_fns<any_executor> fns[] =
 1821|  16.4k|    {
 1822|  16.4k|      {
 1823|  16.4k|        &detail::any_executor_base::query_fn<
 1824|  16.4k|            Ex, SupportableProperties>,
 1825|  16.4k|        &detail::any_executor_base::require_fn<
 1826|  16.4k|            any_executor, Ex, SupportableProperties>,
 1827|  16.4k|        &detail::any_executor_base::prefer_fn<
 1828|  16.4k|            any_executor, Ex, SupportableProperties>
 1829|  16.4k|      }...
 1830|  16.4k|    };
 1831|  16.4k|    return fns;
 1832|  16.4k|  }
_ZN5boost4asio9execution6detail17any_executor_base8query_fnINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEENS1_12context_as_tIRNS0_17execution_contextEEEEEvPvPKvSH_:
 1061|  32.8k|  {
 1062|  32.8k|    query_fn_impl<Ex, Prop>(result, ex, prop, 0);
 1063|  32.8k|  }
_ZN5boost4asio9execution6detail17any_executor_base13query_fn_implINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEENS1_12context_as_tIRNS0_17execution_contextEEEEEvPvPKvSH_PNS7_9enable_ifIXntsr7is_sameIT_vEE5valueEvE4typeE:
 1055|  32.8k|  {
 1056|  32.8k|    query_fn_non_void<Ex, Prop>(result, ex, prop, 0);
 1057|  32.8k|  }
_ZN5boost4asio9execution6detail17any_executor_base17query_fn_non_voidINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEENS1_12context_as_tIRNS0_17execution_contextEEEEEvPvPKvSH_PNS7_9enable_ifIXaaaasr5boost4asio9can_queryIRKT_RKT0_EE5valuentsr7is_sameINSM_29polymorphic_query_result_typeEvEE5valuesr12is_referenceISP_EE5valueEvE4typeE:
  974|  32.8k|  {
  975|  32.8k|    *static_cast<remove_reference_t<
  976|  32.8k|      typename Prop::polymorphic_query_result_type>**>(result)
  977|  32.8k|        = &static_cast<typename Prop::polymorphic_query_result_type>(
  978|  32.8k|            boost::asio::query(*static_cast<const Ex*>(ex),
  979|  32.8k|              *static_cast<const Prop*>(prop)));
  980|  32.8k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEE14prop_fns_tableIvEEPKNS7_17any_executor_base8prop_fnsIST_EEv:
 1819|  24.6k|  {
 1820|  24.6k|    static const prop_fns<any_executor> fns[] =
 1821|  24.6k|    {
 1822|  24.6k|      {
 1823|  24.6k|        &detail::any_executor_base::query_fn<
 1824|  24.6k|            Ex, SupportableProperties>,
 1825|  24.6k|        &detail::any_executor_base::require_fn<
 1826|  24.6k|            any_executor, Ex, SupportableProperties>,
 1827|  24.6k|        &detail::any_executor_base::prefer_fn<
 1828|  24.6k|            any_executor, Ex, SupportableProperties>
 1829|  24.6k|      }...
 1830|  24.6k|    };
 1831|  24.6k|    return fns;
 1832|  24.6k|  }
_ZN5boost4asio9execution6detail17any_executor_baseD2Ev:
  576|  82.1k|  {
  577|  82.1k|    if (!!*this)
  ------------------
  |  Branch (577:9): [True: 57.5k, False: 24.6k]
  ------------------
  578|  57.5k|      object_fns_->destroy(*this);
  579|  82.1k|  }
_ZNK5boost4asio9execution6detail17any_executor_basentEv:
  730|   123k|  {
  731|   123k|    return target_ == 0;
  732|   123k|  }
_ZNK5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEE5queryINS7_9context_tILi0EEEEENST_25find_convertible_propertyIT_E17query_result_typeERKSY_PNSt3__19enable_ifIXaantsr7is_sameIS10_vEE5valuesr12is_referenceIS10_EE5valueEvE4typeE:
 1702|  32.8k|  {
 1703|  32.8k|    if (!target_)
  ------------------
  |  Branch (1703:9): [True: 0, False: 32.8k]
  ------------------
 1704|      0|    {
 1705|      0|      bad_executor ex;
 1706|      0|      boost::asio::detail::throw_exception(ex);
 1707|      0|    }
 1708|  32.8k|    typedef find_convertible_property<Property> found;
 1709|  32.8k|    remove_reference_t<typename found::query_result_type>* result = 0;
 1710|  32.8k|    prop_fns_[found::index].query(&result, object_fns_->target(*this),
 1711|  32.8k|        &static_cast<const typename found::type&>(p));
 1712|  32.8k|    return *result;
 1713|  32.8k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEEC2ERKST_:
 1522|  41.0k|    : detail::any_executor_base(
 1523|  41.0k|        static_cast<const detail::any_executor_base&>(other)),
 1524|  41.0k|      prop_fns_(other.prop_fns_)
 1525|  41.0k|  {
 1526|  41.0k|  }
_ZN5boost4asio9execution6detail17any_executor_baseC2ERKS3_:
  560|  41.0k|  {
  561|  41.0k|    if (!!other)
  ------------------
  |  Branch (561:9): [True: 41.0k, False: 0]
  ------------------
  562|  41.0k|    {
  563|  41.0k|      object_fns_ = other.object_fns_;
  564|  41.0k|      target_fns_ = other.target_fns_;
  565|  41.0k|      object_fns_->copy(*this, other);
  566|  41.0k|    }
  567|      0|    else
  568|      0|    {
  569|      0|      object_fns_ = 0;
  570|      0|      target_ = 0;
  571|      0|      target_fns_ = 0;
  572|      0|    }
  573|  41.0k|  }
_ZN5boost4asio9execution12any_executorIJNS1_12context_as_tIRNS0_17execution_contextEEENS1_6detail8blocking7never_tILi0EEENS1_11prefer_onlyINS8_10possibly_tILi0EEEEENSB_INS7_16outstanding_work9tracked_tILi0EEEEENSB_INSF_11untracked_tILi0EEEEENSB_INS7_12relationship6fork_tILi0EEEEENSB_INSM_14continuation_tILi0EEEEEEEC2EOST_:
 1554|  24.6k|    : detail::any_executor_base(
 1555|  24.6k|        static_cast<any_executor_base&&>(
 1556|  24.6k|          static_cast<any_executor_base&>(other))),
 1557|  24.6k|      prop_fns_(other.prop_fns_)
 1558|  24.6k|  {
 1559|  24.6k|    other.prop_fns_ = prop_fns_table<void>();
 1560|  24.6k|  }
_ZN5boost4asio9execution6detail17any_executor_baseC2EOS3_:
  615|  24.6k|  {
  616|  24.6k|    if (other.target_)
  ------------------
  |  Branch (616:9): [True: 24.6k, False: 0]
  ------------------
  617|  24.6k|    {
  618|  24.6k|      object_fns_ = other.object_fns_;
  619|  24.6k|      target_fns_ = other.target_fns_;
  620|  24.6k|      other.object_fns_ = 0;
  621|  24.6k|      other.target_fns_ = 0;
  622|  24.6k|      object_fns_->move(*this, other);
  623|  24.6k|      other.target_ = 0;
  624|  24.6k|    }
  625|      0|    else
  626|      0|    {
  627|      0|      object_fns_ = 0;
  628|      0|      target_ = 0;
  629|      0|      target_fns_ = 0;
  630|      0|    }
  631|  24.6k|  }

_ZN5boost4asio9execution6detaileqERKNS2_10blocking_tILi0EEES6_:
  370|  16.4k|  {
  371|  16.4k|    return a.value_ == b.value_;
  372|  16.4k|  }
_ZN5boost4asio9execution6detail10blocking_tILi0EEC2ENS2_8blocking10possibly_tILi0EEE:
  221|  16.4k|    : value_(0)
  222|  16.4k|  {
  223|  16.4k|  }
_ZN5boost4asio9execution6detail10blocking_tILi0EEC2ENS2_8blocking8always_tILi0EEE:
  226|  16.4k|    : value_(1)
  227|  16.4k|  {
  228|  16.4k|  }

_ZN5boost4asio9execution5queryINS0_10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEERNS0_17execution_contextEEET0_RKT_RKNS1_12context_as_tISB_EEPNS5_9enable_ifIXsr7is_sameISA_SB_EE5valueEvE4typeEPNSJ_IXsr9can_queryISE_RKNS1_6detail9context_tILi0EEEEE5valueEvE4typeE:
  119|  32.8k|  {
  120|  32.8k|    return boost::asio::query(ex, context);
  121|  32.8k|  }
_ZN5boost4asio9execution12context_as_tIRNS0_17execution_contextEEC2ENS1_6detail9context_tILi0EEE:
   83|  32.8k|  {
   84|  32.8k|  }

_ZN5boost4asio6detail30execution_context_service_baseINS0_14config_serviceEEC2ERNS0_17execution_contextE:
  400|  8.21k|    : execution_context::service(e)
  401|  8.21k|  {
  402|  8.21k|  }
_ZN5boost4asio17execution_context7service3keyC2Ev:
  337|   213k|    key() : type_info_(0), id_(0) {}
_ZN5boost4asio6detail30execution_context_service_baseINS1_13epoll_reactorEEC2ERNS0_17execution_contextE:
  400|  8.21k|    : execution_context::service(e)
  401|  8.21k|  {
  402|  8.21k|  }
_ZN5boost4asio6detail30execution_context_service_baseINS1_9schedulerEEC2ERNS0_17execution_contextE:
  400|  8.21k|    : execution_context::service(e)
  401|  8.21k|  {
  402|  8.21k|  }
_ZN5boost4asio17execution_context2idC2Ev:
  300|     12|  id() {}
_ZN5boost4asio6detail30execution_context_service_baseINS1_22deadline_timer_serviceINS1_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEEEC2ERNS0_17execution_contextE:
  400|  8.21k|    : execution_context::service(e)
  401|  8.21k|  {
  402|  8.21k|  }

_ZN5boost4asio15any_io_executorC2ERKS1_:
   40|  41.0k|  : base_type(static_cast<const base_type&>(e))
   41|  41.0k|{
   42|  41.0k|}
_ZN5boost4asio15any_io_executorC2EOS1_:
   51|  24.6k|  : base_type(static_cast<base_type&&>(e))
   52|  24.6k|{
   53|  24.6k|}

_ZNK5boost4asio6config3getIbEENS0_10constraintIXsr11is_integralIT_EE5valueES4_E4typeEPKcS8_S4_:
   91|  24.6k|{
   92|  24.6k|  return detail::config_get(service_, section,
   93|  24.6k|      key, default_value, is_same<T, bool>());
   94|  24.6k|}
_ZN5boost4asio6detail10config_getIbEET_RKNS0_14config_serviceEPKcS8_S3_NSt3__117integral_constantIbLb1EEE:
   71|  24.6k|{
   72|  24.6k|  char buf[std::numeric_limits<unsigned long long>::digits10
   73|  24.6k|      + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   74|  24.6k|  if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (74:19): [True: 24.6k, False: 0]
  ------------------
   75|  24.6k|  {
   76|  24.6k|    char* end = nullptr;
   77|  24.6k|    errno = 0;
   78|  24.6k|    unsigned long long result = std::strtoll(str, &end, 0);
   79|  24.6k|    if (errno == ERANGE || (result != 0 && result != 1))
  ------------------
  |  Branch (79:9): [True: 0, False: 24.6k]
  |  Branch (79:29): [True: 24.6k, False: 0]
  |  Branch (79:44): [True: 0, False: 24.6k]
  ------------------
   80|      0|      detail::throw_exception(std::out_of_range("config out of range"));
   81|  24.6k|    return static_cast<T>(result != 0);
   82|  24.6k|  }
   83|      0|  return default_value;
   84|  24.6k|}
_ZNK5boost4asio6config3getIiEENS0_10constraintIXsr11is_integralIT_EE5valueES4_E4typeEPKcS8_S4_:
   91|  41.0k|{
   92|  41.0k|  return detail::config_get(service_, section,
   93|  41.0k|      key, default_value, is_same<T, bool>());
   94|  41.0k|}
_ZN5boost4asio6detail10config_getIiEET_RKNS0_14config_serviceEPKcS8_S3_NSt3__117integral_constantIbLb0EEE:
   33|  41.0k|{
   34|  41.0k|  if (is_unsigned<T>::value)
  ------------------
  |  Branch (34:7): [Folded - Ignored]
  ------------------
   35|      0|  {
   36|      0|    char buf[std::numeric_limits<unsigned long long>::digits10
   37|      0|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   38|      0|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (38:21): [True: 0, False: 0]
  ------------------
   39|      0|    {
   40|      0|      char* end = nullptr;
   41|      0|      errno = 0;
   42|      0|      unsigned long long result = std::strtoull(str, &end, 0);
   43|      0|      if (errno == ERANGE
  ------------------
  |  Branch (43:11): [True: 0, False: 0]
  ------------------
   44|      0|          || result > static_cast<unsigned long long>(
  ------------------
  |  Branch (44:14): [True: 0, False: 0]
  ------------------
   45|      0|            (std::numeric_limits<T>::max)()))
   46|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   47|      0|      return static_cast<T>(result);
   48|      0|    }
   49|      0|  }
   50|  41.0k|  else
   51|  41.0k|  {
   52|  41.0k|    char buf[std::numeric_limits<unsigned long long>::digits10
   53|  41.0k|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   54|  41.0k|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (54:21): [True: 16.4k, False: 24.6k]
  ------------------
   55|  16.4k|    {
   56|  16.4k|      char* end = nullptr;
   57|  16.4k|      errno = 0;
   58|  16.4k|      long long result = std::strtoll(str, &end, 0);
   59|  16.4k|      if (errno == ERANGE || result < (std::numeric_limits<T>::min)()
  ------------------
  |  Branch (59:11): [True: 0, False: 16.4k]
  |  Branch (59:30): [True: 0, False: 16.4k]
  ------------------
   60|  16.4k|          || result > (std::numeric_limits<T>::max)())
  ------------------
  |  Branch (60:14): [True: 0, False: 16.4k]
  ------------------
   61|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   62|  16.4k|      return static_cast<T>(result);
   63|  16.4k|    }
   64|  41.0k|  }
   65|  24.6k|  return default_value;
   66|  41.0k|}
_ZNK5boost4asio6config3getIjEENS0_10constraintIXsr11is_integralIT_EE5valueES4_E4typeEPKcS8_S4_:
   91|  8.21k|{
   92|  8.21k|  return detail::config_get(service_, section,
   93|  8.21k|      key, default_value, is_same<T, bool>());
   94|  8.21k|}
_ZN5boost4asio6detail10config_getIjEET_RKNS0_14config_serviceEPKcS8_S3_NSt3__117integral_constantIbLb0EEE:
   33|  8.21k|{
   34|  8.21k|  if (is_unsigned<T>::value)
  ------------------
  |  Branch (34:7): [Folded - Ignored]
  ------------------
   35|  8.21k|  {
   36|  8.21k|    char buf[std::numeric_limits<unsigned long long>::digits10
   37|  8.21k|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   38|  8.21k|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (38:21): [True: 0, False: 8.21k]
  ------------------
   39|      0|    {
   40|      0|      char* end = nullptr;
   41|      0|      errno = 0;
   42|      0|      unsigned long long result = std::strtoull(str, &end, 0);
   43|      0|      if (errno == ERANGE
  ------------------
  |  Branch (43:11): [True: 0, False: 0]
  ------------------
   44|      0|          || result > static_cast<unsigned long long>(
  ------------------
  |  Branch (44:14): [True: 0, False: 0]
  ------------------
   45|      0|            (std::numeric_limits<T>::max)()))
   46|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   47|      0|      return static_cast<T>(result);
   48|      0|    }
   49|  8.21k|  }
   50|      0|  else
   51|      0|  {
   52|      0|    char buf[std::numeric_limits<unsigned long long>::digits10
   53|      0|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   54|      0|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (54:21): [True: 0, False: 0]
  ------------------
   55|      0|    {
   56|      0|      char* end = nullptr;
   57|      0|      errno = 0;
   58|      0|      long long result = std::strtoll(str, &end, 0);
   59|      0|      if (errno == ERANGE || result < (std::numeric_limits<T>::min)()
  ------------------
  |  Branch (59:11): [True: 0, False: 0]
  |  Branch (59:30): [True: 0, False: 0]
  ------------------
   60|      0|          || result > (std::numeric_limits<T>::max)())
  ------------------
  |  Branch (60:14): [True: 0, False: 0]
  ------------------
   61|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   62|      0|      return static_cast<T>(result);
   63|      0|    }
   64|      0|  }
   65|  8.21k|  return default_value;
   66|  8.21k|}
_ZNK5boost4asio6config3getIlEENS0_10constraintIXsr11is_integralIT_EE5valueES4_E4typeEPKcS8_S4_:
   91|  16.4k|{
   92|  16.4k|  return detail::config_get(service_, section,
   93|  16.4k|      key, default_value, is_same<T, bool>());
   94|  16.4k|}
_ZN5boost4asio6detail10config_getIlEET_RKNS0_14config_serviceEPKcS8_S3_NSt3__117integral_constantIbLb0EEE:
   33|  16.4k|{
   34|  16.4k|  if (is_unsigned<T>::value)
  ------------------
  |  Branch (34:7): [Folded - Ignored]
  ------------------
   35|      0|  {
   36|      0|    char buf[std::numeric_limits<unsigned long long>::digits10
   37|      0|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   38|      0|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (38:21): [True: 0, False: 0]
  ------------------
   39|      0|    {
   40|      0|      char* end = nullptr;
   41|      0|      errno = 0;
   42|      0|      unsigned long long result = std::strtoull(str, &end, 0);
   43|      0|      if (errno == ERANGE
  ------------------
  |  Branch (43:11): [True: 0, False: 0]
  ------------------
   44|      0|          || result > static_cast<unsigned long long>(
  ------------------
  |  Branch (44:14): [True: 0, False: 0]
  ------------------
   45|      0|            (std::numeric_limits<T>::max)()))
   46|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   47|      0|      return static_cast<T>(result);
   48|      0|    }
   49|      0|  }
   50|  16.4k|  else
   51|  16.4k|  {
   52|  16.4k|    char buf[std::numeric_limits<unsigned long long>::digits10
   53|  16.4k|        + 1 /* sign */ + 1 /* partial digit */ + 1 /* NUL */];
   54|  16.4k|    if (const char* str = service.get_value(section, key, buf, sizeof(buf)))
  ------------------
  |  Branch (54:21): [True: 0, False: 16.4k]
  ------------------
   55|      0|    {
   56|      0|      char* end = nullptr;
   57|      0|      errno = 0;
   58|      0|      long long result = std::strtoll(str, &end, 0);
   59|      0|      if (errno == ERANGE || result < (std::numeric_limits<T>::min)()
  ------------------
  |  Branch (59:11): [True: 0, False: 0]
  |  Branch (59:30): [True: 0, False: 0]
  ------------------
   60|      0|          || result > (std::numeric_limits<T>::max)())
  ------------------
  |  Branch (60:14): [True: 0, False: 0]
  ------------------
   61|      0|        detail::throw_exception(std::out_of_range("config out of range"));
   62|      0|      return static_cast<T>(result);
   63|      0|    }
   64|  16.4k|  }
   65|  16.4k|  return default_value;
   66|  16.4k|}

_ZN5boost4asio28config_from_concurrency_hintC2Ev:
  100|  8.21k|  : concurrency_hint_(BOOST_ASIO_CONCURRENCY_HINT_DEFAULT)
  ------------------
  |  |   84|  8.21k|# define BOOST_ASIO_CONCURRENCY_HINT_DEFAULT -1
  ------------------
  101|  8.21k|{
  102|  8.21k|}
_ZNK5boost4asio28config_from_concurrency_hint4makeERNS0_17execution_contextE:
  105|  8.21k|{
  106|  8.21k|  (void)make_service<detail::config_from_concurrency_hint_service>(ctx,
  107|  8.21k|      concurrency_hint_ == 1
  ------------------
  |  Branch (107:7): [True: 0, False: 8.21k]
  ------------------
  108|  8.21k|        ? BOOST_ASIO_CONCURRENCY_HINT_1 : concurrency_hint_);
  ------------------
  |  |   91|      0|# define BOOST_ASIO_CONCURRENCY_HINT_1 1
  ------------------
  109|  8.21k|}
_ZN5boost4asio6detail36config_from_concurrency_hint_serviceC2ERNS0_17execution_contextEi:
   54|  8.21k|    : config_service(ctx),
   55|  8.21k|      concurrency_hint_(concurrency_hint)
   56|  8.21k|  {
   57|  8.21k|  }
_ZN5boost4asio14config_serviceC2ERNS0_17execution_contextE:
   33|  8.21k|  : detail::execution_context_service_base<config_service>(ctx)
   34|  8.21k|{
   35|  8.21k|}
_ZN5boost4asio14config_service8shutdownEv:
   38|  16.4k|{
   39|  16.4k|}
_ZNK5boost4asio6detail36config_from_concurrency_hint_service9get_valueEPKcS4_Pcm:
   61|  90.3k|  {
   62|  90.3k|    if (std::strcmp(section, "scheduler") == 0)
  ------------------
  |  Branch (62:9): [True: 49.2k, False: 41.0k]
  ------------------
   63|  49.2k|    {
   64|  49.2k|      if (std::strcmp(key, "concurrency_hint") == 0)
  ------------------
  |  Branch (64:11): [True: 16.4k, False: 32.8k]
  ------------------
   65|  16.4k|      {
   66|  16.4k|        std::snprintf(value, value_len, "%d",
   67|  16.4k|            BOOST_ASIO_CONCURRENCY_HINT_IS_SPECIAL(concurrency_hint_)
  ------------------
  |  |   38|  16.4k|  ((static_cast<unsigned>(hint) \
  |  |  ------------------
  |  |  |  Branch (38:3): [True: 0, False: 16.4k]
  |  |  ------------------
  |  |   39|  16.4k|    & BOOST_ASIO_CONCURRENCY_HINT_ID_MASK) \
  |  |  ------------------
  |  |  |  |   24|  16.4k|#define BOOST_ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u
  |  |  ------------------
  |  |   40|  16.4k|      == BOOST_ASIO_CONCURRENCY_HINT_ID)
  |  |  ------------------
  |  |  |  |   23|  16.4k|#define BOOST_ASIO_CONCURRENCY_HINT_ID 0xA5100000u
  |  |  ------------------
  ------------------
   68|  16.4k|              ? 1 : concurrency_hint_);
   69|  16.4k|        return value;
   70|  16.4k|      }
   71|  32.8k|      else if (std::strcmp(key, "locking") == 0)
  ------------------
  |  Branch (71:16): [True: 8.21k, False: 24.6k]
  ------------------
   72|  8.21k|      {
   73|  8.21k|        return BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(
  ------------------
  |  |   44|  8.21k|  (((static_cast<unsigned>(hint) \
  |  |  ------------------
  |  |  |  Branch (44:3): [True: 8.21k, False: 0]
  |  |  ------------------
  |  |   45|  8.21k|    & (BOOST_ASIO_CONCURRENCY_HINT_ID_MASK \
  |  |  ------------------
  |  |  |  |   24|  8.21k|#define BOOST_ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u
  |  |  ------------------
  |  |   46|  8.21k|      | BOOST_ASIO_CONCURRENCY_HINT_LOCKING_ ## facility)) \
  |  |   47|  8.21k|        ^ BOOST_ASIO_CONCURRENCY_HINT_ID) != 0)
  |  |  ------------------
  |  |  |  |   23|  8.21k|#define BOOST_ASIO_CONCURRENCY_HINT_ID 0xA5100000u
  |  |  ------------------
  ------------------
   74|  8.21k|            SCHEDULER, concurrency_hint_) ? "1" : "0";
   75|  8.21k|      }
   76|  49.2k|    }
   77|  41.0k|    else if (std::strcmp(section, "reactor") == 0)
  ------------------
  |  Branch (77:14): [True: 41.0k, False: 0]
  ------------------
   78|  41.0k|    {
   79|  41.0k|      if (std::strcmp(key, "io_locking") == 0)
  ------------------
  |  Branch (79:11): [True: 8.21k, False: 32.8k]
  ------------------
   80|  8.21k|      {
   81|  8.21k|        return BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(
  ------------------
  |  |   44|  8.21k|  (((static_cast<unsigned>(hint) \
  |  |  ------------------
  |  |  |  Branch (44:3): [True: 8.21k, False: 0]
  |  |  ------------------
  |  |   45|  8.21k|    & (BOOST_ASIO_CONCURRENCY_HINT_ID_MASK \
  |  |  ------------------
  |  |  |  |   24|  8.21k|#define BOOST_ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u
  |  |  ------------------
  |  |   46|  8.21k|      | BOOST_ASIO_CONCURRENCY_HINT_LOCKING_ ## facility)) \
  |  |   47|  8.21k|        ^ BOOST_ASIO_CONCURRENCY_HINT_ID) != 0)
  |  |  ------------------
  |  |  |  |   23|  8.21k|#define BOOST_ASIO_CONCURRENCY_HINT_ID 0xA5100000u
  |  |  ------------------
  ------------------
   82|  8.21k|            REACTOR_IO, concurrency_hint_) ? "1" : "0";
   83|  8.21k|      }
   84|  32.8k|      else if (std::strcmp(key, "registration_locking") == 0)
  ------------------
  |  Branch (84:16): [True: 8.21k, False: 24.6k]
  ------------------
   85|  8.21k|      {
   86|  8.21k|        return BOOST_ASIO_CONCURRENCY_HINT_IS_LOCKING(
  ------------------
  |  |   44|  8.21k|  (((static_cast<unsigned>(hint) \
  |  |  ------------------
  |  |  |  Branch (44:3): [True: 8.21k, False: 0]
  |  |  ------------------
  |  |   45|  8.21k|    & (BOOST_ASIO_CONCURRENCY_HINT_ID_MASK \
  |  |  ------------------
  |  |  |  |   24|  8.21k|#define BOOST_ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u
  |  |  ------------------
  |  |   46|  8.21k|      | BOOST_ASIO_CONCURRENCY_HINT_LOCKING_ ## facility)) \
  |  |   47|  8.21k|        ^ BOOST_ASIO_CONCURRENCY_HINT_ID) != 0)
  |  |  ------------------
  |  |  |  |   23|  8.21k|#define BOOST_ASIO_CONCURRENCY_HINT_ID 0xA5100000u
  |  |  ------------------
  ------------------
   87|  8.21k|            REACTOR_REGISTRATION, concurrency_hint_) ? "1" : "0";
   88|  8.21k|      }
   89|  41.0k|    }
   90|  49.2k|    return nullptr;
   91|  90.3k|  }

_ZN5boost4asio5error18get_netdb_categoryEv:
   57|      2|{
   58|      2|  static detail::netdb_category instance;
   59|      2|  return instance;
   60|      2|}
_ZN5boost4asio5error21get_addrinfo_categoryEv:
   85|      2|{
   86|      2|  static detail::addrinfo_category instance;
   87|      2|  return instance;
   88|      2|}
_ZN5boost4asio5error17get_misc_categoryEv:
  119|  16.5k|{
  120|  16.5k|  static detail::misc_category instance;
  121|  16.5k|  return instance;
  122|  16.5k|}

_ZN5boost4asio12make_serviceINS0_6detail36config_from_concurrency_hint_serviceEJiEEERT_RNS0_17execution_contextEDpOT0_:
   40|  8.21k|{
   41|  8.21k|  detail::scoped_ptr<Service> svc(
   42|  8.21k|      new Service(e, static_cast<Args&&>(args)...));
   43|  8.21k|  e.service_registry_->template add_service<Service>(svc.get());
   44|  8.21k|  Service& result = *svc;
   45|  8.21k|  svc.release();
   46|  8.21k|  return result;
   47|  8.21k|}
_ZN5boost4asio17execution_context7service7contextEv:
   70|  24.6k|{
   71|  24.6k|  return owner_;
   72|  24.6k|}
_ZN5boost4asio11add_serviceINS0_6detail9schedulerEEEvRNS0_17execution_contextEPT_:
   51|  8.21k|{
   52|       |  // Check that Service meets the necessary type requirements.
   53|  8.21k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   54|       |
   55|  8.21k|  e.service_registry_->template add_service<Service>(svc);
   56|  8.21k|}
_ZN5boost4asio11use_serviceINS0_6detail13epoll_reactorEEERT_RNS0_17execution_contextE:
   31|  16.4k|{
   32|       |  // Check that Service meets the necessary type requirements.
   33|  16.4k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   34|       |
   35|  16.4k|  return e.service_registry_->template use_service<Service>();
   36|  16.4k|}
_ZN5boost4asio11use_serviceINS0_6detail9schedulerEEERT_RNS0_17execution_contextE:
   31|  8.21k|{
   32|       |  // Check that Service meets the necessary type requirements.
   33|  8.21k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   34|       |
   35|  8.21k|  return e.service_registry_->template use_service<Service>();
   36|  8.21k|}
_ZN5boost4asio11use_serviceINS0_14config_serviceEEERT_RNS0_17execution_contextE:
   31|  90.3k|{
   32|       |  // Check that Service meets the necessary type requirements.
   33|  90.3k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   34|       |
   35|  90.3k|  return e.service_registry_->template use_service<Service>();
   36|  90.3k|}
_ZN5boost4asio11use_serviceINS_5beast4test6detail14stream_serviceEEERT_RNS0_17execution_contextE:
   31|  16.4k|{
   32|       |  // Check that Service meets the necessary type requirements.
   33|  16.4k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   34|       |
   35|  16.4k|  return e.service_registry_->template use_service<Service>();
   36|  16.4k|}
_ZN5boost4asio11use_serviceINS_5beast9websocket6detail7serviceEEERT_RNS0_17execution_contextE:
   31|  8.21k|{
   32|       |  // Check that Service meets the necessary type requirements.
   33|  8.21k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   34|       |
   35|  8.21k|  return e.service_registry_->template use_service<Service>();
   36|  8.21k|}
_ZN5boost4asio11use_serviceINS0_6detail22deadline_timer_serviceINS2_18chrono_time_traitsINSt3__16chrono12steady_clockENS0_11wait_traitsIS7_EEEEEEEERT_RNS0_17execution_contextE:
   31|  8.21k|{
   32|       |  // Check that Service meets the necessary type requirements.
   33|  8.21k|  (void)static_cast<execution_context::service*>(static_cast<Service*>(0));
   34|       |
   35|  8.21k|  return e.service_registry_->template use_service<Service>();
   36|  8.21k|}

_ZN5boost4asio17execution_context7serviceC2ERS1_:
   63|  49.2k|  : owner_(owner),
   64|  49.2k|    next_(0)
   65|  49.2k|{
   66|  49.2k|}
_ZN5boost4asio17execution_contextC2ERKNS1_13service_makerE:
   34|  8.21k|  : service_registry_(new boost::asio::detail::service_registry(*this))
   35|  8.21k|{
   36|  8.21k|  initial_services.make(*this);
   37|  8.21k|}
_ZN5boost4asio17execution_contextD2Ev:
   40|  8.21k|{
   41|  8.21k|  shutdown();
   42|  8.21k|  destroy();
   43|  8.21k|  delete service_registry_;
   44|  8.21k|}
_ZN5boost4asio17execution_context8shutdownEv:
   47|  16.4k|{
   48|  16.4k|  service_registry_->shutdown_services();
   49|  16.4k|}
_ZN5boost4asio17execution_context7destroyEv:
   52|  8.21k|{
   53|  8.21k|  service_registry_->destroy_services();
   54|  8.21k|}

_ZN5boost4asio10io_context12get_executorEv:
   55|  16.4k|{
   56|  16.4k|  return executor_type(*this);
   57|  16.4k|}

_ZN5boost4asio10io_contextC2Ev:
   39|  8.21k|  : execution_context(config_from_concurrency_hint()),
   40|  8.21k|    impl_(add_impl(new impl_type(*this, false)))
   41|  8.21k|{
   42|  8.21k|}
_ZN5boost4asio10io_context8add_implEPNS0_6detail9schedulerE:
   57|  8.21k|{
   58|  8.21k|  boost::asio::detail::scoped_ptr<impl_type> scoped_impl(impl);
   59|  8.21k|  boost::asio::add_service<impl_type>(*this, scoped_impl.get());
   60|  8.21k|  return *scoped_impl.release();
   61|  8.21k|}
_ZN5boost4asio10io_contextD2Ev:
   64|  8.21k|{
   65|  8.21k|  shutdown();
   66|  8.21k|}

_ZN5boost4asio5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS0_14mutable_bufferEEEmRT_RKT0_RNS_6system10error_codeENS0_10constraintIXsr24is_const_buffer_sequenceISA_EE5valueEiE4typeE:
   94|   321k|{
   95|   321k|  return write(s, buffers, transfer_all(), ec);
   96|   321k|}
_ZN5boost4asio5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS0_14mutable_bufferENS0_6detail14transfer_all_tEEEmRT_RKT0_T1_RNS_6system10error_codeENS0_10constraintIXsr24is_const_buffer_sequenceISC_EE5valueEiE4typeENSJ_IXsr23is_completion_conditionISF_EE5valueEiE4typeE:
   70|   321k|{
   71|   321k|  return detail::write(s, buffers,
   72|   321k|      boost::asio::buffer_sequence_begin(buffers),
   73|   321k|      static_cast<CompletionCondition&&>(completion_condition), ec);
   74|   321k|}
_ZN5boost4asio6detail5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS0_14mutable_bufferEPKS8_NS1_14transfer_all_tEEEmRT_RKT0_RKT1_T2_RNS_6system10error_codeE:
   44|   321k|  {
   45|   321k|    ec = boost::system::error_code();
   46|   321k|    boost::asio::detail::consuming_buffers<const_buffer,
   47|   321k|        ConstBufferSequence, ConstBufferIterator> tmp(buffers);
   48|   642k|    while (!tmp.empty())
  ------------------
  |  Branch (48:12): [True: 321k, False: 321k]
  ------------------
   49|   321k|    {
   50|   321k|      if (std::size_t max_size = detail::adapt_completion_condition_result(
  ------------------
  |  Branch (50:23): [True: 321k, False: 0]
  ------------------
   51|   321k|            completion_condition(ec, tmp.total_consumed())))
   52|   321k|        tmp.consume(s.write_some(tmp.prepare(max_size), ec));
   53|      0|      else
   54|      0|        break;
   55|   321k|    }
   56|   321k|    return tmp.total_consumed();
   57|   321k|  }
_ZN5boost4asio5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS2_16buffers_cat_viewIJNS0_14mutable_bufferES8_EEEEEmRT_RKT0_RNS_6system10error_codeENS0_10constraintIXsr24is_const_buffer_sequenceISC_EE5valueEiE4typeE:
   94|  13.3k|{
   95|  13.3k|  return write(s, buffers, transfer_all(), ec);
   96|  13.3k|}
_ZN5boost4asio5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS2_16buffers_cat_viewIJNS0_14mutable_bufferES8_EEENS0_6detail14transfer_all_tEEEmRT_RKT0_T1_RNS_6system10error_codeENS0_10constraintIXsr24is_const_buffer_sequenceISE_EE5valueEiE4typeENSL_IXsr23is_completion_conditionISH_EE5valueEiE4typeE:
   70|  13.3k|{
   71|  13.3k|  return detail::write(s, buffers,
   72|  13.3k|      boost::asio::buffer_sequence_begin(buffers),
   73|  13.3k|      static_cast<CompletionCondition&&>(completion_condition), ec);
   74|  13.3k|}
_ZN5boost4asio6detail5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS3_16buffers_cat_viewIJNS0_14mutable_bufferES9_EEENSA_14const_iteratorENS1_14transfer_all_tEEEmRT_RKT0_RKT1_T2_RNS_6system10error_codeE:
   44|  13.3k|  {
   45|  13.3k|    ec = boost::system::error_code();
   46|  13.3k|    boost::asio::detail::consuming_buffers<const_buffer,
   47|  13.3k|        ConstBufferSequence, ConstBufferIterator> tmp(buffers);
   48|  26.6k|    while (!tmp.empty())
  ------------------
  |  Branch (48:12): [True: 13.3k, False: 13.3k]
  ------------------
   49|  13.3k|    {
   50|  13.3k|      if (std::size_t max_size = detail::adapt_completion_condition_result(
  ------------------
  |  Branch (50:23): [True: 13.3k, False: 0]
  ------------------
   51|  13.3k|            completion_condition(ec, tmp.total_consumed())))
   52|  13.3k|        tmp.consume(s.write_some(tmp.prepare(max_size), ec));
   53|      0|      else
   54|      0|        break;
   55|  13.3k|    }
   56|  13.3k|    return tmp.total_consumed();
   57|  13.3k|  }
_ZN5boost4asio5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS2_16buffers_cat_viewIJNS0_14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS8_EEEEEEEEEmRT_RKT0_RNS_6system10error_codeENS0_10constraintIXsr24is_const_buffer_sequenceISG_EE5valueEiE4typeE:
   94|  1.96k|{
   95|  1.96k|  return write(s, buffers, transfer_all(), ec);
   96|  1.96k|}
_ZN5boost4asio5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS2_16buffers_cat_viewIJNS0_14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS8_EEEEEEENS0_6detail14transfer_all_tEEEmRT_RKT0_T1_RNS_6system10error_codeENS0_10constraintIXsr24is_const_buffer_sequenceISI_EE5valueEiE4typeENSP_IXsr23is_completion_conditionISL_EE5valueEiE4typeE:
   70|  1.96k|{
   71|  1.96k|  return detail::write(s, buffers,
   72|  1.96k|      boost::asio::buffer_sequence_begin(buffers),
   73|  1.96k|      static_cast<CompletionCondition&&>(completion_condition), ec);
   74|  1.96k|}
_ZN5boost4asio6detail5writeINS_5beast4test12basic_streamINS0_15any_io_executorEEENS3_16buffers_cat_viewIJNS0_14mutable_bufferENS3_19buffers_prefix_viewINS3_14buffers_suffixIS9_EEEEEEENSE_14const_iteratorENS1_14transfer_all_tEEEmRT_RKT0_RKT1_T2_RNS_6system10error_codeE:
   44|  1.96k|  {
   45|  1.96k|    ec = boost::system::error_code();
   46|  1.96k|    boost::asio::detail::consuming_buffers<const_buffer,
   47|  1.96k|        ConstBufferSequence, ConstBufferIterator> tmp(buffers);
   48|  3.92k|    while (!tmp.empty())
  ------------------
  |  Branch (48:12): [True: 1.96k, False: 1.96k]
  ------------------
   49|  1.96k|    {
   50|  1.96k|      if (std::size_t max_size = detail::adapt_completion_condition_result(
  ------------------
  |  Branch (50:23): [True: 1.96k, False: 0]
  ------------------
   51|  1.96k|            completion_condition(ec, tmp.total_consumed())))
   52|  1.96k|        tmp.consume(s.write_some(tmp.prepare(max_size), ec));
   53|      0|      else
   54|      0|        break;
   55|  1.96k|    }
   56|  1.96k|    return tmp.total_consumed();
   57|  1.96k|  }

_ZN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEC2ERS1_:
  916|  16.4k|    : Allocator(),
  917|  16.4k|      target_(reinterpret_cast<uintptr_t>(&i))
  918|  16.4k|  {
  919|  16.4k|    if (Bits & outstanding_work_tracked)
  ------------------
  |  Branch (919:9): [Folded - Ignored]
  ------------------
  920|      0|      context_ptr()->impl_.work_started();
  921|  16.4k|  }
_ZN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEC2EOS6_:
  512|  73.9k|    : Allocator(static_cast<Allocator&&>(other)),
  513|  73.9k|      target_(other.target_)
  514|  73.9k|  {
  515|  73.9k|    if (Bits & outstanding_work_tracked)
  ------------------
  |  Branch (515:9): [Folded - Ignored]
  ------------------
  516|      0|      other.target_ = 0;
  517|  73.9k|  }
_ZNK5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EE4bitsEv:
  940|  16.4k|  {
  941|  16.4k|    return target_ & runtime_bits;
  942|  16.4k|  }
_ZNK5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EE11context_ptrEv:
  935|  32.8k|  {
  936|  32.8k|    return reinterpret_cast<io_context*>(target_ & ~runtime_bits);
  937|  32.8k|  }
_ZNK5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EE5queryENS0_9execution6detail10blocking_tILi0EEE:
  725|  16.4k|  {
  726|  16.4k|    return (bits() & blocking_never)
  ------------------
  |  Branch (726:12): [True: 0, False: 16.4k]
  ------------------
  727|  16.4k|      ? execution::blocking_t(execution::blocking.never)
  728|  16.4k|      : execution::blocking_t(execution::blocking.possibly);
  729|  16.4k|  }
_ZN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEC2ERKS6_:
  502|  41.0k|    : Allocator(static_cast<const Allocator&>(other)),
  503|  41.0k|      target_(other.target_)
  504|  41.0k|  {
  505|  41.0k|    if (Bits & outstanding_work_tracked)
  ------------------
  |  Branch (505:9): [Folded - Ignored]
  ------------------
  506|      0|      if (context_ptr())
  ------------------
  |  Branch (506:11): [True: 0, False: 0]
  ------------------
  507|      0|        context_ptr()->impl_.work_started();
  508|  41.0k|  }
_ZNK5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EE5queryENS0_9execution6detail9context_tILi0EEE:
  709|  32.8k|  {
  710|  32.8k|    return *context_ptr();
  711|  32.8k|  }
_ZN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EED2Ev:
  521|   131k|  {
  522|   131k|    if (Bits & outstanding_work_tracked)
  ------------------
  |  Branch (522:9): [Folded - Ignored]
  ------------------
  523|      0|      if (context_ptr())
  ------------------
  |  Branch (523:11): [True: 0, False: 0]
  ------------------
  524|      0|        context_ptr()->impl_.work_finished();
  525|   131k|  }

_ZNK19boost_asio_query_fn4implclIRKN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEERKNS3_9execution6detail10blocking_tILi0EEEEENS6_9enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE1EENS_11call_traitsIS0_SJ_SL_vvvvE11result_typeEE4typeEOSJ_OSK_:
  232|  16.4k|  {
  233|  16.4k|    return static_cast<T&&>(t).query(static_cast<Property&&>(p));
  234|  16.4k|  }
_ZNK19boost_asio_query_fn4implclIRKN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEERKNS3_9execution12context_as_tIRNS3_17execution_contextEEEEENS6_9enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE2EENS_11call_traitsIS0_SK_SM_vvvvE11result_typeEE4typeEOSK_OSL_:
  243|  32.8k|  {
  244|  32.8k|    return query(static_cast<T&&>(t), static_cast<Property&&>(p));
  245|  32.8k|  }
_ZNK19boost_asio_query_fn4implclIRKN5boost4asio10io_context19basic_executor_typeINSt3__19allocatorIvEELm0EEERKNS3_9execution6detail9context_tILi0EEEEENS6_9enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE1EENS_11call_traitsIS0_SJ_SL_vvvvE11result_typeEE4typeEOSJ_OSK_:
  232|  32.8k|  {
  233|  32.8k|    return static_cast<T&&>(t).query(static_cast<Property&&>(p));
  234|  32.8k|  }
_ZNK19boost_asio_query_fn4implclIRN5boost4asio15any_io_executorERKNS3_9execution6detail9context_tILi0EEEEENSt3__19enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE1EENS_11call_traitsIS0_SE_SG_vvvvE11result_typeEE4typeEOSE_OSF_:
  232|  16.4k|  {
  233|  16.4k|    return static_cast<T&&>(t).query(static_cast<Property&&>(p));
  234|  16.4k|  }
_ZNK19boost_asio_query_fn4implclIRKN5boost4asio15any_io_executorERKNS3_9execution6detail9context_tILi0EEEEENSt3__19enable_ifIXeqsr11call_traitsIS0_T_FvT0_EEE8overloadLNS_13overload_typeE1EENS_11call_traitsIS0_SF_SH_vvvvE11result_typeEE4typeEOSF_OSG_:
  232|  16.4k|  {
  233|  16.4k|    return static_cast<T&&>(t).query(static_cast<Property&&>(p));
  234|  16.4k|  }

_ZN5boost15source_locationC2EPKcjS2_j:
   42|  63.0k|    BOOST_CONSTEXPR source_location( char const * file, boost::uint_least32_t ln, char const * function, boost::uint_least32_t col = 0 ) BOOST_NOEXCEPT: file_( file ), function_( function ), line_( ln ), column_( col )
   43|  63.0k|    {
   44|  63.0k|    }

_ZN5boost5beast4test6detail14stream_service9make_implENS_4asio15any_io_executorEPNS1_10fail_countE:
   54|  16.4k|{
   55|       |#if defined(BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
   56|       |    auto& ctx = exec.context();
   57|       |#else
   58|  16.4k|    auto& ctx = net::query(
   59|  16.4k|        exec,
   60|  16.4k|        net::execution::context);
   61|  16.4k|#endif
   62|  16.4k|    auto& svc = net::use_service<stream_service>(ctx);
   63|  16.4k|    auto sp = boost::make_shared<detail::stream_state>(exec, svc.sp_, fc);
   64|  16.4k|    std::lock_guard<std::mutex> g(svc.sp_->m_);
   65|  16.4k|    svc.sp_->v_.push_back(sp.get());
   66|  16.4k|    return sp;
   67|  16.4k|}
_ZN5boost5beast4test6detail14stream_serviceC2ERNS_4asio17execution_contextE:
   28|  8.21k|    : beast::detail::service_base<stream_service>(ctx)
   29|  8.21k|    , sp_(boost::make_shared<stream_service_impl>())
   30|  8.21k|{
   31|  8.21k|}
_ZN5boost5beast4test6detail14stream_service8shutdownEv:
   36|  16.4k|{
   37|  16.4k|    std::vector<std::unique_ptr<detail::stream_read_op_base>> v;
   38|  16.4k|    std::lock_guard<std::mutex> g1(sp_->m_);
   39|  16.4k|    v.reserve(sp_->v_.size());
   40|  16.4k|    for(auto p : sp_->v_)
  ------------------
  |  Branch (40:16): [True: 0, False: 16.4k]
  ------------------
   41|      0|    {
   42|      0|        std::lock_guard<std::mutex> g2(p->m);
   43|      0|        v.emplace_back(std::move(p->op));
   44|      0|        p->code = detail::stream_status::eof;
   45|      0|    }
   46|  16.4k|}
_ZN5boost5beast4test6detail12stream_stateD2Ev:
   97|  16.4k|{
   98|       |    // cancel outstanding read
   99|  16.4k|    if(op != nullptr)
  ------------------
  |  Branch (99:8): [True: 0, False: 16.4k]
  ------------------
  100|      0|        (*op)(net::error::operation_aborted);
  101|  16.4k|}
_ZN5boost5beast4test6detail12stream_stateC2ENS_4asio15any_io_executorENS_8weak_ptrINS2_19stream_service_implEEEPNS1_10fail_countE:
   89|  16.4k|    : exec(std::move(exec_))
   90|  16.4k|    , wp(std::move(wp_))
   91|  16.4k|    , fc(fc_)
   92|  16.4k|{
   93|  16.4k|}
_ZN5boost5beast4test6detail12stream_state11cancel_readEv:
  134|  17.3k|{
  135|  17.3k|    std::unique_ptr<stream_read_op_base> p;
  136|  17.3k|    {
  137|  17.3k|        std::lock_guard<std::mutex> lock(m);
  138|  17.3k|        code = stream_status::eof;
  139|  17.3k|        p = std::move(op);
  140|  17.3k|    }
  141|  17.3k|    if(p != nullptr)
  ------------------
  |  Branch (141:8): [True: 0, False: 17.3k]
  ------------------
  142|      0|        (*p)(net::error::operation_aborted);
  143|  17.3k|}
_ZN5boost5beast4test6detail12stream_state11notify_readEv:
  119|   358k|{
  120|   358k|    if(op)
  ------------------
  |  Branch (120:8): [True: 0, False: 358k]
  ------------------
  121|      0|    {
  122|      0|        auto op_ = std::move(op);
  123|      0|        op_->operator()(error_code{});
  124|      0|    }
  125|   358k|    else
  126|   358k|    {
  127|   358k|        cv.notify_all();
  128|   358k|    }
  129|   358k|}
_ZN5boost5beast4test6detail12stream_state6removeEv:
  106|  16.4k|{
  107|  16.4k|    auto sp = wp.lock();
  108|       |
  109|       |    // If this goes off, it means the lifetime of a test::stream object
  110|       |    // extended beyond the lifetime of the associated execution context.
  111|  16.4k|    BOOST_ASSERT(sp);
  ------------------
  |  |   66|  16.4k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  112|       |
  113|  16.4k|    sp->remove(*this);
  114|  16.4k|}
_ZN5boost5beast4test6detail19stream_service_impl6removeERNS2_12stream_stateE:
   74|  16.4k|{
   75|  16.4k|    std::lock_guard<std::mutex> g(m_);
   76|  16.4k|    *std::find(
   77|  16.4k|        v_.begin(), v_.end(),
   78|  16.4k|            &impl) = std::move(v_.back());
   79|  16.4k|    v_.pop_back();
   80|  16.4k|}

_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE12get_executorEv:
  475|  16.4k|{
  476|  16.4k|    return detail::extract_executor_op<Executor>()(in_->exec);
  477|  16.4k|}
_ZNK5boost5beast4test6detail19extract_executor_opINS_4asio15any_io_executorEEclERS5_:
   46|  16.4k|    {
   47|  16.4k|        return ex;
   48|  16.4k|    }
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE9read_someINS0_6detail12buffers_pairILb1EEEEEmRKT_RNS_6system10error_codeE:
  284|  30.5k|{
  285|  30.5k|    static_assert(net::is_mutable_buffer_sequence<
  286|  30.5k|            MutableBufferSequence>::value,
  287|  30.5k|        "MutableBufferSequence type requirements not met");
  288|       |
  289|  30.5k|    ++in_->nread;
  290|       |
  291|       |    // test failure
  292|  30.5k|    if(in_->fc && in_->fc->fail(ec))
  ------------------
  |  Branch (292:8): [True: 0, False: 30.5k]
  |  Branch (292:19): [True: 0, False: 0]
  ------------------
  293|      0|        return 0;
  294|       |
  295|       |    // A request to read 0 bytes from a stream is a no-op.
  296|  30.5k|    if(buffer_bytes(buffers) == 0)
  ------------------
  |  Branch (296:8): [True: 0, False: 30.5k]
  ------------------
  297|      0|    {
  298|      0|        ec = {};
  299|      0|        return 0;
  300|      0|    }
  301|       |
  302|  30.5k|    std::unique_lock<std::mutex> lock{in_->m};
  303|  30.5k|    BOOST_ASSERT(! in_->op);
  ------------------
  |  |   66|  30.5k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  304|  30.5k|    in_->cv.wait(lock,
  305|  30.5k|        [&]()
  306|  30.5k|        {
  307|  30.5k|            return
  308|  30.5k|                in_->b.size() > 0 ||
  309|  30.5k|                in_->code != detail::stream_status::ok;
  310|  30.5k|        });
  311|       |
  312|       |    // deliver bytes before eof
  313|  30.5k|    if(in_->b.size() > 0)
  ------------------
  |  Branch (313:8): [True: 26.3k, False: 4.17k]
  ------------------
  314|  26.3k|    {
  315|  26.3k|        auto const n = net::buffer_copy(
  316|  26.3k|            buffers, in_->b.data(), in_->read_max);
  317|  26.3k|        in_->b.consume(n);
  318|  26.3k|        in_->nread_bytes += n;
  319|  26.3k|        return n;
  320|  26.3k|    }
  321|       |
  322|       |    // deliver error
  323|  4.17k|    BOOST_ASSERT(in_->code != detail::stream_status::ok);
  ------------------
  |  |   66|  4.17k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  324|  4.17k|    BOOST_BEAST_ASSIGN_EC(ec, net::error::eof);
  ------------------
  |  |  111|  4.17k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  4.17k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  4.17k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  4.17k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  4.17k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  325|  4.17k|    return 0;
  326|  4.17k|}
_ZZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE9read_someINS0_6detail12buffers_pairILb1EEEEEmRKT_RNS_6system10error_codeEENKUlvE_clEv:
  306|  30.5k|        {
  307|  30.5k|            return
  308|  30.5k|                in_->b.size() > 0 ||
  ------------------
  |  Branch (308:17): [True: 26.3k, False: 4.17k]
  ------------------
  309|  30.5k|                in_->code != detail::stream_status::ok;
  ------------------
  |  Branch (309:17): [True: 4.17k, False: 0]
  ------------------
  310|  30.5k|        });
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE10write_someINS0_6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS8_INSB_IJNS3_12const_bufferESC_SC_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSD_10chunk_crlfEEEEEESC_EEEEEEEEEEEmRKT_RNS_6system10error_codeE:
  372|  5.13k|{
  373|  5.13k|    static_assert(net::is_const_buffer_sequence<
  374|  5.13k|            ConstBufferSequence>::value,
  375|  5.13k|        "ConstBufferSequence type requirements not met");
  376|       |
  377|  5.13k|    ++in_->nwrite;
  378|       |
  379|       |    // test failure
  380|  5.13k|    if(in_->fc && in_->fc->fail(ec))
  ------------------
  |  Branch (380:8): [True: 0, False: 5.13k]
  |  Branch (380:19): [True: 0, False: 0]
  ------------------
  381|      0|        return 0;
  382|       |
  383|       |    // A request to write 0 bytes to a stream is a no-op.
  384|  5.13k|    if(buffer_bytes(buffers) == 0)
  ------------------
  |  Branch (384:8): [True: 0, False: 5.13k]
  ------------------
  385|      0|    {
  386|      0|        ec = {};
  387|      0|        return 0;
  388|      0|    }
  389|       |
  390|       |    // connection closed
  391|  5.13k|    auto out = out_.lock();
  392|  5.13k|    if(! out)
  ------------------
  |  Branch (392:8): [True: 0, False: 5.13k]
  ------------------
  393|      0|    {
  394|      0|        BOOST_BEAST_ASSIGN_EC(ec, net::error::connection_reset);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  395|      0|        return 0;
  396|      0|    }
  397|       |
  398|       |    // copy buffers
  399|  5.13k|    auto n = std::min<std::size_t>(
  400|  5.13k|        buffer_bytes(buffers), in_->write_max);
  401|  5.13k|    {
  402|  5.13k|        std::lock_guard<std::mutex> lock(out->m);
  403|  5.13k|        n = net::buffer_copy(out->b.prepare(n), buffers);
  404|  5.13k|        out->b.commit(n);
  405|  5.13k|        out->nwrite_bytes += n;
  406|  5.13k|        out->notify_read();
  407|  5.13k|    }
  408|  5.13k|    return n;
  409|  5.13k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE10write_someINS0_6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS8_INS0_16buffers_cat_viewIJNS3_12const_bufferESC_SC_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSD_10chunk_crlfEEEEEEEEEEEEEEmRKT_RNS_6system10error_codeE:
  372|     11|{
  373|     11|    static_assert(net::is_const_buffer_sequence<
  374|     11|            ConstBufferSequence>::value,
  375|     11|        "ConstBufferSequence type requirements not met");
  376|       |
  377|     11|    ++in_->nwrite;
  378|       |
  379|       |    // test failure
  380|     11|    if(in_->fc && in_->fc->fail(ec))
  ------------------
  |  Branch (380:8): [True: 0, False: 11]
  |  Branch (380:19): [True: 0, False: 0]
  ------------------
  381|      0|        return 0;
  382|       |
  383|       |    // A request to write 0 bytes to a stream is a no-op.
  384|     11|    if(buffer_bytes(buffers) == 0)
  ------------------
  |  Branch (384:8): [True: 0, False: 11]
  ------------------
  385|      0|    {
  386|      0|        ec = {};
  387|      0|        return 0;
  388|      0|    }
  389|       |
  390|       |    // connection closed
  391|     11|    auto out = out_.lock();
  392|     11|    if(! out)
  ------------------
  |  Branch (392:8): [True: 0, False: 11]
  ------------------
  393|      0|    {
  394|      0|        BOOST_BEAST_ASSIGN_EC(ec, net::error::connection_reset);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  395|      0|        return 0;
  396|      0|    }
  397|       |
  398|       |    // copy buffers
  399|     11|    auto n = std::min<std::size_t>(
  400|     11|        buffer_bytes(buffers), in_->write_max);
  401|     11|    {
  402|     11|        std::lock_guard<std::mutex> lock(out->m);
  403|     11|        n = net::buffer_copy(out->b.prepare(n), buffers);
  404|     11|        out->b.commit(n);
  405|     11|        out->nwrite_bytes += n;
  406|     11|        out->notify_read();
  407|     11|    }
  408|     11|    return n;
  409|     11|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE10write_someINS3_12const_bufferEEEmRKT_RNS_6system10error_codeE:
  372|   321k|{
  373|   321k|    static_assert(net::is_const_buffer_sequence<
  374|   321k|            ConstBufferSequence>::value,
  375|   321k|        "ConstBufferSequence type requirements not met");
  376|       |
  377|   321k|    ++in_->nwrite;
  378|       |
  379|       |    // test failure
  380|   321k|    if(in_->fc && in_->fc->fail(ec))
  ------------------
  |  Branch (380:8): [True: 0, False: 321k]
  |  Branch (380:19): [True: 0, False: 0]
  ------------------
  381|      0|        return 0;
  382|       |
  383|       |    // A request to write 0 bytes to a stream is a no-op.
  384|   321k|    if(buffer_bytes(buffers) == 0)
  ------------------
  |  Branch (384:8): [True: 0, False: 321k]
  ------------------
  385|      0|    {
  386|      0|        ec = {};
  387|      0|        return 0;
  388|      0|    }
  389|       |
  390|       |    // connection closed
  391|   321k|    auto out = out_.lock();
  392|   321k|    if(! out)
  ------------------
  |  Branch (392:8): [True: 0, False: 321k]
  ------------------
  393|      0|    {
  394|      0|        BOOST_BEAST_ASSIGN_EC(ec, net::error::connection_reset);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  395|      0|        return 0;
  396|      0|    }
  397|       |
  398|       |    // copy buffers
  399|   321k|    auto n = std::min<std::size_t>(
  400|   321k|        buffer_bytes(buffers), in_->write_max);
  401|   321k|    {
  402|   321k|        std::lock_guard<std::mutex> lock(out->m);
  403|   321k|        n = net::buffer_copy(out->b.prepare(n), buffers);
  404|   321k|        out->b.commit(n);
  405|   321k|        out->nwrite_bytes += n;
  406|   321k|        out->notify_read();
  407|   321k|    }
  408|   321k|    return n;
  409|   321k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE9read_someINS0_19buffers_prefix_viewINS3_14mutable_bufferEEEEEmRKT_RNS_6system10error_codeE:
  284|  2.93k|{
  285|  2.93k|    static_assert(net::is_mutable_buffer_sequence<
  286|  2.93k|            MutableBufferSequence>::value,
  287|  2.93k|        "MutableBufferSequence type requirements not met");
  288|       |
  289|  2.93k|    ++in_->nread;
  290|       |
  291|       |    // test failure
  292|  2.93k|    if(in_->fc && in_->fc->fail(ec))
  ------------------
  |  Branch (292:8): [True: 0, False: 2.93k]
  |  Branch (292:19): [True: 0, False: 0]
  ------------------
  293|      0|        return 0;
  294|       |
  295|       |    // A request to read 0 bytes from a stream is a no-op.
  296|  2.93k|    if(buffer_bytes(buffers) == 0)
  ------------------
  |  Branch (296:8): [True: 0, False: 2.93k]
  ------------------
  297|      0|    {
  298|      0|        ec = {};
  299|      0|        return 0;
  300|      0|    }
  301|       |
  302|  2.93k|    std::unique_lock<std::mutex> lock{in_->m};
  303|  2.93k|    BOOST_ASSERT(! in_->op);
  ------------------
  |  |   66|  2.93k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  304|  2.93k|    in_->cv.wait(lock,
  305|  2.93k|        [&]()
  306|  2.93k|        {
  307|  2.93k|            return
  308|  2.93k|                in_->b.size() > 0 ||
  309|  2.93k|                in_->code != detail::stream_status::ok;
  310|  2.93k|        });
  311|       |
  312|       |    // deliver bytes before eof
  313|  2.93k|    if(in_->b.size() > 0)
  ------------------
  |  Branch (313:8): [True: 2.64k, False: 291]
  ------------------
  314|  2.64k|    {
  315|  2.64k|        auto const n = net::buffer_copy(
  316|  2.64k|            buffers, in_->b.data(), in_->read_max);
  317|  2.64k|        in_->b.consume(n);
  318|  2.64k|        in_->nread_bytes += n;
  319|  2.64k|        return n;
  320|  2.64k|    }
  321|       |
  322|       |    // deliver error
  323|    291|    BOOST_ASSERT(in_->code != detail::stream_status::ok);
  ------------------
  |  |   66|    291|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  324|    291|    BOOST_BEAST_ASSIGN_EC(ec, net::error::eof);
  ------------------
  |  |  111|    291|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    291|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    291|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    291|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    291|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  325|    291|    return 0;
  326|    291|}
_ZZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE9read_someINS0_19buffers_prefix_viewINS3_14mutable_bufferEEEEEmRKT_RNS_6system10error_codeEENKUlvE_clEv:
  306|  2.93k|        {
  307|  2.93k|            return
  308|  2.93k|                in_->b.size() > 0 ||
  ------------------
  |  Branch (308:17): [True: 2.64k, False: 291]
  ------------------
  309|  2.93k|                in_->code != detail::stream_status::ok;
  ------------------
  |  Branch (309:17): [True: 291, False: 0]
  ------------------
  310|  2.93k|        });
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE10write_someINS3_6detail16prepared_buffersINS3_12const_bufferELm64EEEEEmRKT_RNS_6system10error_codeE:
  372|  15.2k|{
  373|  15.2k|    static_assert(net::is_const_buffer_sequence<
  374|  15.2k|            ConstBufferSequence>::value,
  375|  15.2k|        "ConstBufferSequence type requirements not met");
  376|       |
  377|  15.2k|    ++in_->nwrite;
  378|       |
  379|       |    // test failure
  380|  15.2k|    if(in_->fc && in_->fc->fail(ec))
  ------------------
  |  Branch (380:8): [True: 0, False: 15.2k]
  |  Branch (380:19): [True: 0, False: 0]
  ------------------
  381|      0|        return 0;
  382|       |
  383|       |    // A request to write 0 bytes to a stream is a no-op.
  384|  15.2k|    if(buffer_bytes(buffers) == 0)
  ------------------
  |  Branch (384:8): [True: 0, False: 15.2k]
  ------------------
  385|      0|    {
  386|      0|        ec = {};
  387|      0|        return 0;
  388|      0|    }
  389|       |
  390|       |    // connection closed
  391|  15.2k|    auto out = out_.lock();
  392|  15.2k|    if(! out)
  ------------------
  |  Branch (392:8): [True: 0, False: 15.2k]
  ------------------
  393|      0|    {
  394|      0|        BOOST_BEAST_ASSIGN_EC(ec, net::error::connection_reset);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  395|      0|        return 0;
  396|      0|    }
  397|       |
  398|       |    // copy buffers
  399|  15.2k|    auto n = std::min<std::size_t>(
  400|  15.2k|        buffer_bytes(buffers), in_->write_max);
  401|  15.2k|    {
  402|  15.2k|        std::lock_guard<std::mutex> lock(out->m);
  403|  15.2k|        n = net::buffer_copy(out->b.prepare(n), buffers);
  404|  15.2k|        out->b.commit(n);
  405|  15.2k|        out->nwrite_bytes += n;
  406|  15.2k|        out->notify_read();
  407|  15.2k|    }
  408|  15.2k|    return n;
  409|  15.2k|}

_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEEC2ES4_:
  109|  8.21k|    : in_(detail::stream_service::make_impl(std::move(exec), nullptr))
  110|  8.21k|{
  111|  8.21k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEED2Ev:
   72|  16.4k|{
   73|  16.4k|    close();
   74|  16.4k|    in_->remove();
   75|  16.4k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE5closeEv:
  199|  17.3k|{
  200|  17.3k|    in_->cancel_read();
  201|       |
  202|       |    // disconnect
  203|  17.3k|    {
  204|  17.3k|        auto out = out_.lock();
  205|  17.3k|        out_.reset();
  206|       |
  207|       |        // notify peer
  208|  17.3k|        if(out)
  ------------------
  |  Branch (208:12): [True: 8.21k, False: 9.12k]
  ------------------
  209|  8.21k|        {
  210|  8.21k|            std::lock_guard<std::mutex> lock(out->m);
  211|  8.21k|            if(out->code == detail::stream_status::ok)
  ------------------
  |  Branch (211:16): [True: 8.21k, False: 0]
  ------------------
  212|  8.21k|            {
  213|  8.21k|                out->code = detail::stream_status::eof;
  214|  8.21k|                out->notify_read();
  215|  8.21k|            }
  216|  8.21k|        }
  217|  17.3k|    }
  218|  17.3k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEEC2ERNS3_10io_contextENS_4core17basic_string_viewIcEE:
  127|  8.21k|    : in_(detail::stream_service::make_impl(ioc.get_executor(), nullptr))
  128|  8.21k|{
  129|  8.21k|    in_->b.commit(net::buffer_copy(
  130|  8.21k|        in_->b.prepare(s.size()),
  131|  8.21k|        net::buffer(s.data(), s.size())));
  132|  8.21k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE7connectERS5_:
  151|  8.21k|{
  152|  8.21k|    BOOST_ASSERT(! out_.lock());
  ------------------
  |  |   66|  8.21k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  153|  8.21k|    BOOST_ASSERT(! remote.out_.lock());
  ------------------
  |  |   66|  8.21k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  154|  8.21k|    std::lock(in_->m, remote.in_->m);
  155|  8.21k|    std::lock_guard<std::mutex> guard1{in_->m, std::adopt_lock};
  156|  8.21k|    std::lock_guard<std::mutex> guard2{remote.in_->m, std::adopt_lock};
  157|  8.21k|    out_ = remote.in_;
  158|  8.21k|    remote.out_ = in_;
  159|  8.21k|    in_->code = detail::stream_status::ok;
  160|  8.21k|    remote.in_->code = detail::stream_status::ok;
  161|  8.21k|}
_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEE12close_remoteEv:
  224|  8.21k|{
  225|  8.21k|    std::lock_guard<std::mutex> lock{in_->m};
  226|  8.21k|    if(in_->code == detail::stream_status::ok)
  ------------------
  |  Branch (226:8): [True: 8.21k, False: 0]
  ------------------
  227|  8.21k|    {
  228|  8.21k|        in_->code = detail::stream_status::eof;
  229|  8.21k|        in_->notify_read();
  230|  8.21k|    }
  231|  8.21k|}
_ZN5boost5beast4test8teardownINS_4asio15any_io_executorEEEvNS0_9role_typeERNS1_12basic_streamIT_EERNS_6system10error_codeE:
  239|    905|{
  240|    905|    if( s.in_->fc &&
  ------------------
  |  Branch (240:9): [True: 0, False: 905]
  ------------------
  241|    905|        s.in_->fc->fail(ec))
  ------------------
  |  Branch (241:9): [True: 0, False: 0]
  ------------------
  242|      0|        return;
  243|       |
  244|    905|    s.close();
  245|       |
  246|    905|    if( s.in_->fc &&
  ------------------
  |  Branch (246:9): [True: 0, False: 905]
  ------------------
  247|    905|        s.in_->fc->fail(ec))
  ------------------
  |  Branch (247:9): [True: 0, False: 0]
  ------------------
  248|      0|    {
  249|      0|        BOOST_BEAST_ASSIGN_EC(ec, net::error::eof);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  250|      0|    }
  251|    905|    else
  252|    905|        ec = {};
  253|    905|}

_ZN5boost5beast4test12basic_streamINS_4asio15any_io_executorEEC2INS3_10io_contextEvEERT_:
  242|  8.21k|    : basic_stream(context.get_executor())
  243|  8.21k|    {
  244|  8.21k|    }

_ZN5boost5beast11buffers_catINS_4asio14mutable_bufferEJS3_EEENS0_16buffers_cat_viewIJT_DpT0_EEERKS5_DpRKS6_:
   93|  13.3k|{
   94|  13.3k|    static_assert(
   95|  13.3k|        is_const_buffer_sequence<B1, Bn...>::value,
   96|  13.3k|        "BufferSequence type requirements not met");
   97|  13.3k|    return buffers_cat_view<B1, Bn...>{b1, bn...};
   98|  13.3k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEEC2ERKS8_:
   45|  1.96k|    buffers_cat_view(buffers_cat_view const&) = default;
_ZN5boost5beast11buffers_catINS_4asio14mutable_bufferEJNS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEEENS0_16buffers_cat_viewIJT_DpT0_EEERKS9_DpRKSA_:
   93|  1.96k|{
   94|  1.96k|    static_assert(
   95|  1.96k|        is_const_buffer_sequence<B1, Bn...>::value,
   96|  1.96k|        "BufferSequence type requirements not met");
   97|  1.96k|    return buffers_cat_view<B1, Bn...>{b1, bn...};
   98|  1.96k|}

_ZN5boost5beast14buffers_prefixINS0_6detail12buffers_pairILb1EEEEENS0_19buffers_prefix_viewIT_EEmRKS6_:
  168|  1.52M|{
  169|  1.52M|    static_assert(
  170|  1.52M|        net::is_const_buffer_sequence<BufferSequence>::value,
  171|  1.52M|            "BufferSequence type requirements not met");
  172|  1.52M|    return buffers_prefix_view<BufferSequence>(size, buffers);
  173|  1.52M|}
_ZN5boost5beast14buffers_prefixINS_4asio14mutable_bufferEEENS0_19buffers_prefix_viewIT_EEmRKS5_:
  168|   468k|{
  169|   468k|    static_assert(
  170|   468k|        net::is_const_buffer_sequence<BufferSequence>::value,
  171|   468k|            "BufferSequence type requirements not met");
  172|   468k|    return buffers_prefix_view<BufferSequence>(size, buffers);
  173|   468k|}
_ZN5boost5beast13buffers_frontINS0_14buffers_suffixINS_4asio14mutable_bufferEEEEENSt3__111conditionalIXsr26is_mutable_buffer_sequenceIT_EE5valueES4_NS3_12const_bufferEE4typeERKS8_:
  188|  65.0M|{
  189|  65.0M|    auto const first =
  190|  65.0M|        net::buffer_sequence_begin(buffers);
  191|  65.0M|    if(first == net::buffer_sequence_end(buffers))
  ------------------
  |  Branch (191:8): [True: 0, False: 65.0M]
  ------------------
  192|      0|        return {};
  193|  65.0M|    return *first;
  194|  65.0M|}
_ZN5boost5beast13buffers_frontINS0_6detail12buffers_pairILb1EEEEENSt3__111conditionalIXsr26is_mutable_buffer_sequenceIT_EE5valueENS_4asio14mutable_bufferENS8_12const_bufferEE4typeERKS7_:
  188|  88.7k|{
  189|  88.7k|    auto const first =
  190|  88.7k|        net::buffer_sequence_begin(buffers);
  191|  88.7k|    if(first == net::buffer_sequence_end(buffers))
  ------------------
  |  Branch (191:8): [True: 0, False: 88.7k]
  ------------------
  192|      0|        return {};
  193|  88.7k|    return *first;
  194|  88.7k|}
_ZN5boost5beast14buffers_prefixINS0_14buffers_suffixINS_4asio14mutable_bufferEEEEENS0_19buffers_prefix_viewIT_EEmRKS7_:
  168|  1.96k|{
  169|  1.96k|    static_assert(
  170|  1.96k|        net::is_const_buffer_sequence<BufferSequence>::value,
  171|  1.96k|            "BufferSequence type requirements not met");
  172|  1.96k|    return buffers_prefix_view<BufferSequence>(size, buffers);
  173|  1.96k|}

_ZN5boost5beast17buffers_range_refINS0_19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEEEEENS3_21buffers_range_adaptorIRKT_EESA_:
  116|   969k|{
  117|   969k|    static_assert(
  118|   969k|        is_const_buffer_sequence<BufferSequence>::value,
  119|   969k|        "BufferSequence type requirements not met");
  120|   969k|    return detail::buffers_range_adaptor<
  121|   969k|        BufferSequence const&>(buffers);
  122|   969k|}
_ZN5boost5beast17buffers_range_refINS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEEENS0_6detail21buffers_range_adaptorIRKT_EESA_:
  116|   248k|{
  117|   248k|    static_assert(
  118|   248k|        is_const_buffer_sequence<BufferSequence>::value,
  119|   248k|        "BufferSequence type requirements not met");
  120|   248k|    return detail::buffers_range_adaptor<
  121|   248k|        BufferSequence const&>(buffers);
  122|   248k|}
_ZN5boost5beast17buffers_range_refINS0_14buffers_suffixINS_4asio14mutable_bufferEEEEENS0_6detail21buffers_range_adaptorIRKT_EESA_:
  116|  13.3k|{
  117|  13.3k|    static_assert(
  118|  13.3k|        is_const_buffer_sequence<BufferSequence>::value,
  119|  13.3k|        "BufferSequence type requirements not met");
  120|  13.3k|    return detail::buffers_range_adaptor<
  121|  13.3k|        BufferSequence const&>(buffers);
  122|  13.3k|}

_ZN5boost5beast14buffers_suffixINS_4asio14mutable_bufferEEC2IRKS4_EEOT_m:
   64|  5.88k|        : bs_(std::forward<Deduced>(other).bs_)
   65|  5.88k|        , begin_(std::next(
   66|  5.88k|            net::buffer_sequence_begin(bs_),
   67|  5.88k|                dist))
   68|  5.88k|        , skip_(other.skip_)
   69|  5.88k|    {
   70|  5.88k|    }

_ZN5boost5beast6detail6base646encodeEPvPKvm:
  104|  4.64k|{
  105|  4.64k|    char*      out = static_cast<char*>(dest);
  106|  4.64k|    char const* in = static_cast<char const*>(src);
  107|  4.64k|    auto const tab = base64::get_alphabet();
  108|       |
  109|  32.5k|    for(auto n = len / 3; n--;)
  ------------------
  |  Branch (109:27): [True: 27.8k, False: 4.64k]
  ------------------
  110|  27.8k|    {
  111|  27.8k|        *out++ = tab[ (in[0] & 0xfc) >> 2];
  112|  27.8k|        *out++ = tab[((in[0] & 0x03) << 4) + ((in[1] & 0xf0) >> 4)];
  113|  27.8k|        *out++ = tab[((in[2] & 0xc0) >> 6) + ((in[1] & 0x0f) << 2)];
  114|  27.8k|        *out++ = tab[  in[2] & 0x3f];
  115|  27.8k|        in += 3;
  116|  27.8k|    }
  117|       |
  118|  4.64k|    switch(len % 3)
  ------------------
  |  Branch (118:12): [True: 0, False: 4.64k]
  ------------------
  119|  4.64k|    {
  120|  4.64k|    case 2:
  ------------------
  |  Branch (120:5): [True: 4.64k, False: 0]
  ------------------
  121|  4.64k|        *out++ = tab[ (in[0] & 0xfc) >> 2];
  122|  4.64k|        *out++ = tab[((in[0] & 0x03) << 4) + ((in[1] & 0xf0) >> 4)];
  123|  4.64k|        *out++ = tab[                         (in[1] & 0x0f) << 2];
  124|  4.64k|        *out++ = '=';
  125|  4.64k|        break;
  126|       |
  127|      0|    case 1:
  ------------------
  |  Branch (127:5): [True: 0, False: 4.64k]
  ------------------
  128|      0|        *out++ = tab[ (in[0] & 0xfc) >> 2];
  129|      0|        *out++ = tab[((in[0] & 0x03) << 4)];
  130|      0|        *out++ = '=';
  131|      0|        *out++ = '=';
  132|      0|        break;
  133|       |
  134|      0|    case 0:
  ------------------
  |  Branch (134:5): [True: 0, False: 4.64k]
  ------------------
  135|      0|        break;
  136|  4.64k|    }
  137|       |
  138|  4.64k|    return out - static_cast<char*>(dest);
  139|  4.64k|}
_ZN5boost5beast6detail6base6412get_alphabetEv:
   56|  4.64k|{
   57|  4.64k|    static char constexpr tab[] = {
   58|  4.64k|        "ABCDEFGHIJKLMNOP"
   59|  4.64k|        "QRSTUVWXYZabcdef"
   60|  4.64k|        "ghijklmnopqrstuv"
   61|  4.64k|        "wxyz0123456789+/"
   62|  4.64k|    };
   63|  4.64k|    return &tab[0];
   64|  4.64k|}

_ZN5boost5beast6detail22dynamic_buffer_prepareINS0_13static_bufferILm1536EEENS0_9websocket5errorEEENS_8optionalINT_20mutable_buffers_typeEEERS8_mRNS_6system10error_codeET0_:
   58|  8.21k|{
   59|  8.21k|#ifndef BOOST_NO_EXCEPTIONS
   60|  8.21k|    try
   61|  8.21k|    {
   62|  8.21k|        boost::optional<typename
   63|  8.21k|            DynamicBuffer::mutable_buffers_type> result;
   64|  8.21k|        result.emplace(buffer.prepare(size));
   65|  8.21k|        ec = {};
   66|  8.21k|        return result;
   67|  8.21k|    }
   68|  8.21k|    catch(std::length_error const&)
   69|  8.21k|    {
   70|      0|        BOOST_BEAST_ASSIGN_EC(ec, ev);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   71|      0|    }
   72|      0|    return boost::none;
   73|       |
   74|       |#else
   75|       |    return dynamic_buffer_prepare_noexcept(
   76|       |        buffer, size, ec, ev);
   77|       |#endif
   78|  8.21k|}
_ZN5boost5beast6detail22dynamic_buffer_prepareINS0_13static_bufferILm1536EEENS0_4http5errorEEENS_8optionalINT_20mutable_buffers_typeEEERS8_mRNS_6system10error_codeET0_:
   58|  11.2k|{
   59|  11.2k|#ifndef BOOST_NO_EXCEPTIONS
   60|  11.2k|    try
   61|  11.2k|    {
   62|  11.2k|        boost::optional<typename
   63|  11.2k|            DynamicBuffer::mutable_buffers_type> result;
   64|  11.2k|        result.emplace(buffer.prepare(size));
   65|  11.2k|        ec = {};
   66|  11.2k|        return result;
   67|  11.2k|    }
   68|  11.2k|    catch(std::length_error const&)
   69|  11.2k|    {
   70|      0|        BOOST_BEAST_ASSIGN_EC(ec, ev);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   71|      0|    }
   72|      0|    return boost::none;
   73|       |
   74|       |#else
   75|       |    return dynamic_buffer_prepare_noexcept(
   76|       |        buffer, size, ec, ev);
   77|       |#endif
   78|  11.2k|}
_ZN5boost5beast6detail22dynamic_buffer_prepareINS0_17basic_flat_bufferINSt3__19allocatorIcEEEENS0_9websocket5errorEEENS_8optionalINT_20mutable_buffers_typeEEERSB_mRNS_6system10error_codeET0_:
   58|   717k|{
   59|   717k|#ifndef BOOST_NO_EXCEPTIONS
   60|   717k|    try
   61|   717k|    {
   62|   717k|        boost::optional<typename
   63|   717k|            DynamicBuffer::mutable_buffers_type> result;
   64|   717k|        result.emplace(buffer.prepare(size));
   65|   717k|        ec = {};
   66|   717k|        return result;
   67|   717k|    }
   68|   717k|    catch(std::length_error const&)
   69|   717k|    {
   70|      0|        BOOST_BEAST_ASSIGN_EC(ec, ev);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   71|      0|    }
   72|      0|    return boost::none;
   73|       |
   74|       |#else
   75|       |    return dynamic_buffer_prepare_noexcept(
   76|       |        buffer, size, ec, ev);
   77|       |#endif
   78|   717k|}

_ZNK5boost5beast6detail17buffer_bytes_implclENS_4asio12const_bufferE:
   53|  2.67M|    {
   54|  2.67M|        return net::const_buffer(b).size();
   55|  2.67M|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS1_12buffers_pairILb1EEEvEEmRKT_:
   69|  1.00M|    {
   70|  1.00M|        using net::buffer_size;
   71|  1.00M|        return buffer_size(b);
   72|  1.00M|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS1_11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS4_INS7_IJNS_4asio12const_bufferES9_S9_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSA_10chunk_crlfEEEEEES9_EEEEEEEEEvEEmRKT_:
   69|  10.2k|    {
   70|  10.2k|        using net::buffer_size;
   71|  10.2k|        return buffer_size(b);
   72|  10.2k|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS1_11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS4_INS0_16buffers_cat_viewIJNS_4asio12const_bufferES9_S9_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSA_10chunk_crlfEEEEEEEEEEEEvEEmRKT_:
   69|     22|    {
   70|     22|        using net::buffer_size;
   71|     22|        return buffer_size(b);
   72|     22|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS0_14buffers_suffixINS0_16buffers_cat_viewIJNS1_11buffers_refINS5_IJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEEEvEEmRKT_:
   69|  10.2k|    {
   70|  10.2k|        using net::buffer_size;
   71|  10.2k|        return buffer_size(b);
   72|  10.2k|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEvEEmRKT_:
   69|     22|    {
   70|     22|        using net::buffer_size;
   71|     22|        return buffer_size(b);
   72|     22|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS0_14buffers_suffixINS1_12buffers_pairILb0EEEEEvEEmRKT_:
   69|  3.46M|    {
   70|  3.46M|        using net::buffer_size;
   71|  3.46M|        return buffer_size(b);
   72|  3.46M|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEvEEmRKT_:
   69|  1.67M|    {
   70|  1.67M|        using net::buffer_size;
   71|  1.67M|        return buffer_size(b);
   72|  1.67M|    }
_ZNK5boost5beast6detail17buffer_bytes_implclENS_4asio14mutable_bufferE:
   59|  66.5M|    {
   60|  66.5M|        return net::mutable_buffer(b).size();
   61|  66.5M|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEvEEmRKT_:
   69|  5.86k|    {
   70|  5.86k|        using net::buffer_size;
   71|  5.86k|        return buffer_size(b);
   72|  5.86k|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS0_14buffers_suffixINS_4asio14mutable_bufferEEEvEEmRKT_:
   69|  65.3M|    {
   70|  65.3M|        using net::buffer_size;
   71|  65.3M|        return buffer_size(b);
   72|  65.3M|    }
_ZNK5boost5beast6detail17buffer_bytes_implclINS_4asio6detail16prepared_buffersINS4_12const_bufferELm64EEEvEEmRKT_:
   69|  30.5k|    {
   70|  30.5k|        using net::buffer_size;
   71|  30.5k|        return buffer_size(b);
   72|  30.5k|    }

_ZN5boost5beast6detail12buffers_pairILb1EEC2ENS_4asio14mutable_bufferES5_:
   85|  3.97M|        : b_{b0, b1}
   86|  3.97M|    {
   87|  3.97M|    }
_ZNK5boost5beast6detail12buffers_pairILb1EE5beginEv:
   91|  8.16M|    {
   92|  8.16M|        return &b_[0];
   93|  8.16M|    }
_ZNK5boost5beast6detail12buffers_pairILb1EE3endEv:
   97|  3.03M|    {
   98|  3.03M|        if(b_[1].size() > 0)
  ------------------
  |  Branch (98:12): [True: 133k, False: 2.89M]
  ------------------
   99|   133k|            return &b_[2];
  100|  2.89M|        return &b_[1];
  101|  3.03M|    }
_ZN5boost5beast6detail12buffers_pairILb0EEC2ILb0EvEERKNS2_ILb1EEE:
   67|   968k|        : buffers_pair(
   68|   968k|            *other.begin(), *(other.begin() + 1))
   69|   968k|    {
   70|   968k|    }
_ZN5boost5beast6detail12buffers_pairILb0EEC2ENS_4asio12const_bufferES5_:
   85|   968k|        : b_{b0, b1}
   86|   968k|    {
   87|   968k|    }
_ZNK5boost5beast6detail12buffers_pairILb0EE5beginEv:
   91|   968k|    {
   92|   968k|        return &b_[0];
   93|   968k|    }
_ZNK5boost5beast6detail12buffers_pairILb0EE3endEv:
   97|  7.33M|    {
   98|  7.33M|        if(b_[1].size() > 0)
  ------------------
  |  Branch (98:12): [True: 340k, False: 6.99M]
  ------------------
   99|   340k|            return &b_[2];
  100|  6.99M|        return &b_[1];
  101|  7.33M|    }

_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEEC2ES8_:
  112|   969k|        : b_(b)
  113|   969k|    {
  114|   969k|    }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEE5beginEv:
  118|   969k|    {
  119|   969k|        return {net::buffer_sequence_begin(b_)};
  120|   969k|    }
_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEE14const_iteratorC2ERKNS6_14const_iteratorE:
   43|  1.93M|            : it_(it)
   44|  1.93M|        {
   45|  1.93M|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEE3endEv:
  124|   969k|    {
  125|   969k|        return {net::buffer_sequence_end(b_)};
  126|   969k|    }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEE14const_iteratorneERKSA_:
   66|  1.94M|        {
   67|  1.94M|            return !(*this == other);
   68|  1.94M|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEE14const_iteratoreqERKSA_:
   60|  1.94M|        {
   61|  1.94M|            return it_ == other.it_;
   62|  1.94M|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEE14const_iteratordeEv:
   72|   971k|        {
   73|   971k|            return *it_;
   74|   971k|        }
_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS1_12buffers_pairILb1EEEEEE14const_iteratorppEv:
   81|   971k|        {
   82|   971k|            ++it_;
   83|   971k|            return *this;
   84|   971k|        }
_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEEC2ES8_:
  112|   248k|        : b_(b)
  113|   248k|    {
  114|   248k|    }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEE5beginEv:
  118|   248k|    {
  119|   248k|        return {net::buffer_sequence_begin(b_)};
  120|   248k|    }
_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEE14const_iteratorC2ERKPKS5_:
   43|   496k|            : it_(it)
   44|   496k|        {
   45|   496k|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEE3endEv:
  124|   248k|    {
  125|   248k|        return {net::buffer_sequence_end(b_)};
  126|   248k|    }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEE14const_iteratorneERKSA_:
   66|   495k|        {
   67|   495k|            return !(*this == other);
   68|   495k|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEE14const_iteratoreqERKSA_:
   60|   495k|        {
   61|   495k|            return it_ == other.it_;
   62|   495k|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEE14const_iteratordeEv:
   72|   248k|        {
   73|   248k|            return *it_;
   74|   248k|        }
_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEE14const_iteratorppEv:
   81|   247k|        {
   82|   247k|            ++it_;
   83|   247k|            return *this;
   84|   247k|        }
_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_14buffers_suffixINS_4asio14mutable_bufferEEEEC2ES8_:
  112|  13.3k|        : b_(b)
  113|  13.3k|    {
  114|  13.3k|    }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_14buffers_suffixINS_4asio14mutable_bufferEEEE5beginEv:
  118|  13.3k|    {
  119|  13.3k|        return {net::buffer_sequence_begin(b_)};
  120|  13.3k|    }
_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratorC2ERKNS6_14const_iteratorE:
   43|  26.6k|            : it_(it)
   44|  26.6k|        {
   45|  26.6k|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_14buffers_suffixINS_4asio14mutable_bufferEEEE3endEv:
  124|  13.3k|    {
  125|  13.3k|        return {net::buffer_sequence_end(b_)};
  126|  13.3k|    }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratorneERKSA_:
   66|  14.3k|        {
   67|  14.3k|            return !(*this == other);
   68|  14.3k|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratoreqERKSA_:
   60|  14.3k|        {
   61|  14.3k|            return it_ == other.it_;
   62|  14.3k|        }
_ZNK5boost5beast6detail21buffers_range_adaptorIRKNS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratordeEv:
   72|  12.5k|        {
   73|  12.5k|            return *it_;
   74|  12.5k|        }
_ZN5boost5beast6detail21buffers_range_adaptorIRKNS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratorppEv:
   81|    983|        {
   82|    983|            ++it_;
   83|    983|            return *this;
   84|    983|        }

_ZNK5boost5beast6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE5beginEv:
   45|  5.14k|    {
   46|  5.14k|        return net::buffer_sequence_begin(*buffers_);
   47|  5.14k|    }
_ZNK5boost5beast6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE3endEv:
   51|   261k|    {
   52|   261k|        return net::buffer_sequence_end(*buffers_);
   53|   261k|    }
_ZN5boost5beast6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEC2ERKSF_:
   39|  5.14k|        : buffers_(std::addressof(buffers))
   40|  5.14k|    {
   41|  5.14k|    }
_ZNK5boost5beast6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS2_INS5_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEEEE5beginEv:
   45|  15.4k|    {
   46|  15.4k|        return net::buffer_sequence_begin(*buffers_);
   47|  15.4k|    }
_ZNK5boost5beast6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS2_INS5_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEEEE3endEv:
   51|  15.4k|    {
   52|  15.4k|        return net::buffer_sequence_end(*buffers_);
   53|  15.4k|    }
_ZN5boost5beast6detail16make_buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS1_11buffers_refINS5_IJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEEEEEEENS6_IT_EERKSP_:
   60|  5.13k|{
   61|  5.13k|    static_assert(
   62|  5.13k|        is_const_buffer_sequence<BufferSequence>::value,
   63|  5.13k|        "BufferSequence type requirements not met");
   64|  5.13k|    return buffers_ref<BufferSequence>(buffers);
   65|  5.13k|}
_ZN5boost5beast6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS2_INS5_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEEEEC2ERKSN_:
   39|  5.13k|        : buffers_(std::addressof(buffers))
   40|  5.13k|    {
   41|  5.13k|    }
_ZNK5boost5beast6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS2_INS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEEEE5beginEv:
   45|     33|    {
   46|     33|        return net::buffer_sequence_begin(*buffers_);
   47|     33|    }
_ZNK5boost5beast6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS2_INS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEEEE3endEv:
   51|     33|    {
   52|     33|        return net::buffer_sequence_end(*buffers_);
   53|     33|    }
_ZN5boost5beast6detail16make_buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEEEENS5_IT_EERKSO_:
   60|     11|{
   61|     11|    static_assert(
   62|     11|        is_const_buffer_sequence<BufferSequence>::value,
   63|     11|        "BufferSequence type requirements not met");
   64|     11|    return buffers_ref<BufferSequence>(buffers);
   65|     11|}
_ZN5boost5beast6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS2_INS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEEEEC2ERKSM_:
   39|     11|        : buffers_(std::addressof(buffers))
   40|     11|    {
   41|     11|    }

_ZN5boost5beast6detail11char_bufferILm4096EE5clearEv:
   45|  1.47k|    {
   46|  1.47k|        size_ = 0;
   47|  1.47k|    }
_ZN5boost5beast6detail11char_bufferILm4096EE10try_appendEPKcS5_:
   35|  14.5k|    {
   36|  14.5k|        std::size_t const n = last - first;
   37|  14.5k|        if (n > N - size_)
  ------------------
  |  Branch (37:13): [True: 0, False: 14.5k]
  ------------------
   38|      0|            return false;
   39|  14.5k|        std::memmove(&buf_[size_], first, n);
   40|  14.5k|        size_ += n;
   41|  14.5k|        return true;
   42|  14.5k|    }
_ZNK5boost5beast6detail11char_bufferILm4096EE5emptyEv:
   65|  1.47k|    {
   66|  1.47k|        return size_ == 0;
   67|  1.47k|    }
_ZN5boost5beast6detail11char_bufferILm4096EE13try_push_backEc:
   27|  13.0k|    {
   28|  13.0k|        if (size_ == N)
  ------------------
  |  Branch (28:13): [True: 0, False: 13.0k]
  ------------------
   29|      0|            return false;
   30|  13.0k|        buf_[size_++] = c;
   31|  13.0k|        return true;
   32|  13.0k|    }
_ZN5boost5beast6detail11char_bufferILm4096EE4dataEv:
   50|  1.04k|    {
   51|  1.04k|        return buf_;
   52|  1.04k|    }
_ZNK5boost5beast6detail11char_bufferILm4096EE4sizeEv:
   60|  1.04k|    {
   61|  1.04k|        return size_;
   62|  1.04k|    }

_ZN5boost5beast6detail5clampImEEmT_m:
   33|  1.43M|{
   34|  1.43M|    if(x >= limit)
  ------------------
  |  Branch (34:8): [True: 4.84k, False: 1.43M]
  ------------------
   35|  4.84k|        return limit;
   36|  1.43M|    return static_cast<std::size_t>(x);
   37|  1.43M|}
_ZN5boost5beast6detail11sum_exceedsImmmEEbT_T0_T1_:
   45|  65.3M|{
   46|  65.3M|    static_assert(
   47|  65.3M|        std::is_unsigned<U1>::value &&
   48|  65.3M|        std::is_unsigned<U2>::value &&
   49|  65.3M|        std::is_unsigned<U3>::value, "");
   50|  65.3M|    return y > z || x > z - y;
  ------------------
  |  Branch (50:12): [True: 195, False: 65.3M]
  |  Branch (50:21): [True: 19, False: 65.3M]
  ------------------
   51|  65.3M|}
_ZN5boost5beast6detail5clampImEEmT_:
   24|  2.71M|{
   25|  2.71M|    if(x >= (std::numeric_limits<std::size_t>::max)())
  ------------------
  |  Branch (25:8): [True: 23, False: 2.71M]
  ------------------
   26|     23|        return (std::numeric_limits<std::size_t>::max)();
   27|  2.71M|    return static_cast<std::size_t>(x);
   28|  2.71M|}

_ZN5boost5beast6detail12service_baseINS0_4test6detail14stream_serviceEEC2ERNS_4asio17execution_contextE:
   26|  8.21k|        : net::execution_context::service(ctx)
   27|  8.21k|    {
   28|  8.21k|    }
_ZN5boost5beast6detail12service_baseINS0_9websocket6detail7serviceEEC2ERNS_4asio17execution_contextE:
   26|  8.21k|        : net::execution_context::service(ctx)
   27|  8.21k|    {
   28|  8.21k|    }

_ZN5boost5beast6detail4initERNS1_12sha1_contextE:
  222|  4.64k|{
  223|  4.64k|    ctx.buflen = 0;
  224|  4.64k|    ctx.blocks = 0;
  225|  4.64k|    ctx.digest[0] = 0x67452301;
  226|  4.64k|    ctx.digest[1] = 0xefcdab89;
  227|  4.64k|    ctx.digest[2] = 0x98badcfe;
  228|  4.64k|    ctx.digest[3] = 0x10325476;
  229|  4.64k|    ctx.digest[4] = 0xc3d2e1f0;
  230|  4.64k|}
_ZN5boost5beast6detail6updateERNS1_12sha1_contextEPKvm:
  237|  9.28k|{
  238|  9.28k|    auto p = static_cast<
  239|  9.28k|        std::uint8_t const*>(message);
  240|  9.28k|    for(;;)
  241|  9.28k|    {
  242|  9.28k|        auto const n = (std::min)(
  243|  9.28k|            size, sizeof(ctx.buf) - ctx.buflen);
  244|  9.28k|        std::memcpy(ctx.buf + ctx.buflen, p, n);
  245|  9.28k|        ctx.buflen += n;
  246|  9.28k|        if(ctx.buflen != 64)
  ------------------
  |  Branch (246:12): [True: 9.28k, False: 0]
  ------------------
  247|  9.28k|            return;
  248|      0|        p += n;
  249|      0|        size -= n;
  250|      0|        ctx.buflen = 0;
  251|      0|        std::uint32_t block[sha1::BLOCK_INTS];
  252|      0|        sha1::make_block(ctx.buf, block);
  253|      0|        sha1::transform(ctx.digest, block);
  254|      0|        ++ctx.blocks;
  255|      0|    }
  256|  9.28k|}
_ZN5boost5beast6detail4sha110make_blockEPKhPj:
  110|  4.64k|{
  111|  78.9k|    for(std::size_t i = 0; i < BLOCK_INTS; i++)
  ------------------
  |  Branch (111:28): [True: 74.2k, False: 4.64k]
  ------------------
  112|  74.2k|        block[i] =
  113|  74.2k|            (static_cast<std::uint32_t>(p[4*i+3]))     |
  114|  74.2k|            (static_cast<std::uint32_t>(p[4*i+2]))<< 8 |
  115|  74.2k|            (static_cast<std::uint32_t>(p[4*i+1]))<<16 |
  116|  74.2k|            (static_cast<std::uint32_t>(p[4*i+0]))<<24;
  117|  4.64k|}
_ZN5boost5beast6detail4sha19transformEPjS3_:
  123|  4.74k|{
  124|  4.74k|    std::uint32_t a = digest[0];
  125|  4.74k|    std::uint32_t b = digest[1];
  126|  4.74k|    std::uint32_t c = digest[2];
  127|  4.74k|    std::uint32_t d = digest[3];
  128|  4.74k|    std::uint32_t e = digest[4];
  129|       |
  130|  4.74k|    R0(block, a, b, c, d, e,  0);
  131|  4.74k|    R0(block, e, a, b, c, d,  1);
  132|  4.74k|    R0(block, d, e, a, b, c,  2);
  133|  4.74k|    R0(block, c, d, e, a, b,  3);
  134|  4.74k|    R0(block, b, c, d, e, a,  4);
  135|  4.74k|    R0(block, a, b, c, d, e,  5);
  136|  4.74k|    R0(block, e, a, b, c, d,  6);
  137|  4.74k|    R0(block, d, e, a, b, c,  7);
  138|  4.74k|    R0(block, c, d, e, a, b,  8);
  139|  4.74k|    R0(block, b, c, d, e, a,  9);
  140|  4.74k|    R0(block, a, b, c, d, e, 10);
  141|  4.74k|    R0(block, e, a, b, c, d, 11);
  142|  4.74k|    R0(block, d, e, a, b, c, 12);
  143|  4.74k|    R0(block, c, d, e, a, b, 13);
  144|  4.74k|    R0(block, b, c, d, e, a, 14);
  145|  4.74k|    R0(block, a, b, c, d, e, 15);
  146|  4.74k|    R1(block, e, a, b, c, d,  0);
  147|  4.74k|    R1(block, d, e, a, b, c,  1);
  148|  4.74k|    R1(block, c, d, e, a, b,  2);
  149|  4.74k|    R1(block, b, c, d, e, a,  3);
  150|  4.74k|    R2(block, a, b, c, d, e,  4);
  151|  4.74k|    R2(block, e, a, b, c, d,  5);
  152|  4.74k|    R2(block, d, e, a, b, c,  6);
  153|  4.74k|    R2(block, c, d, e, a, b,  7);
  154|  4.74k|    R2(block, b, c, d, e, a,  8);
  155|  4.74k|    R2(block, a, b, c, d, e,  9);
  156|  4.74k|    R2(block, e, a, b, c, d, 10);
  157|  4.74k|    R2(block, d, e, a, b, c, 11);
  158|  4.74k|    R2(block, c, d, e, a, b, 12);
  159|  4.74k|    R2(block, b, c, d, e, a, 13);
  160|  4.74k|    R2(block, a, b, c, d, e, 14);
  161|  4.74k|    R2(block, e, a, b, c, d, 15);
  162|  4.74k|    R2(block, d, e, a, b, c,  0);
  163|  4.74k|    R2(block, c, d, e, a, b,  1);
  164|  4.74k|    R2(block, b, c, d, e, a,  2);
  165|  4.74k|    R2(block, a, b, c, d, e,  3);
  166|  4.74k|    R2(block, e, a, b, c, d,  4);
  167|  4.74k|    R2(block, d, e, a, b, c,  5);
  168|  4.74k|    R2(block, c, d, e, a, b,  6);
  169|  4.74k|    R2(block, b, c, d, e, a,  7);
  170|  4.74k|    R3(block, a, b, c, d, e,  8);
  171|  4.74k|    R3(block, e, a, b, c, d,  9);
  172|  4.74k|    R3(block, d, e, a, b, c, 10);
  173|  4.74k|    R3(block, c, d, e, a, b, 11);
  174|  4.74k|    R3(block, b, c, d, e, a, 12);
  175|  4.74k|    R3(block, a, b, c, d, e, 13);
  176|  4.74k|    R3(block, e, a, b, c, d, 14);
  177|  4.74k|    R3(block, d, e, a, b, c, 15);
  178|  4.74k|    R3(block, c, d, e, a, b,  0);
  179|  4.74k|    R3(block, b, c, d, e, a,  1);
  180|  4.74k|    R3(block, a, b, c, d, e,  2);
  181|  4.74k|    R3(block, e, a, b, c, d,  3);
  182|  4.74k|    R3(block, d, e, a, b, c,  4);
  183|  4.74k|    R3(block, c, d, e, a, b,  5);
  184|  4.74k|    R3(block, b, c, d, e, a,  6);
  185|  4.74k|    R3(block, a, b, c, d, e,  7);
  186|  4.74k|    R3(block, e, a, b, c, d,  8);
  187|  4.74k|    R3(block, d, e, a, b, c,  9);
  188|  4.74k|    R3(block, c, d, e, a, b, 10);
  189|  4.74k|    R3(block, b, c, d, e, a, 11);
  190|  4.74k|    R4(block, a, b, c, d, e, 12);
  191|  4.74k|    R4(block, e, a, b, c, d, 13);
  192|  4.74k|    R4(block, d, e, a, b, c, 14);
  193|  4.74k|    R4(block, c, d, e, a, b, 15);
  194|  4.74k|    R4(block, b, c, d, e, a,  0);
  195|  4.74k|    R4(block, a, b, c, d, e,  1);
  196|  4.74k|    R4(block, e, a, b, c, d,  2);
  197|  4.74k|    R4(block, d, e, a, b, c,  3);
  198|  4.74k|    R4(block, c, d, e, a, b,  4);
  199|  4.74k|    R4(block, b, c, d, e, a,  5);
  200|  4.74k|    R4(block, a, b, c, d, e,  6);
  201|  4.74k|    R4(block, e, a, b, c, d,  7);
  202|  4.74k|    R4(block, d, e, a, b, c,  8);
  203|  4.74k|    R4(block, c, d, e, a, b,  9);
  204|  4.74k|    R4(block, b, c, d, e, a, 10);
  205|  4.74k|    R4(block, a, b, c, d, e, 11);
  206|  4.74k|    R4(block, e, a, b, c, d, 12);
  207|  4.74k|    R4(block, d, e, a, b, c, 13);
  208|  4.74k|    R4(block, c, d, e, a, b, 14);
  209|  4.74k|    R4(block, b, c, d, e, a, 15);
  210|       |
  211|  4.74k|    digest[0] += a;
  212|  4.74k|    digest[1] += b;
  213|  4.74k|    digest[2] += c;
  214|  4.74k|    digest[3] += d;
  215|  4.74k|    digest[4] += e;
  216|  4.74k|}
_ZN5boost5beast6detail4sha12R0EPjjRjjjS4_m:
   56|  75.8k|{
   57|  75.8k|    z += ((w&(x^y))^y) + block[i] + 0x5a827999 + rol(v, 5);
   58|  75.8k|    w = rol(w, 30);
   59|  75.8k|}
_ZN5boost5beast6detail4sha13rolEjm:
   38|  1.06M|{
   39|  1.06M|    return (value << bits) | (value >> (32 - bits));
   40|  1.06M|}
_ZN5boost5beast6detail4sha12R1EPjjRjjjS4_m:
   67|  18.9k|{
   68|  18.9k|    block[i] = blk(block, i);
   69|  18.9k|    z += ((w&(x^y))^y) + block[i] + 0x5a827999 + rol(v, 5);
   70|  18.9k|    w = rol(w, 30);
   71|  18.9k|}
_ZN5boost5beast6detail4sha13blkEPjm:
   45|   303k|{
   46|   303k|    return rol(
   47|   303k|        block[(i+13)&15] ^ block[(i+8)&15] ^
   48|   303k|        block[(i+2)&15]  ^ block[i], 1);
   49|   303k|}
_ZN5boost5beast6detail4sha12R2EPjjRjjjS4_m:
   78|  94.8k|{
   79|  94.8k|    block[i] = blk(block, i);
   80|  94.8k|    z += (w^x^y) + block[i] + 0x6ed9eba1 + rol(v, 5);
   81|  94.8k|    w = rol(w, 30);
   82|  94.8k|}
_ZN5boost5beast6detail4sha12R3EPjjRjjjS4_m:
   89|  94.8k|{
   90|  94.8k|    block[i] = blk(block, i);
   91|  94.8k|    z += (((w|x)&y)|(w&x)) + block[i] + 0x8f1bbcdc + rol(v, 5);
   92|  94.8k|    w = rol(w, 30);
   93|  94.8k|}
_ZN5boost5beast6detail4sha12R4EPjjRjjjS4_m:
  100|  94.8k|{
  101|  94.8k|    block[i] = blk(block, i);
  102|  94.8k|    z += (w^x^y) + block[i] + 0xca62c1d6 + rol(v, 5);
  103|  94.8k|    w = rol(w, 30);
  104|  94.8k|}
_ZN5boost5beast6detail6finishERNS1_12sha1_contextEPv:
  262|  4.64k|{
  263|  4.64k|    using sha1::BLOCK_INTS;
  264|  4.64k|    using sha1::BLOCK_BYTES;
  265|       |
  266|  4.64k|    std::uint64_t total_bits =
  267|  4.64k|        (ctx.blocks*64 + ctx.buflen) * 8;
  268|       |    // pad
  269|  4.64k|    ctx.buf[ctx.buflen++] = 0x80;
  270|  4.64k|    auto const buflen = ctx.buflen;
  271|   126k|    while(ctx.buflen < 64)
  ------------------
  |  Branch (271:11): [True: 122k, False: 4.64k]
  ------------------
  272|   122k|        ctx.buf[ctx.buflen++] = 0x00;
  273|  4.64k|    std::uint32_t block[BLOCK_INTS];
  274|  4.64k|    sha1::make_block(ctx.buf, block);
  275|  4.64k|    if(buflen > BLOCK_BYTES - 8)
  ------------------
  |  Branch (275:8): [True: 98, False: 4.54k]
  ------------------
  276|     98|    {
  277|     98|        sha1::transform(ctx.digest, block);
  278|  1.47k|        for(size_t i = 0; i < BLOCK_INTS - 2; i++)
  ------------------
  |  Branch (278:27): [True: 1.37k, False: 98]
  ------------------
  279|  1.37k|            block[i] = 0;
  280|     98|    }
  281|       |
  282|       |    /* Append total_bits, split this uint64_t into two uint32_t */
  283|  4.64k|    block[BLOCK_INTS - 1] = total_bits & 0xffffffff;
  284|  4.64k|    block[BLOCK_INTS - 2] = (total_bits >> 32);
  285|  4.64k|    sha1::transform(ctx.digest, block);
  286|  27.8k|    for(std::size_t i = 0; i < sha1::DIGEST_BYTES/4; i++)
  ------------------
  |  Branch (286:28): [True: 23.2k, False: 4.64k]
  ------------------
  287|  23.2k|    {
  288|  23.2k|        std::uint8_t* d =
  289|  23.2k|            static_cast<std::uint8_t*>(digest) + 4 * i;
  290|  23.2k|        d[3] =  ctx.digest[i]        & 0xff;
  291|  23.2k|        d[2] = (ctx.digest[i] >>  8) & 0xff;
  292|  23.2k|        d[1] = (ctx.digest[i] >> 16) & 0xff;
  293|  23.2k|        d[0] = (ctx.digest[i] >> 24) & 0xff;
  294|  23.2k|    }
  295|  4.64k|}

_ZN5boost5beast6detail13ascii_tolowerEc:
   36|  7.76M|{
   37|  7.76M|    return ((static_cast<unsigned>(c) - 65U) < 26) ?
  ------------------
  |  Branch (37:12): [True: 1.94M, False: 5.81M]
  ------------------
   38|  5.81M|        c + 'a' - 'A' : c;
   39|  7.76M|}
_ZN5boost5beast6detail15string_literalsli3_svEPKcm:
   27|  49.1k|{
   28|  49.1k|    return string_view{p, n};
   29|  49.1k|}

_ZN5boost5beast6detail16temporary_bufferC2Ev:
   24|    502|    temporary_buffer() = default;
_ZN5boost5beast6detail16temporary_buffer10deallocateEPc:
   64|    502|    {
   65|    502|        if (data != buffer_)
  ------------------
  |  Branch (65:13): [True: 0, False: 502]
  ------------------
   66|      0|            delete[] data;
   67|    502|    }
_ZN5boost5beast6detail16temporary_bufferD2Ev:
   29|    502|    {
   30|    502|        deallocate(data_);
   31|    502|    }

_ZN5boost5beast6detail5tupleIJNS_4asio12const_bufferES4_S4_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS5_10chunk_crlfEEEC2IJRKS4_SH_SH_RKSC_RKSD_EEEDpOT_:
   73|  5.14k|      : tuple_impl<
   74|  5.14k|            boost::mp11::index_sequence_for<Ts...>, Ts...>{
   75|  5.14k|          std::forward<Us>(us)...}
   76|  5.14k|    {
   77|  5.14k|    }
_ZN5boost5beast6detail10tuple_implIJNS_4mp1116integer_sequenceImJLm0ELm1ELm2ELm3ELm4EEEENS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEC2IJRKS7_SK_SK_RKSF_RKSG_EEEDpOT_:
   61|  25.7k|        : tuple_element_impl<Is, Ts>(
   62|  25.7k|            std::forward<Us>(us))...
   63|  5.14k|    {
   64|  5.14k|    }
_ZN5boost5beast6detail18tuple_element_implILm0ENS_4asio12const_bufferEEC2ERKS4_:
   30|  5.14k|        : t(t_)
   31|  5.14k|    {
   32|  5.14k|    }
_ZN5boost5beast6detail18tuple_element_implILm1ENS_4asio12const_bufferEEC2ERKS4_:
   30|  10.2k|        : t(t_)
   31|  10.2k|    {
   32|  10.2k|    }
_ZN5boost5beast6detail18tuple_element_implILm2ENS_4asio12const_bufferEEC2ERKS4_:
   30|  5.14k|        : t(t_)
   31|  5.14k|    {
   32|  5.14k|    }
_ZN5boost5beast6detail18tuple_element_implILm3ENS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeEEC2ERKSA_:
   30|  5.14k|        : t(t_)
   31|  5.14k|    {
   32|  5.14k|    }
_ZN5boost5beast6detail18tuple_element_implILm4ENS0_4http10chunk_crlfEEC2ERKS4_:
   30|  5.14k|        : t(t_)
   31|  5.14k|    {
   32|  5.14k|    }
_ZN5boost5beast6detail5tupleIJNS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEC2IJRKSH_RKS6_EEEDpOT_:
   73|  5.13k|      : tuple_impl<
   74|  5.13k|            boost::mp11::index_sequence_for<Ts...>, Ts...>{
   75|  5.13k|          std::forward<Us>(us)...}
   76|  5.13k|    {
   77|  5.13k|    }
_ZN5boost5beast6detail10tuple_implIJNS_4mp1116integer_sequenceImJLm0ELm1EEEENS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES9_S9_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSA_10chunk_crlfEEEEEES9_EEC2IJRKSK_RKS9_EEEDpOT_:
   61|  10.2k|        : tuple_element_impl<Is, Ts>(
   62|  10.2k|            std::forward<Us>(us))...
   63|  5.13k|    {
   64|  5.13k|    }
_ZN5boost5beast6detail18tuple_element_implILm0ENS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEEC2ERKSH_:
   30|  5.13k|        : t(t_)
   31|  5.13k|    {
   32|  5.13k|    }
_ZN5boost5beast6detail3getILm0ENS_4asio12const_bufferEEERKT0_RKNS1_18tuple_element_implIXT_ES5_EE:
   90|  41.1k|{
   91|  41.1k|    return te.t;
   92|  41.1k|}
_ZN5boost5beast6detail3getILm1ENS_4asio12const_bufferEEERKT0_RKNS1_18tuple_element_implIXT_ES5_EE:
   90|   185k|{
   91|   185k|    return te.t;
   92|   185k|}
_ZN5boost5beast6detail3getILm2ENS_4asio12const_bufferEEERKT0_RKNS1_18tuple_element_implIXT_ES5_EE:
   90|  92.6k|{
   91|  92.6k|    return te.t;
   92|  92.6k|}
_ZN5boost5beast6detail3getILm3ENS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeEEERKT0_RKNS1_18tuple_element_implIXT_ESB_EE:
   90|   194k|{
   91|   194k|    return te.t;
   92|   194k|}
_ZN5boost5beast6detail3getILm4ENS0_4http10chunk_crlfEEERKT0_RKNS1_18tuple_element_implIXT_ES5_EE:
   90|  92.6k|{
   91|  92.6k|    return te.t;
   92|  92.6k|}
_ZN5boost5beast6detail3getILm0ENS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEEERKT0_RKNS1_18tuple_element_implIXT_ESI_EE:
   90|   266k|{
   91|   266k|    return te.t;
   92|   266k|}
_ZN5boost5beast6detail3getILm0ENS_4asio14mutable_bufferEEERKT0_RKNS1_18tuple_element_implIXT_ES5_EE:
   90|   168k|{
   91|   168k|    return te.t;
   92|   168k|}
_ZN5boost5beast6detail3getILm1ENS_4asio14mutable_bufferEEERKT0_RKNS1_18tuple_element_implIXT_ES5_EE:
   90|   119k|{
   91|   119k|    return te.t;
   92|   119k|}
_ZN5boost5beast6detail5tupleIJNS_4asio14mutable_bufferES4_EEC2IJRKS4_S8_EEEDpOT_:
   73|  13.3k|      : tuple_impl<
   74|  13.3k|            boost::mp11::index_sequence_for<Ts...>, Ts...>{
   75|  13.3k|          std::forward<Us>(us)...}
   76|  13.3k|    {
   77|  13.3k|    }
_ZN5boost5beast6detail10tuple_implIJNS_4mp1116integer_sequenceImJLm0ELm1EEEENS_4asio14mutable_bufferES7_EEC2IJRKS7_SB_EEEDpOT_:
   61|  26.6k|        : tuple_element_impl<Is, Ts>(
   62|  26.6k|            std::forward<Us>(us))...
   63|  13.3k|    {
   64|  13.3k|    }
_ZN5boost5beast6detail18tuple_element_implILm0ENS_4asio14mutable_bufferEEC2ERKS4_:
   30|  15.2k|        : t(t_)
   31|  15.2k|    {
   32|  15.2k|    }
_ZN5boost5beast6detail18tuple_element_implILm1ENS_4asio14mutable_bufferEEC2ERKS4_:
   30|  13.3k|        : t(t_)
   31|  13.3k|    {
   32|  13.3k|    }
_ZN5boost5beast6detail3getILm1ENS0_19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEEEEERKT0_RKNS1_18tuple_element_implIXT_ES9_EE:
   90|  17.6k|{
   91|  17.6k|    return te.t;
   92|  17.6k|}
_ZN5boost5beast6detail5tupleIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEEEEEC2IJRKS4_RKS8_EEEDpOT_:
   73|  1.96k|      : tuple_impl<
   74|  1.96k|            boost::mp11::index_sequence_for<Ts...>, Ts...>{
   75|  1.96k|          std::forward<Us>(us)...}
   76|  1.96k|    {
   77|  1.96k|    }
_ZN5boost5beast6detail10tuple_implIJNS_4mp1116integer_sequenceImJLm0ELm1EEEENS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS7_EEEEEEC2IJRKS7_RKSB_EEEDpOT_:
   61|  3.92k|        : tuple_element_impl<Is, Ts>(
   62|  3.92k|            std::forward<Us>(us))...
   63|  1.96k|    {
   64|  1.96k|    }
_ZN5boost5beast6detail18tuple_element_implILm1ENS0_19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEEEEC2ERKS8_:
   30|  1.96k|        : t(t_)
   31|  1.96k|    {
   32|  1.96k|    }

websocket_server.cpp:_ZN5boost5beast6detail12launder_castIPZ22LLVMFuzzerTestOneInputE3$_0NS_6detail15aligned_storage19aligned_storage_impILm40ELm8EEEEET_PT0_:
   81|  21.5k|{
   82|  21.5k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  21.5k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  21.5k|}
_ZN5boost5beast6detail12launder_castIPNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS_6detail15aligned_storage19aligned_storage_impILm160ELm8EEEEET_PT0_:
   81|     55|{
   82|     55|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|     55|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|     55|}
_ZN5boost5beast6detail12launder_castIPPKNS_4asio12const_bufferENS_6detail15aligned_storage19aligned_storage_impILm8ELm8EEEEET_PT0_:
   81|   607k|{
   82|   607k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|   607k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|   607k|}
_ZN5boost5beast6detail12launder_castIPNS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorENS_6detail15aligned_storage19aligned_storage_impILm8ELm8EEEEET_PT0_:
   81|   416k|{
   82|   416k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|   416k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|   416k|}
_ZN5boost5beast6detail12launder_castIPNS1_30buffers_cat_view_iterator_base8past_endENS_6detail15aligned_storage19aligned_storage_impILm8ELm8EEEEET_PT0_:
   81|   372k|{
   82|   372k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|   372k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|   372k|}
_ZN5boost5beast6detail12launder_castIPNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS1_11buffers_refINS4_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEENS_6detail15aligned_storage19aligned_storage_impILm160ELm8EEEEET_PT0_:
   81|  25.6k|{
   82|  25.6k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  25.6k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  25.6k|}
_ZN5boost5beast6detail12launder_castIPNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorENS_6detail15aligned_storage19aligned_storage_impILm24ELm8EEEEET_PT0_:
   81|   770k|{
   82|   770k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|   770k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|   770k|}
_ZN5boost5beast6detail12launder_castIPPKNS_4asio12const_bufferENS_6detail15aligned_storage19aligned_storage_impILm24ELm8EEEEET_PT0_:
   81|  69.4k|{
   82|  69.4k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  69.4k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  69.4k|}
_ZN5boost5beast6detail12launder_castIPNS1_30buffers_cat_view_iterator_base8past_endENS_6detail15aligned_storage19aligned_storage_impILm24ELm8EEEEET_PT0_:
   81|  97.5k|{
   82|  97.5k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  97.5k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  97.5k|}
_ZN5boost5beast6detail12launder_castIPKPKNS_4asio12const_bufferEKNS_6detail15aligned_storage19aligned_storage_impILm8ELm8EEEEET_PT0_:
   81|   529k|{
   82|   529k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|   529k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|   529k|}
_ZN5boost5beast6detail12launder_castIPKNS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorEKNS_6detail15aligned_storage19aligned_storage_impILm8ELm8EEEEET_PT0_:
   81|   421k|{
   82|   421k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|   421k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|   421k|}
_ZN5boost5beast6detail12launder_castIPKNS1_30buffers_cat_view_iterator_base8past_endEKNS_6detail15aligned_storage19aligned_storage_impILm8ELm8EEEEET_PT0_:
   81|   141k|{
   82|   141k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|   141k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|   141k|}
_ZN5boost5beast6detail12launder_castIPNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS_6detail15aligned_storage19aligned_storage_impILm72ELm8EEEEET_PT0_:
   81|     22|{
   82|     22|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|     22|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|     22|}
_ZN5boost5beast6detail12launder_castIPNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS1_11buffers_refINS5_IJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEES8_EEEEEEENS_6detail15aligned_storage19aligned_storage_impILm72ELm8EEEEET_PT0_:
   81|  10.2k|{
   82|  10.2k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  10.2k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  10.2k|}
_ZN5boost5beast6detail12launder_castIPKNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEKNS_6detail15aligned_storage19aligned_storage_impILm24ELm8EEEEET_PT0_:
   81|  1.31M|{
   82|  1.31M|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  1.31M|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  1.31M|}
_ZN5boost5beast6detail12launder_castIPKPKNS_4asio12const_bufferEKNS_6detail15aligned_storage19aligned_storage_impILm24ELm8EEEEET_PT0_:
   81|  6.38k|{
   82|  6.38k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  6.38k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  6.38k|}
_ZN5boost5beast6detail12launder_castIPKNS1_30buffers_cat_view_iterator_base8past_endEKNS_6detail15aligned_storage19aligned_storage_impILm24ELm8EEEEET_PT0_:
   81|  97.5k|{
   82|  97.5k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  97.5k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  97.5k|}
_ZN5boost5beast6detail12launder_castIPKPKNS_4asio14mutable_bufferEKNS_6detail15aligned_storage19aligned_storage_impILm8ELm8EEEEET_PT0_:
   81|  93.3k|{
   82|  93.3k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  93.3k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  93.3k|}
_ZN5boost5beast6detail12launder_castIPPKNS_4asio14mutable_bufferENS_6detail15aligned_storage19aligned_storage_impILm8ELm8EEEEET_PT0_:
   81|   359k|{
   82|   359k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|   359k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|   359k|}
_ZN5boost5beast6detail12launder_castIPKPKNS_4asio14mutable_bufferEKNS_6detail15aligned_storage19aligned_storage_impILm32ELm8EEEEET_PT0_:
   81|  7.84k|{
   82|  7.84k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  7.84k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  7.84k|}
_ZN5boost5beast6detail12launder_castIPKNS0_19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratorEKNS_6detail15aligned_storage19aligned_storage_impILm32ELm8EEEEET_PT0_:
   81|  5.87k|{
   82|  5.87k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  5.87k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  5.87k|}
_ZN5boost5beast6detail12launder_castIPKNS1_30buffers_cat_view_iterator_base8past_endEKNS_6detail15aligned_storage19aligned_storage_impILm32ELm8EEEEET_PT0_:
   81|  11.7k|{
   82|  11.7k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  11.7k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  11.7k|}
_ZN5boost5beast6detail12launder_castIPPKNS_4asio14mutable_bufferENS_6detail15aligned_storage19aligned_storage_impILm32ELm8EEEEET_PT0_:
   81|  29.4k|{
   82|  29.4k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  29.4k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  29.4k|}
_ZN5boost5beast6detail12launder_castIPNS0_19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratorENS_6detail15aligned_storage19aligned_storage_impILm32ELm8EEEEET_PT0_:
   81|  23.5k|{
   82|  23.5k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  23.5k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  23.5k|}
_ZN5boost5beast6detail12launder_castIPNS1_30buffers_cat_view_iterator_base8past_endENS_6detail15aligned_storage19aligned_storage_impILm32ELm8EEEEET_PT0_:
   81|  11.7k|{
   82|  11.7k|#if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606
   83|  11.7k|    return std::launder(reinterpret_cast<T>(u));
   84|       |#elif defined(BOOST_GCC) && BOOST_GCC_VERSION > 80000
   85|       |    return __builtin_launder(reinterpret_cast<T>(u));
   86|       |#else
   87|       |    return reinterpret_cast<T>(u);
   88|       |#endif
   89|  11.7k|}

_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEEC2Ev:
  139|  5.14k|    variant() = default;
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEEC2Ev:
  139|  5.14k|    variant() = default;
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE7emplaceILm2EJRKNS_11optional_ns15in_place_init_tESI_RS7_EEEvDpOT0_:
  199|  5.13k|    {
  200|  5.13k|        destruct();
  201|  5.13k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  5.13k|            std::forward<Args>(args)...);
  203|  5.13k|        i_ = I;
  204|  5.13k|    }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE8destructEv:
  116|  15.4k|    {
  117|  15.4k|        mp11::mp_with_index<
  118|  15.4k|            sizeof...(TN) + 1>(
  119|  15.4k|                i_, destroy{*this});
  120|  15.4k|        i_ = 0;
  121|  15.4k|    }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE7destroyclENSA_17integral_constantImLm0EEE:
   40|  10.2k|        {
   41|  10.2k|        }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE7destroyclINSA_17integral_constantImLm1EEEEEvT_:
   45|     11|        {
   46|     11|            using T =
   47|     11|                mp11::mp_at_c<variant, I::value - 1>;
   48|     11|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|     11|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEED2Ev:
  142|   519k|    {
  143|   519k|        destruct();
  144|   519k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE8destructEv:
  116|   940k|    {
  117|   940k|        mp11::mp_with_index<
  118|   940k|            sizeof...(TN) + 1>(
  119|   940k|                i_, destroy{*this});
  120|   940k|        i_ = 0;
  121|   940k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclENS9_17integral_constantImLm0EEE:
   40|   266k|        {
   41|   266k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS9_17integral_constantImLm1EEEEEvT_:
   45|   108k|        {
   46|   108k|            using T =
   47|   108k|                mp11::mp_at_c<variant, I::value - 1>;
   48|   108k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|   108k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS9_17integral_constantImLm2EEEEEvT_:
   45|  51.4k|        {
   46|  51.4k|            using T =
   47|  51.4k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  51.4k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  51.4k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS9_17integral_constantImLm3EEEEEvT_:
   45|  51.4k|        {
   46|  51.4k|            using T =
   47|  51.4k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  51.4k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  51.4k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS9_17integral_constantImLm4EEEEEvT_:
   45|   119k|        {
   46|   119k|            using T =
   47|   119k|                mp11::mp_at_c<variant, I::value - 1>;
   48|   119k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|   119k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS9_17integral_constantImLm5EEEEEvT_:
   45|  51.4k|        {
   46|  51.4k|            using T =
   47|  51.4k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  51.4k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  51.4k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS9_17integral_constantImLm6EEEEEvT_:
   45|   292k|        {
   46|   292k|            using T =
   47|   292k|                mp11::mp_at_c<variant, I::value - 1>;
   48|   292k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|   292k|        }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE7destroyclINSA_17integral_constantImLm2EEEEEvT_:
   45|  5.13k|        {
   46|  5.13k|            using T =
   47|  5.13k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  5.13k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  5.13k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEED2Ev:
  142|   321k|    {
  143|   321k|        destruct();
  144|   321k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE8destructEv:
  116|   414k|    {
  117|   414k|        mp11::mp_with_index<
  118|   414k|            sizeof...(TN) + 1>(
  119|   414k|                i_, destroy{*this});
  120|   414k|        i_ = 0;
  121|   414k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclENS8_17integral_constantImLm0EEE:
   40|  30.8k|        {
   41|  30.8k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS8_17integral_constantImLm1EEEEEvT_:
   45|   252k|        {
   46|   252k|            using T =
   47|   252k|                mp11::mp_at_c<variant, I::value - 1>;
   48|   252k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|   252k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS8_17integral_constantImLm2EEEEEvT_:
   45|  32.7k|        {
   46|  32.7k|            using T =
   47|  32.7k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  32.7k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  32.7k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINS8_17integral_constantImLm3EEEEEvT_:
   45|  97.5k|        {
   46|  97.5k|            using T =
   47|  97.5k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  97.5k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  97.5k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEEC2Ev:
  139|  30.8k|    variant() = default;
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm1EJSG_EEEvDpOT0_:
  199|  5.13k|    {
  200|  5.13k|        destruct();
  201|  5.13k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  5.13k|            std::forward<Args>(args)...);
  203|  5.13k|        i_ = I;
  204|  5.13k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEEC2ERKSH_:
  170|   253k|    {
  171|   253k|        copy_construct(other);
  172|   253k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE14copy_constructERKSH_:
  124|   253k|    {
  125|   253k|        mp11::mp_with_index<
  126|   253k|            sizeof...(TN) + 1>(
  127|   253k|                other.i_, copy{*this, other});
  128|   253k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS9_17integral_constantImLm1EEEEEvT_:
   63|   102k|        {
   64|   102k|            using T =
   65|   102k|                mp11::mp_at_c<variant, I::value - 1>;
   66|   102k|            ::new(&self.buf_) T(
   67|   102k|                *detail::launder_cast<T const*>(&other.buf_));
   68|   102k|            self.i_ = I::value;
   69|   102k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS9_17integral_constantImLm2EEEEEvT_:
   63|  20.5k|        {
   64|  20.5k|            using T =
   65|  20.5k|                mp11::mp_at_c<variant, I::value - 1>;
   66|  20.5k|            ::new(&self.buf_) T(
   67|  20.5k|                *detail::launder_cast<T const*>(&other.buf_));
   68|  20.5k|            self.i_ = I::value;
   69|  20.5k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS9_17integral_constantImLm3EEEEEvT_:
   63|  20.5k|        {
   64|  20.5k|            using T =
   65|  20.5k|                mp11::mp_at_c<variant, I::value - 1>;
   66|  20.5k|            ::new(&self.buf_) T(
   67|  20.5k|                *detail::launder_cast<T const*>(&other.buf_));
   68|  20.5k|            self.i_ = I::value;
   69|  20.5k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS9_17integral_constantImLm4EEEEEvT_:
   63|  88.7k|        {
   64|  88.7k|            using T =
   65|  88.7k|                mp11::mp_at_c<variant, I::value - 1>;
   66|  88.7k|            ::new(&self.buf_) T(
   67|  88.7k|                *detail::launder_cast<T const*>(&other.buf_));
   68|  88.7k|            self.i_ = I::value;
   69|  88.7k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS9_17integral_constantImLm5EEEEEvT_:
   63|  20.5k|        {
   64|  20.5k|            using T =
   65|  20.5k|                mp11::mp_at_c<variant, I::value - 1>;
   66|  20.5k|            ::new(&self.buf_) T(
   67|  20.5k|                *detail::launder_cast<T const*>(&other.buf_));
   68|  20.5k|            self.i_ = I::value;
   69|  20.5k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS9_17integral_constantImLm6EEEEEvT_:
   63|     99|        {
   64|     99|            using T =
   65|     99|                mp11::mp_at_c<variant, I::value - 1>;
   66|     99|            ::new(&self.buf_) T(
   67|     99|                *detail::launder_cast<T const*>(&other.buf_));
   68|     99|            self.i_ = I::value;
   69|     99|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEEC2Ev:
  139|   266k|    variant() = default;
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm1EJS6_EEEvDpOT0_:
  199|  5.14k|    {
  200|  5.14k|        destruct();
  201|  5.14k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  5.14k|            std::forward<Args>(args)...);
  203|  5.14k|        i_ = I;
  204|  5.14k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm1EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  66.8k|    {
  210|  66.8k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  66.8k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  66.8k|        return *detail::launder_cast<
  212|  66.8k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  66.8k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm2EJS6_EEEvDpOT0_:
  199|  30.8k|    {
  200|  30.8k|        destruct();
  201|  30.8k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  30.8k|            std::forward<Args>(args)...);
  203|  30.8k|        i_ = I;
  204|  30.8k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm2EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  92.6k|    {
  210|  92.6k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  92.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  92.6k|        return *detail::launder_cast<
  212|  92.6k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  92.6k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm3EJS6_EEEvDpOT0_:
  199|  30.8k|    {
  200|  30.8k|        destruct();
  201|  30.8k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  30.8k|            std::forward<Args>(args)...);
  203|  30.8k|        i_ = I;
  204|  30.8k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm3EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  92.6k|    {
  210|  92.6k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  92.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  92.6k|        return *detail::launder_cast<
  212|  92.6k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  92.6k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm4EJSE_EEEvDpOT0_:
  199|  30.8k|    {
  200|  30.8k|        destruct();
  201|  30.8k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  30.8k|            std::forward<Args>(args)...);
  203|  30.8k|        i_ = I;
  204|  30.8k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm4EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  209|   297k|    {
  210|   297k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|   297k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|   297k|        return *detail::launder_cast<
  212|   297k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|   297k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm5EJS6_EEEvDpOT0_:
  199|  30.8k|    {
  200|  30.8k|        destruct();
  201|  30.8k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  30.8k|            std::forward<Args>(args)...);
  203|  30.8k|        i_ = I;
  204|  30.8k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm5EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  92.6k|    {
  210|  92.6k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  92.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  92.6k|        return *detail::launder_cast<
  212|  92.6k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  92.6k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm6EJEEEvDpOT0_:
  199|   292k|    {
  200|   292k|        destruct();
  201|   292k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|   292k|            std::forward<Args>(args)...);
  203|   292k|        i_ = I;
  204|   292k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm1EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS8_17integral_constantImLm3EE5valueEEENSO_12mp_at_c_implISL_XmiT_Li1EEEEJvEE4type4typeEv:
  209|   517k|    {
  210|   517k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|   517k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|   517k|        return *detail::launder_cast<
  212|   517k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|   517k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEEeqERKSH_:
  148|   603k|    {
  149|   603k|        if(i_ != other.i_)
  ------------------
  |  Branch (149:12): [True: 531k, False: 72.0k]
  ------------------
  150|   531k|            return false;
  151|  72.0k|        return mp11::mp_with_index<
  152|  72.0k|            sizeof...(TN) + 1>(
  153|  72.0k|                i_, equals{*this, other});
  154|   603k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE6equalsclINS9_17integral_constantImLm1EEEEEbT_:
  105|  41.1k|        {
  106|  41.1k|            using T =
  107|  41.1k|                mp11::mp_at_c<variant, I::value - 1>;
  108|  41.1k|            return
  109|  41.1k|                *detail::launder_cast<T const*>(&self.buf_) ==
  110|  41.1k|                *detail::launder_cast<T const*>(&other.buf_);
  111|  41.1k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE6equalsclINS9_17integral_constantImLm6EEEEEbT_:
  105|  30.8k|        {
  106|  30.8k|            using T =
  107|  30.8k|                mp11::mp_at_c<variant, I::value - 1>;
  108|  30.8k|            return
  109|  30.8k|                *detail::launder_cast<T const*>(&self.buf_) ==
  110|  30.8k|                *detail::launder_cast<T const*>(&other.buf_);
  111|  30.8k|        }
_ZNK5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm1EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  51.4k|    {
  219|  51.4k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  51.4k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  51.4k|        return *detail::launder_cast<
  221|  51.4k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  51.4k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm2EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  77.1k|    {
  219|  77.1k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  77.1k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  77.1k|        return *detail::launder_cast<
  221|  77.1k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  77.1k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm3EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  77.1k|    {
  219|  77.1k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  77.1k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  77.1k|        return *detail::launder_cast<
  221|  77.1k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  77.1k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm4EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  218|   332k|    {
  219|   332k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|   332k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|   332k|        return *detail::launder_cast<
  221|   332k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|   332k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm5EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS9_17integral_constantImLm6EE5valueEEENSK_12mp_at_c_implISH_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  77.1k|    {
  219|  77.1k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  77.1k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  77.1k|        return *detail::launder_cast<
  221|  77.1k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  77.1k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEE5indexEv:
  159|   871k|    {
  160|   871k|        return i_;
  161|   871k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm2EJSI_EEEvDpOT0_:
  199|  30.8k|    {
  200|  30.8k|        destruct();
  201|  30.8k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  30.8k|            std::forward<Args>(args)...);
  203|  30.8k|        i_ = I;
  204|  30.8k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm2EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS8_17integral_constantImLm3EE5valueEEENSO_12mp_at_c_implISL_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  36.6k|    {
  210|  36.6k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  36.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  36.6k|        return *detail::launder_cast<
  212|  36.6k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  36.6k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm3EJEEEvDpOT0_:
  199|  51.3k|    {
  200|  51.3k|        destruct();
  201|  51.3k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  51.3k|            std::forward<Args>(args)...);
  203|  51.3k|        i_ = I;
  204|  51.3k|    }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEE7emplaceILm2EJRmRSP_EEEvDpOT0_:
  199|  5.13k|    {
  200|  5.13k|        destruct();
  201|  5.13k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  5.13k|            std::forward<Args>(args)...);
  203|  5.13k|        i_ = I;
  204|  5.13k|    }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEE8destructEv:
  116|  10.2k|    {
  117|  10.2k|        mp11::mp_with_index<
  118|  10.2k|            sizeof...(TN) + 1>(
  119|  10.2k|                i_, destroy{*this});
  120|  10.2k|        i_ = 0;
  121|  10.2k|    }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEE7destroyclENSB_17integral_constantImLm0EEE:
   40|  5.14k|        {
   41|  5.14k|        }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEE7destroyclINSB_17integral_constantImLm1EEEEEvT_:
   45|     11|        {
   46|     11|            using T =
   47|     11|                mp11::mp_at_c<variant, I::value - 1>;
   48|     11|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|     11|        }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEE7destroyclINSB_17integral_constantImLm2EEEEEvT_:
   45|  5.13k|        {
   46|  5.13k|            using T =
   47|  5.13k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  5.13k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  5.13k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEEC2ERKSL_:
  170|   290k|    {
  171|   290k|        copy_construct(other);
  172|   290k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE14copy_constructERKSL_:
  124|   295k|    {
  125|   295k|        mp11::mp_with_index<
  126|   295k|            sizeof...(TN) + 1>(
  127|   295k|                other.i_, copy{*this, other});
  128|   295k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS8_17integral_constantImLm1EEEEEvT_:
   63|   247k|        {
   64|   247k|            using T =
   65|   247k|                mp11::mp_at_c<variant, I::value - 1>;
   66|   247k|            ::new(&self.buf_) T(
   67|   247k|                *detail::launder_cast<T const*>(&other.buf_));
   68|   247k|            self.i_ = I::value;
   69|   247k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS8_17integral_constantImLm2EEEEEvT_:
   63|  1.96k|        {
   64|  1.96k|            using T =
   65|  1.96k|                mp11::mp_at_c<variant, I::value - 1>;
   66|  1.96k|            ::new(&self.buf_) T(
   67|  1.96k|                *detail::launder_cast<T const*>(&other.buf_));
   68|  1.96k|            self.i_ = I::value;
   69|  1.96k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINS8_17integral_constantImLm3EEEEEvT_:
   63|  46.2k|        {
   64|  46.2k|            using T =
   65|  46.2k|                mp11::mp_at_c<variant, I::value - 1>;
   66|  46.2k|            ::new(&self.buf_) T(
   67|  46.2k|                *detail::launder_cast<T const*>(&other.buf_));
   68|  46.2k|            self.i_ = I::value;
   69|  46.2k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEEaSERKSL_:
  186|  5.13k|    {
  187|  5.13k|        if(this != &other)
  ------------------
  |  Branch (187:12): [True: 5.13k, False: 0]
  ------------------
  188|  5.13k|        {
  189|  5.13k|            destruct();
  190|  5.13k|            copy_construct(other);
  191|       |
  192|  5.13k|        }
  193|  5.13k|        return *this;
  194|  5.13k|    }
_ZNK5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEEeqERKSL_:
  148|   630k|    {
  149|   630k|        if(i_ != other.i_)
  ------------------
  |  Branch (149:12): [True: 263k, False: 367k]
  ------------------
  150|   263k|            return false;
  151|   367k|        return mp11::mp_with_index<
  152|   367k|            sizeof...(TN) + 1>(
  153|   367k|                i_, equals{*this, other});
  154|   630k|    }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE6equalsclINS8_17integral_constantImLm1EEEEEbT_:
  105|   341k|        {
  106|   341k|            using T =
  107|   341k|                mp11::mp_at_c<variant, I::value - 1>;
  108|   341k|            return
  109|   341k|                *detail::launder_cast<T const*>(&self.buf_) ==
  110|   341k|                *detail::launder_cast<T const*>(&other.buf_);
  111|   341k|        }
_ZN5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE6equalsclINS8_17integral_constantImLm3EEEEEbT_:
  105|  25.6k|        {
  106|  25.6k|            using T =
  107|  25.6k|                mp11::mp_at_c<variant, I::value - 1>;
  108|  25.6k|            return
  109|  25.6k|                *detail::launder_cast<T const*>(&self.buf_) ==
  110|  25.6k|                *detail::launder_cast<T const*>(&other.buf_);
  111|  25.6k|        }
_ZNK5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE5indexEv:
  159|   647k|    {
  160|   647k|        return i_;
  161|   647k|    }
_ZNK5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm1EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS8_17integral_constantImLm3EE5valueEEENSO_12mp_at_c_implISL_XmiT_Li1EEEEJvEE4type4typeEv:
  218|   384k|    {
  219|   384k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|   384k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|   384k|        return *detail::launder_cast<
  221|   384k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|   384k|    }
_ZNK5boost5beast6detail7variantIJNS0_16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iteratorEPKS5_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm2EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNS8_17integral_constantImLm3EE5valueEEENSO_12mp_at_c_implISL_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  4.41k|    {
  219|  4.41k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  4.41k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  4.41k|        return *detail::launder_cast<
  221|  4.41k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  4.41k|    }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE3getILm2EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSA_17integral_constantImLm8EE5valueEEENS12_12mp_at_c_implISZ_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  20.5k|    {
  210|  20.5k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  20.5k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  20.5k|        return *detail::launder_cast<
  212|  20.5k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  20.5k|    }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEE3getILm2EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSB_17integral_constantImLm8EE5valueEEENS1R_12mp_at_c_implIS1O_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  5.13k|    {
  210|  5.13k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  5.13k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  5.13k|        return *detail::launder_cast<
  212|  5.13k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  5.13k|    }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE7emplaceILm1EJSI_EEEvDpOT0_:
  199|     11|    {
  200|     11|        destruct();
  201|     11|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|     11|            std::forward<Args>(args)...);
  203|     11|        i_ = I;
  204|     11|    }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEE7emplaceILm1EJRmRSK_EEEvDpOT0_:
  199|     11|    {
  200|     11|        destruct();
  201|     11|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|     11|            std::forward<Args>(args)...);
  203|     11|        i_ = I;
  204|     11|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES6_NS1_30buffers_cat_view_iterator_base8past_endEEEaSERKSH_:
  186|     11|    {
  187|     11|        if(this != &other)
  ------------------
  |  Branch (187:12): [True: 11, False: 0]
  ------------------
  188|     11|        {
  189|     11|            destruct();
  190|     11|            copy_construct(other);
  191|       |
  192|     11|        }
  193|     11|        return *this;
  194|     11|    }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE3getILm1EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSA_17integral_constantImLm8EE5valueEEENS12_12mp_at_c_implISZ_XmiT_Li1EEEEJvEE4type4typeEv:
  209|     44|    {
  210|     44|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|     44|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|     44|        return *detail::launder_cast<
  212|     44|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|     44|    }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEE3getILm1EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSB_17integral_constantImLm8EE5valueEEENS1R_12mp_at_c_implIS1O_XmiT_Li1EEEEJvEE4type4typeEv:
  209|     11|    {
  210|     11|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|     11|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|     11|        return *detail::launder_cast<
  212|     11|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|     11|    }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEE5resetEv:
  226|  5.13k|    {
  227|  5.13k|        destruct();
  228|  5.13k|    }
_ZN5boost5beast6detail7variantIJNS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEEEEEEEEENS3_IRKNS4_INS6_IJSJ_S8_EEEEEEENS3_IRKNS4_IS8_EEEENS3_IRKNS4_INS6_IJSJ_NS9_6detail10chunk_sizeES8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJSJ_SY_S8_SH_S8_SH_S8_S8_SH_EEEEEEENS3_IRKNS4_INS6_IJS8_S8_SH_EEEEEEEEED2Ev:
  142|  5.14k|    {
  143|  5.14k|        destruct();
  144|  5.14k|    }
_ZN5boost5beast6detail7variantIJNS0_14buffers_suffixINS1_11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEENS3_INS5_IJSI_S7_EEEEENS3_IS7_EENS3_INS5_IJSI_NS8_6detail10chunk_sizeES7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_EEEEENS3_INS5_IJSO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJSI_SO_S7_SG_S7_SG_S7_S7_SG_EEEEENS3_INS5_IJS7_S7_SG_EEEEEEED2Ev:
  142|  5.14k|    {
  143|  5.14k|        destruct();
  144|  5.14k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEEC2ERKS9_:
  170|  13.3k|    {
  171|  13.3k|        copy_construct(other);
  172|  13.3k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE14copy_constructERKS9_:
  124|  13.3k|    {
  125|  13.3k|        mp11::mp_with_index<
  126|  13.3k|            sizeof...(TN) + 1>(
  127|  13.3k|                other.i_, copy{*this, other});
  128|  13.3k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINSt3__117integral_constantImLm1EEEEEvT_:
   63|  13.3k|        {
   64|  13.3k|            using T =
   65|  13.3k|                mp11::mp_at_c<variant, I::value - 1>;
   66|  13.3k|            ::new(&self.buf_) T(
   67|  13.3k|                *detail::launder_cast<T const*>(&other.buf_));
   68|  13.3k|            self.i_ = I::value;
   69|  13.3k|        }
_ZNK5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEEeqERKS9_:
  148|   119k|    {
  149|   119k|        if(i_ != other.i_)
  ------------------
  |  Branch (149:12): [True: 79.9k, False: 39.9k]
  ------------------
  150|  79.9k|            return false;
  151|  39.9k|        return mp11::mp_with_index<
  152|  39.9k|            sizeof...(TN) + 1>(
  153|  39.9k|                i_, equals{*this, other});
  154|   119k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE6equalsclINSt3__117integral_constantImLm3EEEEEbT_:
  105|  39.9k|        {
  106|  39.9k|            using T =
  107|  39.9k|                mp11::mp_at_c<variant, I::value - 1>;
  108|  39.9k|            return
  109|  39.9k|                *detail::launder_cast<T const*>(&self.buf_) ==
  110|  39.9k|                *detail::launder_cast<T const*>(&other.buf_);
  111|  39.9k|        }
_ZNK5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm1EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSt3__117integral_constantImLm3EE5valueEEENSC_12mp_at_c_implIS9_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  39.9k|    {
  219|  39.9k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  39.9k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  39.9k|        return *detail::launder_cast<
  221|  39.9k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  39.9k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm2EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSt3__117integral_constantImLm3EE5valueEEENSC_12mp_at_c_implIS9_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  39.9k|    {
  219|  39.9k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  39.9k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  39.9k|        return *detail::launder_cast<
  221|  39.9k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  39.9k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE5indexEv:
  159|   159k|    {
  160|   159k|        return i_;
  161|   159k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm1EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSt3__117integral_constantImLm3EE5valueEEENSC_12mp_at_c_implIS9_XmiT_Li1EEEEJvEE4type4typeEv:
  209|   133k|    {
  210|   133k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|   133k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|   133k|        return *detail::launder_cast<
  212|   133k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|   133k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm2EJS6_EEEvDpOT0_:
  199|  39.9k|    {
  200|  39.9k|        destruct();
  201|  39.9k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  39.9k|            std::forward<Args>(args)...);
  203|  39.9k|        i_ = I;
  204|  39.9k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE8destructEv:
  116|   279k|    {
  117|   279k|        mp11::mp_with_index<
  118|   279k|            sizeof...(TN) + 1>(
  119|   279k|                i_, destroy{*this});
  120|   279k|        i_ = 0;
  121|   279k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclENSt3__117integral_constantImLm0EEE:
   40|  93.3k|        {
   41|  93.3k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINSt3__117integral_constantImLm1EEEEEvT_:
   45|  66.6k|        {
   46|  66.6k|            using T =
   47|  66.6k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  66.6k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  66.6k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINSt3__117integral_constantImLm2EEEEEvT_:
   45|  39.9k|        {
   46|  39.9k|            using T =
   47|  39.9k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  39.9k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  39.9k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINSt3__117integral_constantImLm3EEEEEvT_:
   45|  79.9k|        {
   46|  79.9k|            using T =
   47|  79.9k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  79.9k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  79.9k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE3getILm2EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSt3__117integral_constantImLm3EE5valueEEENSC_12mp_at_c_implIS9_XmiT_Li1EEEEJvEE4type4typeEv:
  209|   119k|    {
  210|   119k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|   119k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|   119k|        return *detail::launder_cast<
  212|   119k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|   119k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm3EJEEEvDpOT0_:
  199|  79.9k|    {
  200|  79.9k|        destruct();
  201|  79.9k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  79.9k|            std::forward<Args>(args)...);
  203|  79.9k|        i_ = I;
  204|  79.9k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEEC2Ev:
  139|  93.3k|    variant() = default;
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm1EJS6_EEEvDpOT0_:
  199|  53.3k|    {
  200|  53.3k|        destruct();
  201|  53.3k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  53.3k|            std::forward<Args>(args)...);
  203|  53.3k|        i_ = I;
  204|  53.3k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferES6_NS1_30buffers_cat_view_iterator_base8past_endEEED2Ev:
  142|   106k|    {
  143|   106k|        destruct();
  144|   106k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEEC2ERKSE_:
  170|  1.96k|    {
  171|  1.96k|        copy_construct(other);
  172|  1.96k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE14copy_constructERKSE_:
  124|  1.96k|    {
  125|  1.96k|        mp11::mp_with_index<
  126|  1.96k|            sizeof...(TN) + 1>(
  127|  1.96k|                other.i_, copy{*this, other});
  128|  1.96k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE4copyclINSt3__117integral_constantImLm1EEEEEvT_:
   63|  1.96k|        {
   64|  1.96k|            using T =
   65|  1.96k|                mp11::mp_at_c<variant, I::value - 1>;
   66|  1.96k|            ::new(&self.buf_) T(
   67|  1.96k|                *detail::launder_cast<T const*>(&other.buf_));
   68|  1.96k|            self.i_ = I::value;
   69|  1.96k|        }
_ZNK5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEEeqERKSE_:
  148|  17.6k|    {
  149|  17.6k|        if(i_ != other.i_)
  ------------------
  |  Branch (149:12): [True: 11.7k, False: 5.88k]
  ------------------
  150|  11.7k|            return false;
  151|  5.88k|        return mp11::mp_with_index<
  152|  5.88k|            sizeof...(TN) + 1>(
  153|  5.88k|                i_, equals{*this, other});
  154|  17.6k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE6equalsclINSt3__117integral_constantImLm3EEEEEbT_:
  105|  5.88k|        {
  106|  5.88k|            using T =
  107|  5.88k|                mp11::mp_at_c<variant, I::value - 1>;
  108|  5.88k|            return
  109|  5.88k|                *detail::launder_cast<T const*>(&self.buf_) ==
  110|  5.88k|                *detail::launder_cast<T const*>(&other.buf_);
  111|  5.88k|        }
_ZNK5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE3getILm1EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSt3__117integral_constantImLm3EE5valueEEENSH_12mp_at_c_implISE_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  5.88k|    {
  219|  5.88k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  5.88k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  5.88k|        return *detail::launder_cast<
  221|  5.88k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  5.88k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE3getILm2EEERKNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSt3__117integral_constantImLm3EE5valueEEENSH_12mp_at_c_implISE_XmiT_Li1EEEEJvEE4type4typeEv:
  218|  5.87k|    {
  219|  5.87k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  5.87k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  220|  5.87k|        return *detail::launder_cast<
  221|  5.87k|            mp11::mp_at_c<variant, I - 1> const*>(&buf_);
  222|  5.87k|    }
_ZNK5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE5indexEv:
  159|  23.5k|    {
  160|  23.5k|        return i_;
  161|  23.5k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE3getILm1EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSt3__117integral_constantImLm3EE5valueEEENSH_12mp_at_c_implISE_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  19.6k|    {
  210|  19.6k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  19.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  19.6k|        return *detail::launder_cast<
  212|  19.6k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  19.6k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm2EJSB_EEEvDpOT0_:
  199|  5.88k|    {
  200|  5.88k|        destruct();
  201|  5.88k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  5.88k|            std::forward<Args>(args)...);
  203|  5.88k|        i_ = I;
  204|  5.88k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE8destructEv:
  116|  41.1k|    {
  117|  41.1k|        mp11::mp_with_index<
  118|  41.1k|            sizeof...(TN) + 1>(
  119|  41.1k|                i_, destroy{*this});
  120|  41.1k|        i_ = 0;
  121|  41.1k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclENSt3__117integral_constantImLm0EEE:
   40|  13.7k|        {
   41|  13.7k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINSt3__117integral_constantImLm1EEEEEvT_:
   45|  9.80k|        {
   46|  9.80k|            using T =
   47|  9.80k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  9.80k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  9.80k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINSt3__117integral_constantImLm2EEEEEvT_:
   45|  5.88k|        {
   46|  5.88k|            using T =
   47|  5.88k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  5.88k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  5.88k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE7destroyclINSt3__117integral_constantImLm3EEEEEvT_:
   45|  11.7k|        {
   46|  11.7k|            using T =
   47|  11.7k|                mp11::mp_at_c<variant, I::value - 1>;
   48|  11.7k|            detail::launder_cast<T*>(&self.buf_)->~T();
   49|  11.7k|        }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE3getILm2EEERNS_4mp116detail12mp_if_c_implIXltmiT_Li1EL_ZNSt3__117integral_constantImLm3EE5valueEEENSH_12mp_at_c_implISE_XmiT_Li1EEEEJvEE4type4typeEv:
  209|  17.6k|    {
  210|  17.6k|        BOOST_ASSERT(i_ == I);
  ------------------
  |  |   66|  17.6k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  211|  17.6k|        return *detail::launder_cast<
  212|  17.6k|            mp11::mp_at_c<variant, I - 1>*>(&buf_);
  213|  17.6k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm3EJEEEvDpOT0_:
  199|  11.7k|    {
  200|  11.7k|        destruct();
  201|  11.7k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  11.7k|            std::forward<Args>(args)...);
  203|  11.7k|        i_ = I;
  204|  11.7k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEEC2Ev:
  139|  13.7k|    variant() = default;
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEE7emplaceILm1EJS6_EEEvDpOT0_:
  199|  7.84k|    {
  200|  7.84k|        destruct();
  201|  7.84k|        ::new(&buf_) mp11::mp_at_c<variant, I - 1>(
  202|  7.84k|            std::forward<Args>(args)...);
  203|  7.84k|        i_ = I;
  204|  7.84k|    }
_ZN5boost5beast6detail7variantIJPKNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS4_EEE14const_iteratorENS1_30buffers_cat_view_iterator_base8past_endEEED2Ev:
  142|  15.6k|    {
  143|  15.6k|        destruct();
  144|  15.6k|    }

_ZNK5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE8capacityEv:
  419|   106k|    {
  420|   106k|        return dist(begin_, end_);
  421|   106k|    }
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE4distEPKcS7_:
   87|  4.15M|    {
   88|  4.15M|        return static_cast<std::size_t>(last - first);
   89|  4.15M|    }
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE6commitEm:
  486|  1.06M|    {
  487|  1.06M|        out_ += (std::min)(n, dist(out_, last_));
  488|  1.06M|    }
_ZNK5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE4sizeEv:
  405|  1.85M|    {
  406|  1.85M|        return dist(in_, out_);
  407|  1.85M|    }
_ZNK5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE8max_sizeEv:
  412|   717k|    {
  413|   717k|        return max_;
  414|   717k|    }
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE4dataEv:
  440|  33.6k|    {
  441|  33.6k|        return {in_, dist(in_, out_)};
  442|  33.6k|    }

_ZN5boost5beast18flat_static_bufferILm139EEC2Ev:
  273|   329k|        : flat_static_buffer_base(buf_, N)
  274|   329k|    {
  275|   329k|    }
_ZN5boost5beast23flat_static_buffer_baseC2EPvm:
   75|   352k|    {
   76|   352k|        reset(p, n);
   77|   352k|    }
_ZN5boost5beast18flat_static_bufferILm14EEC2Ev:
  273|  23.5k|        : flat_static_buffer_base(buf_, N)
  274|  23.5k|    {
  275|  23.5k|    }
_ZN5boost5beast23flat_static_buffer_base4distEPKcS3_:
  241|   992k|    {
  242|   992k|        return static_cast<std::size_t>(last - first);
  243|   992k|    }
_ZN5boost5beast23flat_static_buffer_base6commitEm:
  186|   656k|    {
  187|   656k|        out_ += (std::min<std::size_t>)(n, last_ - out_);
  188|   656k|    }
_ZN5boost5beast23flat_static_buffer_base4dataEv:
  141|   336k|    {
  142|   336k|        return {in_, dist(in_, out_)};
  143|   336k|    }

_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEEC2ERKS3_SF_SF_RKSB_RKSC_:
  441|  5.14k|    : bn_(bn...)
  442|  5.14k|{
  443|  5.14k|}
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EEC2ERKSG_RKS5_:
  441|  5.13k|    : bn_(bn...)
  442|  5.13k|{
  443|  5.13k|}
_ZNK5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE5beginEv:
  450|  5.13k|{
  451|  5.13k|    return const_iterator{bn_, std::false_type{}};
  452|  5.13k|}
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratorC2ERKNS2_5tupleIJSG_S5_EEENS8_17integral_constantIbLb0EEE:
  353|  5.13k|    : bn_(&bn)
  354|  5.13k|{
  355|  5.13k|    it_.template emplace<1>(
  356|  5.13k|        net::buffer_sequence_begin(
  357|  5.13k|            detail::get<0>(*bn_)));
  358|  5.13k|    increment{*this}.next(
  359|  5.13k|        mp11::mp_size_t<1>{});
  360|  5.13k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratorC2ERKSE_:
  132|   253k|    const_iterator(const_iterator const& other) = default;
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE5beginEv:
  450|  5.14k|{
  451|  5.14k|    return const_iterator{bn_, std::false_type{}};
  452|  5.14k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratorC2ERKNS0_6detail5tupleIJS3_S3_S3_SB_SC_EEENS6_17integral_constantIbLb0EEE:
  353|  5.14k|    : bn_(&bn)
  354|  5.14k|{
  355|  5.14k|    it_.template emplace<1>(
  356|  5.14k|        net::buffer_sequence_begin(
  357|  5.14k|            detail::get<0>(*bn_)));
  358|  5.14k|    increment{*this}.next(
  359|  5.14k|        mp11::mp_size_t<1>{});
  360|  5.14k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9increment4nextILm1EEEvNS6_17integral_constantImXT_EEE:
  219|  36.0k|        {
  220|  36.0k|            auto& it = self.it_.template get<I>();
  221|  36.0k|            for(;;)
  222|  36.0k|            {
  223|  36.0k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (223:21): [True: 30.8k, False: 5.14k]
  ------------------
  224|  36.0k|                        detail::get<I-1>(*self.bn_)))
  225|  30.8k|                    break;
  226|  5.14k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (226:20): [True: 5.14k, False: 0]
  ------------------
  227|  5.14k|                    return;
  228|      0|                ++it;
  229|      0|            }
  230|  30.8k|            self.it_.template emplace<I+1>(
  231|  30.8k|                net::buffer_sequence_begin(
  232|  30.8k|                    detail::get<I>(*self.bn_)));
  233|  30.8k|            next(mp11::mp_size_t<I+1>{});
  234|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9increment4nextILm2EEEvNS6_17integral_constantImXT_EEE:
  219|  61.7k|        {
  220|  61.7k|            auto& it = self.it_.template get<I>();
  221|  61.7k|            for(;;)
  222|  61.7k|            {
  223|  61.7k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (223:21): [True: 30.8k, False: 30.8k]
  ------------------
  224|  61.7k|                        detail::get<I-1>(*self.bn_)))
  225|  30.8k|                    break;
  226|  30.8k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (226:20): [True: 30.8k, False: 0]
  ------------------
  227|  30.8k|                    return;
  228|      0|                ++it;
  229|      0|            }
  230|  30.8k|            self.it_.template emplace<I+1>(
  231|  30.8k|                net::buffer_sequence_begin(
  232|  30.8k|                    detail::get<I>(*self.bn_)));
  233|  30.8k|            next(mp11::mp_size_t<I+1>{});
  234|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9increment4nextILm3EEEvNS6_17integral_constantImXT_EEE:
  219|  61.7k|        {
  220|  61.7k|            auto& it = self.it_.template get<I>();
  221|  61.7k|            for(;;)
  222|  61.7k|            {
  223|  61.7k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (223:21): [True: 30.8k, False: 30.8k]
  ------------------
  224|  61.7k|                        detail::get<I-1>(*self.bn_)))
  225|  30.8k|                    break;
  226|  30.8k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (226:20): [True: 30.8k, False: 0]
  ------------------
  227|  30.8k|                    return;
  228|      0|                ++it;
  229|      0|            }
  230|  30.8k|            self.it_.template emplace<I+1>(
  231|  30.8k|                net::buffer_sequence_begin(
  232|  30.8k|                    detail::get<I>(*self.bn_)));
  233|  30.8k|            next(mp11::mp_size_t<I+1>{});
  234|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9increment4nextILm4EEEvNS6_17integral_constantImXT_EEE:
  219|   163k|        {
  220|   163k|            auto& it = self.it_.template get<I>();
  221|   163k|            for(;;)
  222|   163k|            {
  223|   163k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (223:21): [True: 30.8k, False: 133k]
  ------------------
  224|   163k|                        detail::get<I-1>(*self.bn_)))
  225|  30.8k|                    break;
  226|   133k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (226:20): [True: 133k, False: 0]
  ------------------
  227|   133k|                    return;
  228|      0|                ++it;
  229|      0|            }
  230|  30.8k|            self.it_.template emplace<I+1>(
  231|  30.8k|                net::buffer_sequence_begin(
  232|  30.8k|                    detail::get<I>(*self.bn_)));
  233|  30.8k|            next(mp11::mp_size_t<I+1>{});
  234|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9increment4nextENS6_17integral_constantImLm5EEE:
  246|  61.7k|        {
  247|  61.7k|            auto constexpr I = sizeof...(Bn);
  248|  61.7k|            auto& it = self.it_.template get<I>();
  249|  61.7k|            for(;;)
  250|  61.7k|            {
  251|  61.7k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (251:21): [True: 30.8k, False: 30.8k]
  ------------------
  252|  61.7k|                        detail::get<I-1>(*self.bn_)))
  253|  30.8k|                    break;
  254|  30.8k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (254:20): [True: 30.8k, False: 0]
  ------------------
  255|  30.8k|                    return;
  256|      0|                ++it;
  257|      0|            }
  258|       |            // end
  259|  30.8k|            self.it_.template emplace<I+1>();
  260|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iterator9increment4nextILm1EEEvNS8_17integral_constantImXT_EEE:
  219|   261k|        {
  220|   261k|            auto& it = self.it_.template get<I>();
  221|   261k|            for(;;)
  222|   261k|            {
  223|   261k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (223:21): [True: 30.8k, False: 230k]
  ------------------
  224|   261k|                        detail::get<I-1>(*self.bn_)))
  225|  30.8k|                    break;
  226|   230k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (226:20): [True: 230k, False: 0]
  ------------------
  227|   230k|                    return;
  228|      0|                ++it;
  229|      0|            }
  230|  30.8k|            self.it_.template emplace<I+1>(
  231|  30.8k|                net::buffer_sequence_begin(
  232|  30.8k|                    detail::get<I>(*self.bn_)));
  233|  30.8k|            next(mp11::mp_size_t<I+1>{});
  234|  30.8k|        }
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratoreqERKSE_:
  367|   603k|{
  368|   603k|    return bn_ == other.bn_ && it_ == other.it_;
  ------------------
  |  Branch (368:12): [True: 603k, False: 0]
  |  Branch (368:32): [True: 72.0k, False: 531k]
  ------------------
  369|   603k|}
_ZNK5boost5beast6detail30buffers_cat_view_iterator_base8past_endcvbEv:
   96|   204k|        {
   97|   204k|            return true;
   98|   204k|        }
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE3endEv:
  458|   261k|{
  459|   261k|    return const_iterator{bn_, std::true_type{}};
  460|   261k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratorC2ERKNS0_6detail5tupleIJS3_S3_S3_SB_SC_EEENS6_17integral_constantIbLb1EEE:
  341|   261k|    : bn_(&bn)
  342|   261k|{
  343|       |    // one past the end
  344|   261k|    it_.template emplace<sizeof...(Bn)+1>();
  345|   261k|}
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratordeEv:
  377|   615k|{
  378|   615k|    return mp11::mp_with_index<
  379|   615k|        sizeof...(Bn) + 2>(
  380|   615k|            it_.index(),
  381|   615k|            dereference{*this});
  382|   615k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator11dereferenceclINS6_17integral_constantImLm1EEEEES3_T_:
  192|  51.4k|        {
  193|  51.4k|            return *self.it_.template get<I::value>();
  194|  51.4k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator11dereferenceclINS6_17integral_constantImLm2EEEEES3_T_:
  192|  77.1k|        {
  193|  77.1k|            return *self.it_.template get<I::value>();
  194|  77.1k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator11dereferenceclINS6_17integral_constantImLm3EEEEES3_T_:
  192|  77.1k|        {
  193|  77.1k|            return *self.it_.template get<I::value>();
  194|  77.1k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator11dereferenceclINS6_17integral_constantImLm4EEEEES3_T_:
  192|   332k|        {
  193|   332k|            return *self.it_.template get<I::value>();
  194|   332k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator11dereferenceclINS6_17integral_constantImLm5EEEEES3_T_:
  192|  77.1k|        {
  193|  77.1k|            return *self.it_.template get<I::value>();
  194|  77.1k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratorppEv:
  390|   256k|{
  391|   256k|    mp11::mp_with_index<
  392|   256k|        sizeof...(Bn) + 2>(
  393|   256k|            it_.index(),
  394|   256k|            increment{*this});
  395|   256k|    return *this;
  396|   256k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9incrementclILm1EEEvNS6_17integral_constantImXT_EEE:
  211|  30.8k|        {
  212|  30.8k|            ++self.it_.template get<I>();
  213|  30.8k|            next(mp11::mp_size_t<I>{});
  214|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9incrementclILm2EEEvNS6_17integral_constantImXT_EEE:
  211|  30.8k|        {
  212|  30.8k|            ++self.it_.template get<I>();
  213|  30.8k|            next(mp11::mp_size_t<I>{});
  214|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9incrementclILm3EEEvNS6_17integral_constantImXT_EEE:
  211|  30.8k|        {
  212|  30.8k|            ++self.it_.template get<I>();
  213|  30.8k|            next(mp11::mp_size_t<I>{});
  214|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9incrementclILm4EEEvNS6_17integral_constantImXT_EEE:
  211|   133k|        {
  212|   133k|            ++self.it_.template get<I>();
  213|   133k|            next(mp11::mp_size_t<I>{});
  214|   133k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iterator9incrementclENS6_17integral_constantImLm5EEE:
  238|  30.8k|        {
  239|  30.8k|            auto constexpr I = sizeof...(Bn);
  240|  30.8k|            ++self.it_.template get<I>();
  241|  30.8k|            next(mp11::mp_size_t<I>{});
  242|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iterator9increment4nextENS8_17integral_constantImLm2EEE:
  246|  33.7k|        {
  247|  33.7k|            auto constexpr I = sizeof...(Bn);
  248|  33.7k|            auto& it = self.it_.template get<I>();
  249|  33.7k|            for(;;)
  250|  61.6k|            {
  251|  61.6k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (251:21): [True: 30.8k, False: 30.8k]
  ------------------
  252|  61.6k|                        detail::get<I-1>(*self.bn_)))
  253|  30.8k|                    break;
  254|  30.8k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (254:20): [True: 2.94k, False: 27.8k]
  ------------------
  255|  2.94k|                    return;
  256|  27.8k|                ++it;
  257|  27.8k|            }
  258|       |            // end
  259|  30.8k|            self.it_.template emplace<I+1>();
  260|  30.8k|        }
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratorC2Ev:
  131|  5.13k|    const_iterator() = default;
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratorC2ERKSI_:
  132|   290k|    const_iterator(const_iterator const& other) = default;
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratoraSERKSI_:
  134|  5.13k|        const_iterator const& other) = default;
_ZNK5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE3endEv:
  458|  20.5k|{
  459|  20.5k|    return const_iterator{bn_, std::true_type{}};
  460|  20.5k|}
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratorC2ERKNS2_5tupleIJSG_S5_EEENS8_17integral_constantIbLb1EEE:
  341|  20.5k|    : bn_(&bn)
  342|  20.5k|{
  343|       |    // one past the end
  344|  20.5k|    it_.template emplace<sizeof...(Bn)+1>();
  345|  20.5k|}
_ZNK5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratoreqERKSI_:
  367|   630k|{
  368|   630k|    return bn_ == other.bn_ && it_ == other.it_;
  ------------------
  |  Branch (368:12): [True: 630k, False: 0]
  |  Branch (368:32): [True: 66.7k, False: 563k]
  ------------------
  369|   630k|}
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratorppEv:
  390|   259k|{
  391|   259k|    mp11::mp_with_index<
  392|   259k|        sizeof...(Bn) + 2>(
  393|   259k|            it_.index(),
  394|   259k|            increment{*this});
  395|   259k|    return *this;
  396|   259k|}
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iterator9incrementclILm1EEEvNS8_17integral_constantImXT_EEE:
  211|   256k|        {
  212|   256k|            ++self.it_.template get<I>();
  213|   256k|            next(mp11::mp_size_t<I>{});
  214|   256k|        }
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iterator9incrementclENS8_17integral_constantImLm2EEE:
  238|  2.94k|        {
  239|  2.94k|            auto constexpr I = sizeof...(Bn);
  240|  2.94k|            ++self.it_.template get<I>();
  241|  2.94k|            next(mp11::mp_size_t<I>{});
  242|  2.94k|        }
_ZNK5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratordeEv:
  377|   388k|{
  378|   388k|    return mp11::mp_with_index<
  379|   388k|        sizeof...(Bn) + 2>(
  380|   388k|            it_.index(),
  381|   388k|            dereference{*this});
  382|   388k|}
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iterator11dereferenceclINS8_17integral_constantImLm1EEEEES5_T_:
  192|   384k|        {
  193|   384k|            return *self.it_.template get<I::value>();
  194|   384k|        }
_ZN5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iterator11dereferenceclINS8_17integral_constantImLm2EEEEES5_T_:
  192|  4.41k|        {
  193|  4.41k|            return *self.it_.template get<I::value>();
  194|  4.41k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratorC2Ev:
  131|     11|    const_iterator() = default;
_ZN5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratoraSERKSE_:
  134|     11|        const_iterator const& other) = default;
_ZNK5boost5beast16buffers_cat_viewIJNS0_6detail11buffers_refINS1_IJNS_4asio12const_bufferES5_S5_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEES5_EE14const_iteratorneERKSI_:
  141|  43.1k|    {
  142|  43.1k|        return ! (*this == other);
  143|  43.1k|    }
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio12const_bufferES3_S3_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS4_10chunk_crlfEEE14const_iteratorneERKSE_:
  141|     66|    {
  142|     66|        return ! (*this == other);
  143|     66|    }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iteratorC2ERKS5_:
  132|  13.3k|    const_iterator(const_iterator const& other) = default;
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iteratorneERKS5_:
  141|   119k|    {
  142|   119k|        return ! (*this == other);
  143|   119k|    }
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iteratoreqERKS5_:
  367|   119k|{
  368|   119k|    return bn_ == other.bn_ && it_ == other.it_;
  ------------------
  |  Branch (368:12): [True: 119k, False: 0]
  |  Branch (368:32): [True: 39.9k, False: 79.9k]
  ------------------
  369|   119k|}
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iteratordeEv:
  377|  79.9k|{
  378|  79.9k|    return mp11::mp_with_index<
  379|  79.9k|        sizeof...(Bn) + 2>(
  380|  79.9k|            it_.index(),
  381|  79.9k|            dereference{*this});
  382|  79.9k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iterator11dereferenceclINSt3__117integral_constantImLm1EEEEES3_T_:
  192|  39.9k|        {
  193|  39.9k|            return *self.it_.template get<I::value>();
  194|  39.9k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iterator11dereferenceclINSt3__117integral_constantImLm2EEEEES3_T_:
  192|  39.9k|        {
  193|  39.9k|            return *self.it_.template get<I::value>();
  194|  39.9k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iteratorppEv:
  390|  79.9k|{
  391|  79.9k|    mp11::mp_with_index<
  392|  79.9k|        sizeof...(Bn) + 2>(
  393|  79.9k|            it_.index(),
  394|  79.9k|            increment{*this});
  395|  79.9k|    return *this;
  396|  79.9k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iterator9incrementclILm1EEEvNSt3__117integral_constantImXT_EEE:
  211|  39.9k|        {
  212|  39.9k|            ++self.it_.template get<I>();
  213|  39.9k|            next(mp11::mp_size_t<I>{});
  214|  39.9k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iterator9increment4nextILm1EEEvNSt3__117integral_constantImXT_EEE:
  219|  93.3k|        {
  220|  93.3k|            auto& it = self.it_.template get<I>();
  221|  93.3k|            for(;;)
  222|  93.3k|            {
  223|  93.3k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (223:21): [True: 39.9k, False: 53.3k]
  ------------------
  224|  93.3k|                        detail::get<I-1>(*self.bn_)))
  225|  39.9k|                    break;
  226|  53.3k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (226:20): [True: 53.3k, False: 0]
  ------------------
  227|  53.3k|                    return;
  228|      0|                ++it;
  229|      0|            }
  230|  39.9k|            self.it_.template emplace<I+1>(
  231|  39.9k|                net::buffer_sequence_begin(
  232|  39.9k|                    detail::get<I>(*self.bn_)));
  233|  39.9k|            next(mp11::mp_size_t<I+1>{});
  234|  39.9k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iterator9increment4nextENSt3__117integral_constantImLm2EEE:
  246|  79.9k|        {
  247|  79.9k|            auto constexpr I = sizeof...(Bn);
  248|  79.9k|            auto& it = self.it_.template get<I>();
  249|  79.9k|            for(;;)
  250|  79.9k|            {
  251|  79.9k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (251:21): [True: 39.9k, False: 39.9k]
  ------------------
  252|  79.9k|                        detail::get<I-1>(*self.bn_)))
  253|  39.9k|                    break;
  254|  39.9k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (254:20): [True: 39.9k, False: 0]
  ------------------
  255|  39.9k|                    return;
  256|      0|                ++it;
  257|      0|            }
  258|       |            // end
  259|  39.9k|            self.it_.template emplace<I+1>();
  260|  39.9k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iterator9incrementclENSt3__117integral_constantImLm2EEE:
  238|  39.9k|        {
  239|  39.9k|            auto constexpr I = sizeof...(Bn);
  240|  39.9k|            ++self.it_.template get<I>();
  241|  39.9k|            next(mp11::mp_size_t<I>{});
  242|  39.9k|        }
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE3endEv:
  458|  39.9k|{
  459|  39.9k|    return const_iterator{bn_, std::true_type{}};
  460|  39.9k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iteratorC2ERKNS0_6detail5tupleIJS3_S3_EEENSt3__117integral_constantIbLb1EEE:
  341|  39.9k|    : bn_(&bn)
  342|  39.9k|{
  343|       |    // one past the end
  344|  39.9k|    it_.template emplace<sizeof...(Bn)+1>();
  345|  39.9k|}
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE5beginEv:
  450|  53.3k|{
  451|  53.3k|    return const_iterator{bn_, std::false_type{}};
  452|  53.3k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EE14const_iteratorC2ERKNS0_6detail5tupleIJS3_S3_EEENSt3__117integral_constantIbLb0EEE:
  353|  53.3k|    : bn_(&bn)
  354|  53.3k|{
  355|  53.3k|    it_.template emplace<1>(
  356|  53.3k|        net::buffer_sequence_begin(
  357|  53.3k|            detail::get<0>(*bn_)));
  358|  53.3k|    increment{*this}.next(
  359|  53.3k|        mp11::mp_size_t<1>{});
  360|  53.3k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES3_EEC2ERKS3_S6_:
  441|  13.3k|    : bn_(bn...)
  442|  13.3k|{
  443|  13.3k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iteratorC2ERKS9_:
  132|  1.96k|    const_iterator(const_iterator const& other) = default;
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iteratorneERKS9_:
  141|  17.6k|    {
  142|  17.6k|        return ! (*this == other);
  143|  17.6k|    }
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iteratoreqERKS9_:
  367|  17.6k|{
  368|  17.6k|    return bn_ == other.bn_ && it_ == other.it_;
  ------------------
  |  Branch (368:12): [True: 17.6k, False: 0]
  |  Branch (368:32): [True: 5.88k, False: 11.7k]
  ------------------
  369|  17.6k|}
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iteratordeEv:
  377|  11.7k|{
  378|  11.7k|    return mp11::mp_with_index<
  379|  11.7k|        sizeof...(Bn) + 2>(
  380|  11.7k|            it_.index(),
  381|  11.7k|            dereference{*this});
  382|  11.7k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iterator11dereferenceclINSt3__117integral_constantImLm1EEEEES3_T_:
  192|  5.88k|        {
  193|  5.88k|            return *self.it_.template get<I::value>();
  194|  5.88k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iterator11dereferenceclINSt3__117integral_constantImLm2EEEEES3_T_:
  192|  5.87k|        {
  193|  5.87k|            return *self.it_.template get<I::value>();
  194|  5.87k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iteratorppEv:
  390|  11.7k|{
  391|  11.7k|    mp11::mp_with_index<
  392|  11.7k|        sizeof...(Bn) + 2>(
  393|  11.7k|            it_.index(),
  394|  11.7k|            increment{*this});
  395|  11.7k|    return *this;
  396|  11.7k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iterator9incrementclILm1EEEvNSt3__117integral_constantImXT_EEE:
  211|  5.88k|        {
  212|  5.88k|            ++self.it_.template get<I>();
  213|  5.88k|            next(mp11::mp_size_t<I>{});
  214|  5.88k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iterator9increment4nextILm1EEEvNSt3__117integral_constantImXT_EEE:
  219|  13.7k|        {
  220|  13.7k|            auto& it = self.it_.template get<I>();
  221|  13.7k|            for(;;)
  222|  13.7k|            {
  223|  13.7k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (223:21): [True: 5.88k, False: 7.84k]
  ------------------
  224|  13.7k|                        detail::get<I-1>(*self.bn_)))
  225|  5.88k|                    break;
  226|  7.84k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (226:20): [True: 7.84k, False: 0]
  ------------------
  227|  7.84k|                    return;
  228|      0|                ++it;
  229|      0|            }
  230|  5.88k|            self.it_.template emplace<I+1>(
  231|  5.88k|                net::buffer_sequence_begin(
  232|  5.88k|                    detail::get<I>(*self.bn_)));
  233|  5.88k|            next(mp11::mp_size_t<I+1>{});
  234|  5.88k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iterator9increment4nextENSt3__117integral_constantImLm2EEE:
  246|  11.7k|        {
  247|  11.7k|            auto constexpr I = sizeof...(Bn);
  248|  11.7k|            auto& it = self.it_.template get<I>();
  249|  11.7k|            for(;;)
  250|  11.7k|            {
  251|  11.7k|                if (it == net::buffer_sequence_end(
  ------------------
  |  Branch (251:21): [True: 5.88k, False: 5.88k]
  ------------------
  252|  11.7k|                        detail::get<I-1>(*self.bn_)))
  253|  5.88k|                    break;
  254|  5.88k|                if(net::const_buffer(*it).size() > 0)
  ------------------
  |  Branch (254:20): [True: 5.87k, False: 6]
  ------------------
  255|  5.87k|                    return;
  256|      6|                ++it;
  257|      6|            }
  258|       |            // end
  259|  5.88k|            self.it_.template emplace<I+1>();
  260|  5.88k|        }
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iterator9incrementclENSt3__117integral_constantImLm2EEE:
  238|  5.87k|        {
  239|  5.87k|            auto constexpr I = sizeof...(Bn);
  240|  5.87k|            ++self.it_.template get<I>();
  241|  5.87k|            next(mp11::mp_size_t<I>{});
  242|  5.87k|        }
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE3endEv:
  458|  5.88k|{
  459|  5.88k|    return const_iterator{bn_, std::true_type{}};
  460|  5.88k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iteratorC2ERKNS0_6detail5tupleIJS3_S7_EEENSt3__117integral_constantIbLb1EEE:
  341|  5.88k|    : bn_(&bn)
  342|  5.88k|{
  343|       |    // one past the end
  344|  5.88k|    it_.template emplace<sizeof...(Bn)+1>();
  345|  5.88k|}
_ZNK5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE5beginEv:
  450|  7.84k|{
  451|  7.84k|    return const_iterator{bn_, std::false_type{}};
  452|  7.84k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEE14const_iteratorC2ERKNS0_6detail5tupleIJS3_S7_EEENSt3__117integral_constantIbLb0EEE:
  353|  7.84k|    : bn_(&bn)
  354|  7.84k|{
  355|  7.84k|    it_.template emplace<1>(
  356|  7.84k|        net::buffer_sequence_begin(
  357|  7.84k|            detail::get<0>(*bn_)));
  358|  7.84k|    increment{*this}.next(
  359|  7.84k|        mp11::mp_size_t<1>{});
  360|  7.84k|}
_ZN5boost5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS0_19buffers_prefix_viewINS0_14buffers_suffixIS3_EEEEEEC2ERKS3_RKS7_:
  441|  1.96k|    : bn_(bn...)
  442|  1.96k|{
  443|  1.96k|}

_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEEC2EmSM_:
  214|  5.13k|    : bs_(bs)
  215|  5.13k|{
  216|  5.13k|    setup(size);
  217|  5.13k|}
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE5setupEm:
  146|  5.13k|{
  147|  5.13k|    size_ = 0;
  148|  5.13k|    remain_ = 0;
  149|  5.13k|    end_ = net::buffer_sequence_begin(bs_);
  150|  5.13k|    auto const last = bs_.end();
  151|  48.3k|    while(end_ != last)
  ------------------
  |  Branch (151:11): [True: 43.1k, False: 5.13k]
  ------------------
  152|  43.1k|    {
  153|  43.1k|        auto const len = buffer_bytes(*end_++);
  154|  43.1k|        if(len >= size)
  ------------------
  |  Branch (154:12): [True: 0, False: 43.1k]
  ------------------
  155|      0|        {
  156|      0|            size_ += size;
  157|       |
  158|       |            // by design, this subtraction can wrap
  159|      0|            BOOST_STATIC_ASSERT(std::is_unsigned<
  ------------------
  |  |   71|      0|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  160|      0|                decltype(remain_)>::value);
  161|      0|            remain_ = size - len;
  162|      0|            break;
  163|      0|        }
  164|  43.1k|        size -= len;
  165|  43.1k|        size_ += len;
  166|  43.1k|    }
  167|  5.13k|}
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE14const_iteratorC2ERKSO_:
   58|  15.4k|        const_iterator const& other) = default;
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE14const_iteratorneERKSO_:
   70|   139k|    {
   71|   139k|        return !(*this == other);
   72|   139k|    }
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE14const_iteratoreqERKSO_:
   64|   139k|    {
   65|   139k|        return b_ == other.b_ && it_ == other.it_;
  ------------------
  |  Branch (65:16): [True: 139k, False: 0]
  |  Branch (65:34): [True: 10.2k, False: 129k]
  ------------------
   66|   139k|    }
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE14const_iteratordeEv:
   76|   129k|    {
   77|   129k|        value_type v(*it_);
   78|   129k|        if(remain_ < v.size())
  ------------------
  |  Branch (78:12): [True: 0, False: 129k]
  ------------------
   79|      0|            return {v.data(), remain_};
   80|   129k|        return v;
   81|   129k|    }
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE14const_iteratorppEv:
   88|   129k|    {
   89|   129k|        value_type const v = *it_++;
   90|   129k|        remain_ -= v.size();
   91|   129k|        return *this;
   92|   129k|    }
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE5beginEv:
  236|  15.4k|{
  237|  15.4k|    return const_iterator{
  238|  15.4k|        *this, std::false_type{}};
  239|  15.4k|}
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE14const_iteratorC2ERKSN_NSA_17integral_constantIbLb0EEE:
  133|  15.4k|        : b_(&b)
  134|  15.4k|        , remain_(b_->size_)
  135|  15.4k|        , it_(net::buffer_sequence_begin(b_->bs_))
  136|  15.4k|    {
  137|  15.4k|    }
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE3endEv:
  246|  15.4k|{
  247|  15.4k|    return const_iterator{
  248|  15.4k|        *this, std::true_type{}};
  249|  15.4k|}
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EEEEEE14const_iteratorC2ERKSN_NSA_17integral_constantIbLb1EEE:
  124|  15.4k|        : b_(&b)
  125|  15.4k|        , remain_(b.remain_)
  126|  15.4k|        , it_(b_->end_)
  127|  15.4k|    {
  128|  15.4k|    }
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEEC2EmSL_:
  214|     11|    : bs_(bs)
  215|     11|{
  216|     11|    setup(size);
  217|     11|}
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE5setupEm:
  146|     11|{
  147|     11|    size_ = 0;
  148|     11|    remain_ = 0;
  149|     11|    end_ = net::buffer_sequence_begin(bs_);
  150|     11|    auto const last = bs_.end();
  151|     77|    while(end_ != last)
  ------------------
  |  Branch (151:11): [True: 66, False: 11]
  ------------------
  152|     66|    {
  153|     66|        auto const len = buffer_bytes(*end_++);
  154|     66|        if(len >= size)
  ------------------
  |  Branch (154:12): [True: 0, False: 66]
  ------------------
  155|      0|        {
  156|      0|            size_ += size;
  157|       |
  158|       |            // by design, this subtraction can wrap
  159|      0|            BOOST_STATIC_ASSERT(std::is_unsigned<
  ------------------
  |  |   71|      0|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  160|      0|                decltype(remain_)>::value);
  161|      0|            remain_ = size - len;
  162|      0|            break;
  163|      0|        }
  164|     66|        size -= len;
  165|     66|        size_ += len;
  166|     66|    }
  167|     11|}
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE14const_iteratorC2ERKSN_:
   58|     33|        const_iterator const& other) = default;
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE14const_iteratorneERKSN_:
   70|    220|    {
   71|    220|        return !(*this == other);
   72|    220|    }
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE14const_iteratoreqERKSN_:
   64|    220|    {
   65|    220|        return b_ == other.b_ && it_ == other.it_;
  ------------------
  |  Branch (65:16): [True: 220, False: 0]
  |  Branch (65:34): [True: 22, False: 198]
  ------------------
   66|    220|    }
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE14const_iteratordeEv:
   76|    198|    {
   77|    198|        value_type v(*it_);
   78|    198|        if(remain_ < v.size())
  ------------------
  |  Branch (78:12): [True: 0, False: 198]
  ------------------
   79|      0|            return {v.data(), remain_};
   80|    198|        return v;
   81|    198|    }
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE14const_iteratorppEv:
   88|    198|    {
   89|    198|        value_type const v = *it_++;
   90|    198|        remain_ -= v.size();
   91|    198|        return *this;
   92|    198|    }
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE5beginEv:
  236|     33|{
  237|     33|    return const_iterator{
  238|     33|        *this, std::false_type{}};
  239|     33|}
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE14const_iteratorC2ERKSM_NSA_17integral_constantIbLb0EEE:
  133|     33|        : b_(&b)
  134|     33|        , remain_(b_->size_)
  135|     33|        , it_(net::buffer_sequence_begin(b_->bs_))
  136|     33|    {
  137|     33|    }
_ZNK5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE3endEv:
  246|     33|{
  247|     33|    return const_iterator{
  248|     33|        *this, std::true_type{}};
  249|     33|}
_ZN5boost5beast19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEEEEE14const_iteratorC2ERKSM_NSA_17integral_constantIbLb1EEE:
  124|     33|        : b_(&b)
  125|     33|        , remain_(b.remain_)
  126|     33|        , it_(b_->end_)
  127|     33|    {
  128|     33|    }
_ZNK5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE5beginEv:
  236|  3.20M|{
  237|  3.20M|    return const_iterator{
  238|  3.20M|        *this, std::false_type{}};
  239|  3.20M|}
_ZN5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE14const_iteratorC2ERKS5_NSt3__117integral_constantIbLb0EEE:
  133|  3.20M|        : b_(&b)
  134|  3.20M|        , remain_(b_->size_)
  135|  3.20M|        , it_(net::buffer_sequence_begin(b_->bs_))
  136|  3.20M|    {
  137|  3.20M|    }
_ZNK5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE3endEv:
  246|  3.20M|{
  247|  3.20M|    return const_iterator{
  248|  3.20M|        *this, std::true_type{}};
  249|  3.20M|}
_ZN5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE14const_iteratorC2ERKS5_NSt3__117integral_constantIbLb1EEE:
  124|  3.20M|        : b_(&b)
  125|  3.20M|        , remain_(b.remain_)
  126|  3.20M|        , it_(b_->end_)
  127|  3.20M|    {
  128|  3.20M|    }
_ZNK5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE14const_iteratoreqERKS6_:
   64|  5.85M|    {
   65|  5.85M|        return b_ == other.b_ && it_ == other.it_;
  ------------------
  |  Branch (65:16): [True: 5.85M, False: 0]
  |  Branch (65:34): [True: 2.64M, False: 3.20M]
  ------------------
   66|  5.85M|    }
_ZNK5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE14const_iteratordeEv:
   76|  3.20M|    {
   77|  3.20M|        value_type v(*it_);
   78|  3.20M|        if(remain_ < v.size())
  ------------------
  |  Branch (78:12): [True: 3.17M, False: 28.5k]
  ------------------
   79|  3.17M|            return {v.data(), remain_};
   80|  28.5k|        return v;
   81|  3.20M|    }
_ZN5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE14const_iteratorppEv:
   88|  3.20M|    {
   89|  3.20M|        value_type const v = *it_++;
   90|  3.20M|        remain_ -= v.size();
   91|  3.20M|        return *this;
   92|  3.20M|    }
_ZN5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEEC2EmRKS4_:
  214|  1.52M|    : bs_(bs)
  215|  1.52M|{
  216|  1.52M|    setup(size);
  217|  1.52M|}
_ZN5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE5setupEm:
  146|  1.52M|{
  147|  1.52M|    size_ = 0;
  148|  1.52M|    remain_ = 0;
  149|  1.52M|    end_ = net::buffer_sequence_begin(bs_);
  150|  1.52M|    auto const last = bs_.end();
  151|  1.54M|    while(end_ != last)
  ------------------
  |  Branch (151:11): [True: 1.53M, False: 13.4k]
  ------------------
  152|  1.53M|    {
  153|  1.53M|        auto const len = buffer_bytes(*end_++);
  154|  1.53M|        if(len >= size)
  ------------------
  |  Branch (154:12): [True: 1.51M, False: 16.9k]
  ------------------
  155|  1.51M|        {
  156|  1.51M|            size_ += size;
  157|       |
  158|       |            // by design, this subtraction can wrap
  159|  1.51M|            BOOST_STATIC_ASSERT(std::is_unsigned<
  ------------------
  |  |   71|  1.51M|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  160|  1.51M|                decltype(remain_)>::value);
  161|  1.51M|            remain_ = size - len;
  162|  1.51M|            break;
  163|  1.51M|        }
  164|  16.9k|        size -= len;
  165|  16.9k|        size_ += len;
  166|  16.9k|    }
  167|  1.52M|}
_ZNK5boost5beast19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEE14const_iteratorneERKS6_:
   70|  3.90M|    {
   71|  3.90M|        return !(*this == other);
   72|  3.90M|    }
_ZN5boost5beast19buffers_prefix_viewINS_4asio14mutable_bufferEEC2EmS3_:
  301|   468k|        : net::mutable_buffer(
  302|   468k|            buffer.data(),
  303|   468k|            std::min<std::size_t>(size, buffer.size())
  304|       |        #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
  305|       |            , buffer.get_debug_check()
  306|       |        #endif
  307|   468k|            )
  308|   468k|    {
  309|   468k|    }
_ZN5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEEC2ERKS6_:
  184|  3.92k|    : buffers_prefix_view(other,
  185|  3.92k|        std::distance<iter_type>(
  186|  3.92k|            net::buffer_sequence_begin(other.bs_),
  187|  3.92k|                other.end_))
  188|  3.92k|{
  189|  3.92k|}
_ZN5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEEC2ERKS6_m:
  174|  3.92k|    : bs_(other.bs_)
  175|  3.92k|    , size_(other.size_)
  176|  3.92k|    , remain_(other.remain_)
  177|  3.92k|    , end_(std::next(bs_.begin(), dist))
  178|  3.92k|{
  179|  3.92k|}
_ZNK5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratoreqERKS7_:
   64|  11.7k|    {
   65|  11.7k|        return b_ == other.b_ && it_ == other.it_;
  ------------------
  |  Branch (65:16): [True: 11.7k, False: 0]
  |  Branch (65:34): [True: 5.88k, False: 5.88k]
  ------------------
   66|  11.7k|    }
_ZNK5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratordeEv:
   76|  11.7k|    {
   77|  11.7k|        value_type v(*it_);
   78|  11.7k|        if(remain_ < v.size())
  ------------------
  |  Branch (78:12): [True: 11.1k, False: 624]
  ------------------
   79|  11.1k|            return {v.data(), remain_};
   80|    624|        return v;
   81|  11.7k|    }
_ZNK5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE5beginEv:
  236|  5.88k|{
  237|  5.88k|    return const_iterator{
  238|  5.88k|        *this, std::false_type{}};
  239|  5.88k|}
_ZN5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratorC2ERKS6_NSt3__117integral_constantIbLb0EEE:
  133|  5.88k|        : b_(&b)
  134|  5.88k|        , remain_(b_->size_)
  135|  5.88k|        , it_(net::buffer_sequence_begin(b_->bs_))
  136|  5.88k|    {
  137|  5.88k|    }
_ZNK5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE3endEv:
  246|  11.7k|{
  247|  11.7k|    return const_iterator{
  248|  11.7k|        *this, std::true_type{}};
  249|  11.7k|}
_ZN5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratorC2ERKS6_NSt3__117integral_constantIbLb1EEE:
  124|  11.7k|        : b_(&b)
  125|  11.7k|        , remain_(b.remain_)
  126|  11.7k|        , it_(b_->end_)
  127|  11.7k|    {
  128|  11.7k|    }
_ZN5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE14const_iteratorppEv:
   88|  5.88k|    {
   89|  5.88k|        value_type const v = *it_++;
   90|  5.88k|        remain_ -= v.size();
   91|  5.88k|        return *this;
   92|  5.88k|    }
_ZN5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEEC2EmRKS5_:
  214|  1.96k|    : bs_(bs)
  215|  1.96k|{
  216|  1.96k|    setup(size);
  217|  1.96k|}
_ZN5boost5beast19buffers_prefix_viewINS0_14buffers_suffixINS_4asio14mutable_bufferEEEE5setupEm:
  146|  1.96k|{
  147|  1.96k|    size_ = 0;
  148|  1.96k|    remain_ = 0;
  149|  1.96k|    end_ = net::buffer_sequence_begin(bs_);
  150|  1.96k|    auto const last = bs_.end();
  151|  1.96k|    while(end_ != last)
  ------------------
  |  Branch (151:11): [True: 1.96k, False: 0]
  ------------------
  152|  1.96k|    {
  153|  1.96k|        auto const len = buffer_bytes(*end_++);
  154|  1.96k|        if(len >= size)
  ------------------
  |  Branch (154:12): [True: 1.96k, False: 0]
  ------------------
  155|  1.96k|        {
  156|  1.96k|            size_ += size;
  157|       |
  158|       |            // by design, this subtraction can wrap
  159|  1.96k|            BOOST_STATIC_ASSERT(std::is_unsigned<
  ------------------
  |  |   71|  1.96k|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  160|  1.96k|                decltype(remain_)>::value);
  161|  1.96k|            remain_ = size - len;
  162|  1.96k|            break;
  163|  1.96k|        }
  164|      0|        size -= len;
  165|      0|        size_ += len;
  166|      0|    }
  167|  1.96k|}

_ZN5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEEC2IJSH_RS6_EEENS_11optional_ns15in_place_init_tEDpOT_:
  156|  5.13k|    : bs_(std::forward<Args>(args)...)
  157|  5.13k|    , begin_(net::buffer_sequence_begin(bs_))
  158|  5.13k|{
  159|  5.13k|    static_assert(sizeof...(Args) > 0,
  160|  5.13k|        "Missing constructor arguments");
  161|  5.13k|    static_assert(
  162|  5.13k|        std::is_constructible<Buffers, Args...>::value,
  163|  5.13k|            "Buffers not constructible from arguments");
  164|  5.13k|}
_ZN5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratorC2Ev:
   52|  5.13k|    const_iterator() = default;
_ZNK5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE5beginEv:
  187|  30.8k|{
  188|  30.8k|    return const_iterator{*this, begin_};
  189|  30.8k|}
_ZN5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratorC2ERKSJ_NSI_14const_iteratorE:
  115|  46.2k|        : it_(it)
  116|  46.2k|        , b_(&b)
  117|  46.2k|    {
  118|  46.2k|    }
_ZN5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratoraSERKSK_:
   56|  5.13k|        const_iterator const& other) = default;
_ZNK5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE3endEv:
  196|  15.4k|{
  197|  15.4k|    return const_iterator{*this,
  198|  15.4k|        net::buffer_sequence_end(bs_)};
  199|  15.4k|}
_ZNK5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratorneERKSK_:
   66|   101k|    {
   67|   101k|        return !(*this == other);
   68|   101k|    }
_ZNK5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratoreqERKSK_:
   60|   241k|    {
   61|   241k|        return b_ == other.b_ && it_ == other.it_;
  ------------------
  |  Branch (61:16): [True: 241k, False: 0]
  |  Branch (61:34): [True: 25.6k, False: 215k]
  ------------------
   62|   241k|    }
_ZN5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratorppEi:
   90|   172k|    {
   91|   172k|        auto temp = *this;
   92|   172k|        ++(*this);
   93|   172k|        return temp;
   94|   172k|    }
_ZN5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratorC2ERKSK_:
   54|   213k|        const_iterator const& other) = default;
_ZN5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratorppEv:
   83|   215k|    {
   84|   215k|        ++it_;
   85|   215k|        return *this;
   86|   215k|    }
_ZNK5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE14const_iteratordeEv:
   72|   345k|    {
   73|   345k|        if(it_ == b_->begin_)
  ------------------
  |  Branch (73:12): [True: 41.0k, False: 304k]
  ------------------
   74|  41.0k|            return value_type(*it_) + b_->skip_;
   75|   304k|        return value_type(*it_);
   76|   345k|    }
_ZN5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEEC2ERKSH_:
  143|     11|    : bs_(bs)
  144|     11|    , begin_(net::buffer_sequence_begin(bs_))
  145|     11|{
  146|     11|    static_assert(
  147|     11|        net::is_const_buffer_sequence<Buffers>::value ||
  148|     11|        net::is_mutable_buffer_sequence<Buffers>::value,
  149|     11|            "BufferSequence type requirements not met");
  150|     11|}
_ZN5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratorC2Ev:
   52|     11|    const_iterator() = default;
_ZNK5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE5beginEv:
  187|     66|{
  188|     66|    return const_iterator{*this, begin_};
  189|     66|}
_ZN5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratorC2ERKSI_NSG_14const_iteratorE:
  115|     99|        : it_(it)
  116|     99|        , b_(&b)
  117|     99|    {
  118|     99|    }
_ZN5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratoraSERKSJ_:
   56|     11|        const_iterator const& other) = default;
_ZNK5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE3endEv:
  196|     33|{
  197|     33|    return const_iterator{*this,
  198|     33|        net::buffer_sequence_end(bs_)};
  199|     33|}
_ZNK5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratorneERKSJ_:
   66|    165|    {
   67|    165|        return !(*this == other);
   68|    165|    }
_ZNK5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratoreqERKSJ_:
   60|    385|    {
   61|    385|        return b_ == other.b_ && it_ == other.it_;
  ------------------
  |  Branch (61:16): [True: 385, False: 0]
  |  Branch (61:34): [True: 55, False: 330]
  ------------------
   62|    385|    }
_ZN5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratorppEi:
   90|    264|    {
   91|    264|        auto temp = *this;
   92|    264|        ++(*this);
   93|    264|        return temp;
   94|    264|    }
_ZN5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratorC2ERKSJ_:
   54|    352|        const_iterator const& other) = default;
_ZN5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratorppEv:
   83|    330|    {
   84|    330|        ++it_;
   85|    330|        return *this;
   86|    330|    }
_ZNK5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE14const_iteratordeEv:
   72|    528|    {
   73|    528|        if(it_ == b_->begin_)
  ------------------
  |  Branch (73:12): [True: 88, False: 440]
  ------------------
   74|     88|            return value_type(*it_) + b_->skip_;
   75|    440|        return value_type(*it_);
   76|    528|    }
_ZN5boost5beast14buffers_suffixINS0_16buffers_cat_viewIJNS0_6detail11buffers_refINS2_IJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEES6_EEEE7consumeEm:
  205|  5.13k|{
  206|  5.13k|    auto const end =
  207|  5.13k|        net::buffer_sequence_end(bs_);
  208|  48.3k|    for(;amount > 0 && begin_ != end; ++begin_)
  ------------------
  |  Branch (208:10): [True: 43.1k, False: 5.13k]
  |  Branch (208:24): [True: 43.1k, False: 0]
  ------------------
  209|  43.1k|    {
  210|  43.1k|        auto const len =
  211|  43.1k|            buffer_bytes(*begin_) - skip_;
  212|  43.1k|        if(amount < len)
  ------------------
  |  Branch (212:12): [True: 0, False: 43.1k]
  ------------------
  213|      0|        {
  214|      0|            skip_ += amount;
  215|      0|            break;
  216|      0|        }
  217|  43.1k|        amount -= len;
  218|  43.1k|        skip_ = 0;
  219|  43.1k|    }
  220|  5.13k|}
_ZN5boost5beast14buffers_suffixINS0_6detail11buffers_refINS0_16buffers_cat_viewIJNS_4asio12const_bufferES6_S6_NS0_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS7_10chunk_crlfEEEEEEE7consumeEm:
  205|     11|{
  206|     11|    auto const end =
  207|     11|        net::buffer_sequence_end(bs_);
  208|     77|    for(;amount > 0 && begin_ != end; ++begin_)
  ------------------
  |  Branch (208:10): [True: 66, False: 11]
  |  Branch (208:24): [True: 66, False: 0]
  ------------------
  209|     66|    {
  210|     66|        auto const len =
  211|     66|            buffer_bytes(*begin_) - skip_;
  212|     66|        if(amount < len)
  ------------------
  |  Branch (212:12): [True: 0, False: 66]
  ------------------
  213|      0|        {
  214|      0|            skip_ += amount;
  215|      0|            break;
  216|      0|        }
  217|     66|        amount -= len;
  218|     66|        skip_ = 0;
  219|     66|    }
  220|     11|}
_ZN5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEEC2ERKS4_:
  143|   968k|    : bs_(bs)
  144|   968k|    , begin_(net::buffer_sequence_begin(bs_))
  145|   968k|{
  146|   968k|    static_assert(
  147|   968k|        net::is_const_buffer_sequence<Buffers>::value ||
  148|   968k|        net::is_mutable_buffer_sequence<Buffers>::value,
  149|   968k|            "BufferSequence type requirements not met");
  150|   968k|}
_ZN5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEE7consumeEm:
  205|  1.93M|{
  206|  1.93M|    auto const end =
  207|  1.93M|        net::buffer_sequence_end(bs_);
  208|  1.94M|    for(;amount > 0 && begin_ != end; ++begin_)
  ------------------
  |  Branch (208:10): [True: 1.93M, False: 2.71k]
  |  Branch (208:24): [True: 1.93M, False: 0]
  ------------------
  209|  1.93M|    {
  210|  1.93M|        auto const len =
  211|  1.93M|            buffer_bytes(*begin_) - skip_;
  212|  1.93M|        if(amount < len)
  ------------------
  |  Branch (212:12): [True: 1.93M, False: 5.08k]
  ------------------
  213|  1.93M|        {
  214|  1.93M|            skip_ += amount;
  215|  1.93M|            break;
  216|  1.93M|        }
  217|  5.08k|        amount -= len;
  218|  5.08k|        skip_ = 0;
  219|  5.08k|    }
  220|  1.93M|}
_ZNK5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEE14const_iteratorneERKS6_:
   66|  9.01M|    {
   67|  9.01M|        return !(*this == other);
   68|  9.01M|    }
_ZNK5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEE14const_iteratoreqERKS6_:
   60|  9.01M|    {
   61|  9.01M|        return b_ == other.b_ && it_ == other.it_;
  ------------------
  |  Branch (61:16): [True: 9.01M, False: 0]
  |  Branch (61:34): [True: 3.46M, False: 5.55M]
  ------------------
   62|  9.01M|    }
_ZNK5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEE14const_iteratordeEv:
   72|  5.55M|    {
   73|  5.55M|        if(it_ == b_->begin_)
  ------------------
  |  Branch (73:12): [True: 5.39M, False: 163k]
  ------------------
   74|  5.39M|            return value_type(*it_) + b_->skip_;
   75|   163k|        return value_type(*it_);
   76|  5.55M|    }
_ZN5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEE14const_iteratorppEv:
   83|  5.55M|    {
   84|  5.55M|        ++it_;
   85|  5.55M|        return *this;
   86|  5.55M|    }
_ZNK5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEE5beginEv:
  187|  5.39M|{
  188|  5.39M|    return const_iterator{*this, begin_};
  189|  5.39M|}
_ZN5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEE14const_iteratorC2ERKS5_PKNS_4asio12const_bufferE:
  115|  10.7M|        : it_(it)
  116|  10.7M|        , b_(&b)
  117|  10.7M|    {
  118|  10.7M|    }
_ZNK5boost5beast14buffers_suffixINS0_6detail12buffers_pairILb0EEEE3endEv:
  196|  5.39M|{
  197|  5.39M|    return const_iterator{*this,
  198|  5.39M|        net::buffer_sequence_end(bs_)};
  199|  5.39M|}
_ZN5boost5beast14buffers_suffixINS_4asio14mutable_bufferEEC2ERKS3_:
  143|   346k|    : bs_(bs)
  144|   346k|    , begin_(net::buffer_sequence_begin(bs_))
  145|   346k|{
  146|   346k|    static_assert(
  147|   346k|        net::is_const_buffer_sequence<Buffers>::value ||
  148|   346k|        net::is_mutable_buffer_sequence<Buffers>::value,
  149|   346k|            "BufferSequence type requirements not met");
  150|   346k|}
_ZNK5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE14const_iteratorneERKS5_:
   66|   130M|    {
   67|   130M|        return !(*this == other);
   68|   130M|    }
_ZNK5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE14const_iteratoreqERKS5_:
   60|   195M|    {
   61|   195M|        return b_ == other.b_ && it_ == other.it_;
  ------------------
  |  Branch (61:16): [True: 195M, False: 0]
  |  Branch (61:34): [True: 65.3M, False: 130M]
  ------------------
   62|   195M|    }
_ZNK5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE14const_iteratordeEv:
   72|   130M|    {
   73|   130M|        if(it_ == b_->begin_)
  ------------------
  |  Branch (73:12): [True: 130M, False: 0]
  ------------------
   74|   130M|            return value_type(*it_) + b_->skip_;
   75|      0|        return value_type(*it_);
   76|   130M|    }
_ZN5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE14const_iteratorppEv:
   83|  65.0M|    {
   84|  65.0M|        ++it_;
   85|  65.0M|        return *this;
   86|  65.0M|    }
_ZNK5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE5beginEv:
  187|   130M|{
  188|   130M|    return const_iterator{*this, begin_};
  189|   130M|}
_ZN5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE14const_iteratorC2ERKS4_PKS3_:
  115|   260M|        : it_(it)
  116|   260M|        , b_(&b)
  117|   260M|    {
  118|   260M|    }
_ZNK5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE3endEv:
  196|   130M|{
  197|   130M|    return const_iterator{*this,
  198|   130M|        net::buffer_sequence_end(bs_)};
  199|   130M|}
_ZN5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE7consumeEm:
  205|  65.0M|{
  206|  65.0M|    auto const end =
  207|  65.0M|        net::buffer_sequence_end(bs_);
  208|  65.3M|    for(;amount > 0 && begin_ != end; ++begin_)
  ------------------
  |  Branch (208:10): [True: 65.0M, False: 312k]
  |  Branch (208:24): [True: 65.0M, False: 0]
  ------------------
  209|  65.0M|    {
  210|  65.0M|        auto const len =
  211|  65.0M|            buffer_bytes(*begin_) - skip_;
  212|  65.0M|        if(amount < len)
  ------------------
  |  Branch (212:12): [True: 64.7M, False: 303k]
  ------------------
  213|  64.7M|        {
  214|  64.7M|            skip_ += amount;
  215|  64.7M|            break;
  216|  64.7M|        }
  217|   303k|        amount -= len;
  218|   303k|        skip_ = 0;
  219|   303k|    }
  220|  65.0M|}
_ZN5boost5beast14buffers_suffixINS_4asio14mutable_bufferEEC2ERKS4_:
  133|  5.88k|    : buffers_suffix(other,
  134|  5.88k|        std::distance<iter_type>(
  135|  5.88k|            net::buffer_sequence_begin(
  136|  5.88k|                other.bs_), other.begin_))
  137|  5.88k|{
  138|  5.88k|}
_ZN5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE14const_iteratorppEi:
   90|  7.84k|    {
   91|  7.84k|        auto temp = *this;
   92|  7.84k|        ++(*this);
   93|  7.84k|        return temp;
   94|  7.84k|    }
_ZN5boost5beast14buffers_suffixINS_4asio14mutable_bufferEE14const_iteratorC2Ev:
   52|  1.96k|    const_iterator() = default;

_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEEC2Ev:
   42|  24.6k|    : begin_(nullptr)
   43|  24.6k|    , in_(nullptr)
   44|  24.6k|    , out_(nullptr)
   45|  24.6k|    , last_(nullptr)
   46|  24.6k|    , end_(nullptr)
   47|  24.6k|    , max_(alloc_traits::max_size(
   48|  24.6k|        this->get()))
   49|  24.6k|{
   50|  24.6k|}
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEED2Ev:
   32|  24.6k|{
   33|  24.6k|    if(! begin_)
  ------------------
  |  Branch (33:8): [True: 6.65k, False: 17.9k]
  ------------------
   34|  6.65k|        return;
   35|  17.9k|    alloc_traits::deallocate(
   36|  17.9k|        this->get(), begin_, capacity());
   37|  17.9k|}
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE7prepareEm:
  321|  1.06M|{
  322|  1.06M|    auto const len = size();
  323|  1.06M|    if(len > max_ || n > (max_ - len))
  ------------------
  |  Branch (323:8): [True: 0, False: 1.06M]
  |  Branch (323:22): [True: 0, False: 1.06M]
  ------------------
  324|      0|        BOOST_THROW_EXCEPTION(std::length_error{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  325|  1.06M|            "basic_flat_buffer too long"});
  326|  1.06M|    if(n <= dist(out_, end_))
  ------------------
  |  Branch (326:8): [True: 1.01M, False: 53.3k]
  ------------------
  327|  1.01M|    {
  328|       |        // existing capacity is sufficient
  329|  1.01M|        last_ = out_ + n;
  330|  1.01M|        return{out_, n};
  331|  1.01M|    }
  332|  53.3k|    if(n <= capacity() - len)
  ------------------
  |  Branch (332:8): [True: 0, False: 53.3k]
  ------------------
  333|      0|    {
  334|       |        // after a memmove,
  335|       |        // existing capacity is sufficient
  336|      0|        if(len > 0)
  ------------------
  |  Branch (336:12): [True: 0, False: 0]
  ------------------
  337|      0|        {
  338|      0|            BOOST_ASSERT(begin_);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  339|      0|            BOOST_ASSERT(in_);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  340|      0|            std::memmove(begin_, in_, len);
  341|      0|        }
  342|      0|        in_ = begin_;
  343|      0|        out_ = in_ + len;
  344|      0|        last_ = out_ + n;
  345|      0|        return {out_, n};
  346|      0|    }
  347|       |    // allocate a new buffer
  348|  53.3k|    auto const new_size = (std::min<std::size_t>)(
  349|  53.3k|        max_,
  350|  53.3k|        (std::max<std::size_t>)(2 * len, len + n));
  351|  53.3k|    auto const p = alloc(new_size);
  352|  53.3k|    if(begin_)
  ------------------
  |  Branch (352:8): [True: 35.3k, False: 17.9k]
  ------------------
  353|  35.3k|    {
  354|  35.3k|        BOOST_ASSERT(p);
  ------------------
  |  |   66|  35.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  355|  35.3k|        BOOST_ASSERT(in_);
  ------------------
  |  |   66|  35.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  356|  35.3k|        std::memcpy(p, in_, len);
  357|  35.3k|        alloc_traits::deallocate(
  358|  35.3k|            this->get(), begin_, capacity());
  359|  35.3k|    }
  360|  53.3k|    begin_ = p;
  361|  53.3k|    in_ = begin_;
  362|  53.3k|    out_ = in_ + len;
  363|  53.3k|    last_ = out_ + n;
  364|  53.3k|    end_ = begin_ + new_size;
  365|  53.3k|    return {out_, n};
  366|  53.3k|}
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE5allocEm:
  534|  53.3k|{
  535|  53.3k|    if(n > alloc_traits::max_size(this->get()))
  ------------------
  |  Branch (535:8): [True: 0, False: 53.3k]
  ------------------
  536|      0|        BOOST_THROW_EXCEPTION(std::length_error(
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  537|  53.3k|            "A basic_flat_buffer exceeded the allocator's maximum size"));
  538|  53.3k|    return alloc_traits::allocate(this->get(), n);
  539|  53.3k|}
_ZN5boost5beast17basic_flat_bufferINSt3__19allocatorIcEEE7consumeEm:
  372|  29.0k|{
  373|  29.0k|    if(n >= dist(in_, out_))
  ------------------
  |  Branch (373:8): [True: 8.08k, False: 20.9k]
  ------------------
  374|  8.08k|    {
  375|  8.08k|        in_ = begin_;
  376|  8.08k|        out_ = begin_;
  377|  8.08k|        return;
  378|  8.08k|    }
  379|  20.9k|    in_ += n;
  380|  20.9k|}

_ZN5boost5beast23flat_static_buffer_base5resetEPvm:
   78|   352k|{
   79|   352k|    begin_ = static_cast<char*>(p);
   80|   352k|    in_ = begin_;
   81|   352k|    out_ = begin_;
   82|   352k|    last_ = begin_;
   83|   352k|    end_ = begin_ + n;
   84|   352k|}
_ZN5boost5beast23flat_static_buffer_base7prepareEm:
   44|   656k|{
   45|   656k|    if(n <= dist(out_, end_))
  ------------------
  |  Branch (45:8): [True: 656k, False: 0]
  ------------------
   46|   656k|    {
   47|   656k|        last_ = out_ + n;
   48|   656k|        return {out_, n};
   49|   656k|    }
   50|      0|    auto const len = size();
   51|      0|    if(n > capacity() - len)
  ------------------
  |  Branch (51:8): [True: 0, False: 0]
  ------------------
   52|      0|        BOOST_THROW_EXCEPTION(std::length_error{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
   53|      0|            "buffer overflow"});
   54|      0|    if(len > 0)
  ------------------
  |  Branch (54:8): [True: 0, False: 0]
  ------------------
   55|      0|        std::memmove(begin_, in_, len);
   56|      0|    in_ = begin_;
   57|      0|    out_ = in_ + len;
   58|      0|    last_ = out_ + n;
   59|      0|    return {out_, n};
   60|      0|}

_ZN5boost5beast9read_sizeINS0_13static_bufferILm1536EEEEEmRT_m:
   63|  30.5k|{
   64|  30.5k|    return detail::read_size(buffer, max_size,
   65|  30.5k|        detail::has_read_size_helper<DynamicBuffer>{});
   66|  30.5k|}
_ZN5boost5beast6detail9read_sizeINS0_13static_bufferILm1536EEEEEmRT_mNSt3__117integral_constantIbLb0EEE:
   45|  30.5k|{
   46|  30.5k|    static_assert(
   47|  30.5k|        net::is_dynamic_buffer<DynamicBuffer>::value,
   48|  30.5k|        "DynamicBuffer type requirements not met");
   49|  30.5k|    auto const size = buffer.size();
   50|  30.5k|    auto const limit = buffer.max_size() - size;
   51|  30.5k|    BOOST_ASSERT(size <= buffer.max_size());
  ------------------
  |  |   66|  30.5k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   52|  30.5k|    return std::min<std::size_t>(
   53|  30.5k|        std::max<std::size_t>(512, buffer.capacity() - size),
   54|  30.5k|        std::min<std::size_t>(max_size, limit));
   55|  30.5k|}

_ZN5boost5beast13saved_handlerD2Ev:
   21|  57.5k|{
   22|  57.5k|    if(p_)
  ------------------
  |  Branch (22:8): [True: 0, False: 57.5k]
  ------------------
   23|      0|        p_->destroy();
   24|  57.5k|}

_ZN5boost5beast18static_buffer_baseC2EPvm:
   24|  8.21k|    : begin_(static_cast<char*>(p))
   25|  8.21k|    , capacity_(size)
   26|  8.21k|{
   27|  8.21k|}
_ZN5boost5beast18static_buffer_base7consumeEm:
  110|  1.99M|{
  111|  1.99M|    if(n < in_size_)
  ------------------
  |  Branch (111:8): [True: 1.96M, False: 24.5k]
  ------------------
  112|  1.96M|    {
  113|  1.96M|        in_off_ = (in_off_ + n) % capacity_;
  114|  1.96M|        in_size_ -= n;
  115|  1.96M|    }
  116|  24.5k|    else
  117|  24.5k|    {
  118|       |        // rewind the offset, so the next call to prepare
  119|       |        // can have a longer contiguous segment. this helps
  120|       |        // algorithms optimized for larger buffers.
  121|  24.5k|        in_off_ = 0;
  122|  24.5k|        in_size_ = 0;
  123|  24.5k|    }
  124|  1.99M|}
_ZN5boost5beast18static_buffer_base7prepareEm:
   78|  38.7k|{
   79|  38.7k|    using net::mutable_buffer;
   80|  38.7k|    if(n > capacity_ - in_size_)
  ------------------
  |  Branch (80:8): [True: 0, False: 38.7k]
  ------------------
   81|      0|        BOOST_THROW_EXCEPTION(std::length_error{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
   82|  38.7k|            "static_buffer overflow"});
   83|  38.7k|    out_size_ = n;
   84|  38.7k|    auto const out_off =
   85|  38.7k|        (in_off_ + in_size_) % capacity_;
   86|  38.7k|    if(out_off + out_size_ <= capacity_ )
  ------------------
  |  Branch (86:8): [True: 33.8k, False: 4.93k]
  ------------------
   87|  33.8k|        return {
   88|  33.8k|            net::mutable_buffer{
   89|  33.8k|                begin_ + out_off, out_size_},
   90|  33.8k|            net::mutable_buffer{
   91|  33.8k|                begin_, 0}};
   92|  4.93k|    return {
   93|  4.93k|        net::mutable_buffer{
   94|  4.93k|            begin_ + out_off, capacity_ - out_off},
   95|  4.93k|        net::mutable_buffer{
   96|  4.93k|            begin_, out_size_ - (capacity_ - out_off)}};
   97|  38.7k|}
_ZN5boost5beast18static_buffer_base6commitEm:
  102|  37.9k|{
  103|  37.9k|    in_size_ += (std::min)(n, out_size_);
  104|  37.9k|    out_size_ = 0;
  105|  37.9k|}
_ZN5boost5beast18static_buffer_base4dataEv:
   60|  3.93M|{
   61|  3.93M|    if(in_off_ + in_size_ <= capacity_)
  ------------------
  |  Branch (61:8): [True: 3.76M, False: 166k]
  ------------------
   62|  3.76M|        return {
   63|  3.76M|            net::mutable_buffer{
   64|  3.76M|                begin_ + in_off_, in_size_},
   65|  3.76M|            net::mutable_buffer{
   66|  3.76M|                begin_, 0}};
   67|   166k|    return {
   68|   166k|        net::mutable_buffer{
   69|   166k|            begin_ + in_off_, capacity_ - in_off_},
   70|   166k|        net::mutable_buffer{
   71|   166k|            begin_, in_size_ - (capacity_ - in_off_)}};
   72|  3.93M|}

_ZNK5boost5beast5ilessclENS_4core17basic_string_viewIcEES4_:
   55|   329k|{
   56|   329k|    using std::begin;
   57|   329k|    using std::end;
   58|   329k|    return std::lexicographical_compare(
   59|   329k|        begin(lhs), end(lhs), begin(rhs), end(rhs),
   60|   329k|        [](char c1, char c2)
   61|   329k|        {
   62|   329k|            return detail::ascii_tolower(c1) < detail::ascii_tolower(c2);
   63|   329k|        }
   64|   329k|    );
   65|   329k|}
_ZZNK5boost5beast5ilessclENS_4core17basic_string_viewIcEES4_ENKUlccE_clEcc:
   61|  3.75M|        {
   62|  3.75M|            return detail::ascii_tolower(c1) < detail::ascii_tolower(c2);
   63|  3.75M|        }
_ZN5boost5beast7iequalsENS_4core17basic_string_viewIcEES3_:
   25|   113k|{
   26|   113k|    if(lhs.size() != rhs.size())
  ------------------
  |  Branch (26:8): [True: 56.4k, False: 57.0k]
  ------------------
   27|  56.4k|        return false;
   28|  57.0k|    auto n  = lhs.size();
   29|  57.0k|    auto p1 = lhs.data();
   30|  57.0k|    auto p2 = rhs.data();
   31|       |    // fast loop
   32|   327k|    while(n--)
  ------------------
  |  Branch (32:11): [True: 291k, False: 35.9k]
  ------------------
   33|   291k|    {
   34|   291k|        if(*p1++ != *p2++)
  ------------------
  |  Branch (34:12): [True: 21.0k, False: 270k]
  ------------------
   35|  21.0k|            goto slow;
   36|   291k|    }
   37|  35.9k|    return true;
   38|  21.0k|slow:
   39|  21.0k|    --p1;
   40|  21.0k|    --p2;
   41|  21.0k|    do
   42|   126k|    {
   43|   126k|        if( detail::ascii_tolower(*p1++) !=
  ------------------
  |  Branch (43:13): [True: 5.94k, False: 120k]
  ------------------
   44|   126k|            detail::ascii_tolower(*p2++))
   45|  5.94k|            return false;
   46|   126k|    }
   47|   120k|    while(n--);
  ------------------
  |  Branch (47:11): [True: 105k, False: 15.1k]
  ------------------
   48|  15.1k|    return true;
   49|  21.0k|}

_ZN5boost5beast13saved_handlerC2Ev:
   40|  57.5k|    saved_handler() = default;

_ZN5boost5beast13static_bufferILm1536EEC2Ev:
  246|  8.21k|        : static_buffer_base(buf_, N)
  247|  8.21k|    {
  248|  8.21k|    }
_ZNK5boost5beast13static_bufferILm1536EE8max_sizeEv:
  273|  94.9k|    {
  274|  94.9k|        return N;
  275|  94.9k|    }
_ZNK5boost5beast18static_buffer_base4sizeEv:
  108|  1.84M|    {
  109|  1.84M|        return in_size_;
  110|  1.84M|    }
_ZNK5boost5beast13static_bufferILm1536EE8capacityEv:
  280|  30.5k|    {
  281|  30.5k|        return N;
  282|  30.5k|    }

_ZN5boost5beast16to_static_stringImEEDTclsr5boost14static_stringsE16to_static_stringfp_EET_:
   29|    502|{
   30|    502|    return boost::static_strings::to_static_string(x);
   31|    502|}

_ZN5boost5beast14to_string_viewINS_14static_strings19basic_static_stringILm20EcNSt3__111char_traitsIcEEEEEENS_4core17basic_string_viewIcEERKT_:
   30|    502|{
   31|    502|    return string_view(s.data(), s.size());
   32|    502|}
_ZN5boost5beast14to_string_viewINS_14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEEEEENS_4core17basic_string_viewIcEERKT_:
   30|  4.64k|{
   31|  4.64k|    return string_view(s.data(), s.size());
   32|  4.64k|}
_ZN5boost5beast14to_string_viewINS_14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEEEEENS_4core17basic_string_viewIcEERKT_:
   30|  2.56k|{
   31|  2.56k|    return string_view(s.data(), s.size());
   32|  2.56k|}

_ZN5boost5beast4http12basic_parserILb1EEC2Ev:
  138|  8.21k|    basic_parser() = default;
_ZN5boost5beast4http12basic_parserILb1EE18default_body_limitENSt3__117integral_constantIbLb1EEE:
  116|  8.21k|    {
  117|       |        // limit for requests
  118|  8.21k|        return 1 * 1024 * 1024; // 1MB
  119|  8.21k|    }
_ZN5boost5beast4http12basic_parserILb1EED2Ev:
  158|  8.21k|    virtual ~basic_parser() = default;
_ZN5boost5beast4http12basic_parserILb1EE5eagerEb:
  347|  8.21k|    {
  348|  8.21k|        if(v)
  ------------------
  |  Branch (348:12): [True: 8.21k, False: 0]
  ------------------
  349|  8.21k|            f_ |= flagEager;
  350|      0|        else
  351|      0|            f_ &= ~flagEager;
  352|  8.21k|    }
_ZNK5boost5beast4http12basic_parserILb1EE7is_doneEv:
  187|  44.0k|    {
  188|  44.0k|        return state_ == state::complete;
  189|  44.0k|    }
_ZNK5boost5beast4http12basic_parserILb1EE14is_header_doneEv:
  195|    561|    {
  196|    561|        return state_ > state::fields;
  197|    561|    }
_ZNK5boost5beast4http12basic_parserILb1EE5eagerEv:
  325|    596|    {
  326|    596|        return (f_ & flagEager) != 0;
  327|    596|    }
_ZNK5boost5beast4http12basic_parserILb1EE8got_someEv:
  169|  4.71k|    {
  170|  4.71k|        return state_ != state::nothing_yet;
  171|  4.71k|    }

_ZNK5boost5beast4http10chunk_crlf5beginEv:
   63|  92.6k|    {
   64|  92.6k|        static net::const_buffer const cb{"\r\n", 2};
   65|  92.6k|        return &cb;
   66|  92.6k|    }
_ZNK5boost5beast4http10chunk_crlf3endEv:
   71|  61.7k|    {
   72|  61.7k|        return begin() + 1;
   73|  61.7k|    }

_ZN5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEEC2ENS_4core17basic_string_viewIcEE:
  134|  6.33k|        : s_(s)
  135|  6.33k|    {
  136|  6.33k|    }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iterator5errorEv:
  102|  18.4k|        {
  103|  18.4k|            return error_;
  104|  18.4k|        }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE5beginEv:
  157|  12.6k|{
  158|  12.6k|    return const_iterator{*this, false};
  159|  12.6k|}
_ZN5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratorC2ERKS5_b:
  111|  25.2k|            : list_(&list)
  112|  25.2k|            , it_(at_end ? nullptr :
  ------------------
  |  Branch (112:19): [True: 12.6k, False: 12.6k]
  ------------------
  113|  25.2k|                list.s_.data())
  114|  25.2k|        {
  115|  25.2k|            if(! at_end)
  ------------------
  |  Branch (115:16): [True: 12.6k, False: 12.6k]
  ------------------
  116|  12.6k|                increment();
  117|  25.2k|        }
_ZN5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iterator9incrementEv:
  121|  36.5k|        {
  122|  36.5k|            if(! this->get()(
  ------------------
  |  Branch (122:16): [True: 35, False: 36.4k]
  ------------------
  123|  36.5k|                    v_, it_, list_->s_))
  124|     35|            {
  125|     35|                it_ = nullptr;
  126|     35|                error_ = true;
  127|     35|            }
  128|  36.5k|        }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE3endEv:
  167|  12.6k|{
  168|  12.6k|    return const_iterator{*this, true};
  169|  12.6k|}
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratorneERKS6_:
   75|  30.4k|        {
   76|  30.4k|            return ! (*this == other);
   77|  30.4k|        }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratordeEv:
   81|  11.7k|        {
   82|  11.7k|            return v_;
   83|  11.7k|        }
_ZN5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratorppEv:
   87|  23.8k|        {
   88|  23.8k|            increment();
   89|  23.8k|            return *this;
   90|  23.8k|        }
_ZNK5boost5beast4http6detail17basic_parsed_listINS2_21opt_token_list_policyEE14const_iteratoreqERKS6_:
   66|  42.4k|        {
   67|  42.4k|            return
   68|  42.4k|                other.list_ == list_ &&
  ------------------
  |  Branch (68:17): [True: 42.4k, False: 0]
  ------------------
   69|  42.4k|                other.it_ == it_;
  ------------------
  |  Branch (69:17): [True: 12.6k, False: 29.8k]
  ------------------
   70|  42.4k|        }

_ZN5boost5beast4http6detail17basic_parser_base11make_stringEPKcS5_:
   79|   146k|    {
   80|   146k|        return {first, static_cast<
   81|   146k|            std::size_t>(last - first)};
   82|   146k|    }
_ZN5boost5beast4http6detail17basic_parser_base8is_digitEc:
   54|  16.1k|    {
   55|  16.1k|        return static_cast<unsigned char>(c-'0') < 10;
   56|  16.1k|    }
_ZN5boost5beast4http6detail17basic_parser_base8is_printEc:
   61|  1.26M|    {
   62|  1.26M|        return static_cast<unsigned char>(c-32) < 95;
   63|  1.26M|    }

_ZN5boost5beast4http6detail17basic_parser_base12parse_methodERPKcS5_RNS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  275|  8.21k|{
  276|       |    // parse token SP
  277|  8.21k|    auto const first = it;
  278|  58.4k|    for(;; ++it)
  279|  66.7k|    {
  280|  66.7k|        if(it + 1 > last)
  ------------------
  |  Branch (280:12): [True: 10, False: 66.7k]
  ------------------
  281|     10|        {
  282|     10|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     10|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     10|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     10|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     10|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     10|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  283|     10|            return;
  284|     10|        }
  285|  66.7k|        if(! detail::is_token_char(*it))
  ------------------
  |  Branch (285:12): [True: 8.20k, False: 58.4k]
  ------------------
  286|  8.20k|            break;
  287|  66.7k|    }
  288|  8.20k|    if(it + 1 > last)
  ------------------
  |  Branch (288:8): [True: 0, False: 8.20k]
  ------------------
  289|      0|    {
  290|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  291|      0|        return;
  292|      0|    }
  293|  8.20k|    if(*it != ' ')
  ------------------
  |  Branch (293:8): [True: 20, False: 8.18k]
  ------------------
  294|     20|    {
  295|     20|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_method);
  ------------------
  |  |  111|     20|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     20|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     20|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     20|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     20|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  296|     20|        return;
  297|     20|    }
  298|  8.18k|    if(it == first)
  ------------------
  |  Branch (298:8): [True: 1, False: 8.18k]
  ------------------
  299|      1|    {
  300|       |        // cannot be empty
  301|      1|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_method);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  302|      1|        return;
  303|      1|    }
  304|  8.18k|    result = make_string(first, it++);
  305|  8.18k|}
_ZN5boost5beast4http6detail17basic_parser_base12parse_targetERPKcS5_RNS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  312|  8.18k|{
  313|       |    // parse target SP
  314|  8.18k|    auto const first = it;
  315|  41.7k|    for(;; ++it)
  316|  49.9k|    {
  317|  49.9k|        if(it + 1 > last)
  ------------------
  |  Branch (317:12): [True: 25, False: 49.8k]
  ------------------
  318|     25|        {
  319|     25|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     25|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     25|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     25|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     25|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     25|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  320|     25|            return;
  321|     25|        }
  322|  49.8k|        if(! is_pathchar(*it))
  ------------------
  |  Branch (322:12): [True: 8.16k, False: 41.7k]
  ------------------
  323|  8.16k|            break;
  324|  49.8k|    }
  325|  8.16k|    if(it + 1 > last)
  ------------------
  |  Branch (325:8): [True: 0, False: 8.16k]
  ------------------
  326|      0|    {
  327|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  328|      0|        return;
  329|      0|    }
  330|  8.16k|    if(*it != ' ')
  ------------------
  |  Branch (330:8): [True: 12, False: 8.14k]
  ------------------
  331|     12|    {
  332|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_target);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  333|     12|        return;
  334|     12|    }
  335|  8.14k|    if(it == first)
  ------------------
  |  Branch (335:8): [True: 1, False: 8.14k]
  ------------------
  336|      1|    {
  337|       |        // cannot be empty
  338|      1|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_target);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  339|      1|        return;
  340|      1|    }
  341|  8.14k|    result = make_string(first, it++);
  342|  8.14k|}
_ZN5boost5beast4http6detail17basic_parser_base11is_pathcharEc:
   52|  49.8k|{
   53|       |    // VFALCO This looks the same as the one below...
   54|       |
   55|       |    // TEXT = <any OCTET except CTLs, and excluding LWS>
   56|  49.8k|    static bool constexpr tab[256] = {
   57|  49.8k|        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //   0
   58|  49.8k|        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //  16
   59|  49.8k|        0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  32
   60|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  48
   61|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  64
   62|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  80
   63|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, //  96
   64|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, // 112
   65|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 128
   66|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 144
   67|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 160
   68|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 176
   69|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 192
   70|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 208
   71|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 224
   72|  49.8k|        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1  // 240
   73|  49.8k|    };
   74|  49.8k|    return tab[static_cast<unsigned char>(c)];
   75|  49.8k|}
_ZN5boost5beast4http6detail17basic_parser_base13parse_versionERPKcS5_RiRNS_6system10error_codeE:
  349|  8.14k|{
  350|  8.14k|    if(it + 8 > last)
  ------------------
  |  Branch (350:8): [True: 9, False: 8.13k]
  ------------------
  351|      9|    {
  352|      9|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      9|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      9|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      9|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      9|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      9|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  353|      9|        return;
  354|      9|    }
  355|  8.13k|    if(*it++ != 'H')
  ------------------
  |  Branch (355:8): [True: 12, False: 8.12k]
  ------------------
  356|     12|    {
  357|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  358|     12|        return;
  359|     12|    }
  360|  8.12k|    if(*it++ != 'T')
  ------------------
  |  Branch (360:8): [True: 12, False: 8.11k]
  ------------------
  361|     12|    {
  362|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  363|     12|        return;
  364|     12|    }
  365|  8.11k|    if(*it++ != 'T')
  ------------------
  |  Branch (365:8): [True: 12, False: 8.10k]
  ------------------
  366|     12|    {
  367|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|     12|        return;
  369|     12|    }
  370|  8.10k|    if(*it++ != 'P')
  ------------------
  |  Branch (370:8): [True: 12, False: 8.09k]
  ------------------
  371|     12|    {
  372|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  373|     12|        return;
  374|     12|    }
  375|  8.09k|    if(*it++ != '/')
  ------------------
  |  Branch (375:8): [True: 11, False: 8.07k]
  ------------------
  376|     11|    {
  377|     11|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     11|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     11|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     11|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     11|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     11|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  378|     11|        return;
  379|     11|    }
  380|  8.07k|    if(! is_digit(*it))
  ------------------
  |  Branch (380:8): [True: 5, False: 8.07k]
  ------------------
  381|      5|    {
  382|      5|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|      5|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      5|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      5|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      5|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      5|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  383|      5|        return;
  384|      5|    }
  385|  8.07k|    result = 10 * (*it++ - '0');
  386|  8.07k|    if(*it++ != '.')
  ------------------
  |  Branch (386:8): [True: 12, False: 8.06k]
  ------------------
  387|     12|    {
  388|     12|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     12|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     12|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     12|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     12|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     12|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  389|     12|        return;
  390|     12|    }
  391|  8.06k|    if(! is_digit(*it))
  ------------------
  |  Branch (391:8): [True: 6, False: 8.05k]
  ------------------
  392|      6|    {
  393|      6|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|      6|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      6|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      6|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      6|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      6|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  394|      6|        return;
  395|      6|    }
  396|  8.05k|    result += *it++ - '0';
  397|  8.05k|}
_ZN5boost5beast4http6detail17basic_parser_base11parse_fieldERPKcS5_RNS_4core17basic_string_viewIcEESA_RNS0_6detail11char_bufferILm4096EEERNS_6system10error_codeE:
  466|  66.3k|{
  467|       |/*  header-field    = field-name ":" OWS field-value OWS
  468|       |
  469|       |    field-name      = token
  470|       |    field-value     = *( field-content / obs-fold )
  471|       |    field-content   = field-vchar [ 1*( SP / HTAB ) field-vchar ]
  472|       |    field-vchar     = VCHAR / obs-text
  473|       |
  474|       |    obs-fold        = CRLF 1*( SP / HTAB )
  475|       |                    ; obsolete line folding
  476|       |                    ; see Section 3.2.4
  477|       |
  478|       |    token           = 1*<any CHAR except CTLs or separators>
  479|       |    CHAR            = <any US-ASCII character (octets 0 - 127)>
  480|       |    sep             = "(" | ")" | "<" | ">" | "@"
  481|       |                    | "," | ";" | ":" | "\" | <">
  482|       |                    | "/" | "[" | "]" | "?" | "="
  483|       |                    | "{" | "}" | SP | HT
  484|       |*/
  485|  66.3k|    static char const* is_token =
  486|  66.3k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
  487|  66.3k|        "\0\1\0\1\1\1\1\1\0\0\1\1\0\1\1\0\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0"
  488|  66.3k|        "\0\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\1\1"
  489|  66.3k|        "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\1\0\1\0"
  490|  66.3k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
  491|  66.3k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
  492|  66.3k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
  493|  66.3k|        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
  494|       |
  495|       |    // name
  496|  66.3k|    BOOST_ALIGNMENT(16) static const char ranges1[] =
  497|  66.3k|        "\x00 "  /* control chars and up to SP */
  498|  66.3k|        "\"\""   /* 0x22 */
  499|  66.3k|        "()"     /* 0x28,0x29 */
  500|  66.3k|        ",,"     /* 0x2c */
  501|  66.3k|        "//"     /* 0x2f */
  502|  66.3k|        ":@"     /* 0x3a-0x40 */
  503|  66.3k|        "[]"     /* 0x5b-0x5d */
  504|  66.3k|        "{\377"; /* 0x7b-0xff */
  505|  66.3k|    auto first = p;
  506|  66.3k|    bool found;
  507|  66.3k|    std::tie(p, found) = find_fast(
  508|  66.3k|        p, last, ranges1, sizeof(ranges1)-1);
  509|  66.3k|    if(! found && p >= last)
  ------------------
  |  Branch (509:8): [True: 66.3k, False: 0]
  |  Branch (509:19): [True: 0, False: 66.3k]
  ------------------
  510|      0|    {
  511|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  512|      0|        return;
  513|      0|    }
  514|  66.3k|    for(;;)
  515|   712k|    {
  516|   712k|        if(*p == ':')
  ------------------
  |  Branch (516:12): [True: 66.1k, False: 646k]
  ------------------
  517|  66.1k|            break;
  518|   646k|        if(! is_token[static_cast<
  ------------------
  |  Branch (518:12): [True: 58, False: 646k]
  ------------------
  519|   646k|            unsigned char>(*p)])
  520|     58|        {
  521|     58|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_field);
  ------------------
  |  |  111|     58|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     58|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     58|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     58|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     58|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  522|     58|            return;
  523|     58|        }
  524|   646k|        ++p;
  525|   646k|        if(p >= last)
  ------------------
  |  Branch (525:12): [True: 125, False: 646k]
  ------------------
  526|    125|        {
  527|    125|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    125|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    125|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    125|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    125|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    125|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  528|    125|            return;
  529|    125|        }
  530|   646k|    }
  531|  66.1k|    if(p == first)
  ------------------
  |  Branch (531:8): [True: 4, False: 66.1k]
  ------------------
  532|      4|    {
  533|       |        // empty name
  534|      4|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_field);
  ------------------
  |  |  111|      4|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      4|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      4|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      4|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      4|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  535|      4|        return;
  536|      4|    }
  537|  66.1k|    name = make_string(first, p);
  538|  66.1k|    ++p; // eat ':'
  539|  66.1k|    char const* token_last = nullptr;
  540|  66.1k|    for(;;)
  541|  66.9k|    {
  542|       |        // eat leading ' ' and '\t'
  543|  66.9k|        for(;;++p)
  544|   103k|        {
  545|   103k|            if(p + 1 > last)
  ------------------
  |  Branch (545:16): [True: 80, False: 103k]
  ------------------
  546|     80|            {
  547|     80|                BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     80|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     80|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     80|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     80|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     80|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  548|     80|                return;
  549|     80|            }
  550|   103k|            if(! (*p == ' ' || *p == '\t'))
  ------------------
  |  Branch (550:19): [True: 9.95k, False: 93.9k]
  |  Branch (550:32): [True: 27.0k, False: 66.8k]
  ------------------
  551|  66.8k|                break;
  552|   103k|        }
  553|       |        // parse to CRLF
  554|  66.8k|        first = p;
  555|  66.8k|        p = parse_token_to_eol(p, last, token_last, ec);
  556|  66.8k|        if(ec)
  ------------------
  |  Branch (556:12): [True: 248, False: 66.6k]
  ------------------
  557|    248|            return;
  558|  66.6k|        if(! p)
  ------------------
  |  Branch (558:12): [True: 24, False: 66.5k]
  ------------------
  559|     24|        {
  560|     24|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_value);
  ------------------
  |  |  111|     24|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     24|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     24|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     24|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     24|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  561|     24|            return;
  562|     24|        }
  563|       |        // Look 1 char past the CRLF to handle obs-fold.
  564|  66.5k|        if(p + 1 > last)
  ------------------
  |  Branch (564:12): [True: 36, False: 66.5k]
  ------------------
  565|     36|        {
  566|     36|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     36|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     36|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     36|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     36|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     36|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  567|     36|            return;
  568|     36|        }
  569|  66.5k|        token_last =
  570|  66.5k|            trim_back(token_last, first);
  571|  66.5k|        if(*p != ' ' && *p != '\t')
  ------------------
  |  Branch (571:12): [True: 64.9k, False: 1.56k]
  |  Branch (571:25): [True: 64.3k, False: 666]
  ------------------
  572|  64.3k|        {
  573|  64.3k|            value = make_string(first, token_last);
  574|  64.3k|            return;
  575|  64.3k|        }
  576|  2.23k|        ++p;
  577|  2.23k|        if(token_last != first)
  ------------------
  |  Branch (577:12): [True: 1.47k, False: 754]
  ------------------
  578|  1.47k|            break;
  579|  2.23k|    }
  580|  1.47k|    buf.clear();
  581|  1.47k|    if (!buf.try_append(first, token_last))
  ------------------
  |  Branch (581:9): [True: 0, False: 1.47k]
  ------------------
  582|      0|    {
  583|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::header_limit);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  584|      0|        return;
  585|      0|    }
  586|       |
  587|  1.47k|    BOOST_ASSERT(! buf.empty());
  ------------------
  |  |   66|  1.47k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  588|  1.47k|    for(;;)
  589|  17.4k|    {
  590|       |        // eat leading ' ' and '\t'
  591|  28.9k|        for(;;++p)
  592|  46.4k|        {
  593|  46.4k|            if(p + 1 > last)
  ------------------
  |  Branch (593:16): [True: 151, False: 46.2k]
  ------------------
  594|    151|            {
  595|    151|                BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    151|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    151|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    151|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    151|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    151|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  596|    151|                return;
  597|    151|            }
  598|  46.2k|            if(! (*p == ' ' || *p == '\t'))
  ------------------
  |  Branch (598:19): [True: 25.7k, False: 20.4k]
  |  Branch (598:32): [True: 3.14k, False: 17.3k]
  ------------------
  599|  17.3k|                break;
  600|  46.2k|        }
  601|       |        // parse to CRLF
  602|  17.3k|        first = p;
  603|  17.3k|        p = parse_token_to_eol(p, last, token_last, ec);
  604|  17.3k|        if(ec)
  ------------------
  |  Branch (604:12): [True: 190, False: 17.1k]
  ------------------
  605|    190|            return;
  606|  17.1k|        if(! p)
  ------------------
  |  Branch (606:12): [True: 16, False: 17.1k]
  ------------------
  607|     16|        {
  608|     16|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_value);
  ------------------
  |  |  111|     16|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     16|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     16|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     16|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     16|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  609|     16|            return;
  610|     16|        }
  611|       |        // Look 1 char past the CRLF to handle obs-fold.
  612|  17.1k|        if(p + 1 > last)
  ------------------
  |  Branch (612:12): [True: 73, False: 17.0k]
  ------------------
  613|     73|        {
  614|     73|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     73|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     73|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     73|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     73|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     73|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  615|     73|            return;
  616|     73|        }
  617|  17.0k|        token_last = trim_back(token_last, first);
  618|  17.0k|        if(first != token_last)
  ------------------
  |  Branch (618:12): [True: 13.0k, False: 3.96k]
  ------------------
  619|  13.0k|        {
  620|  13.0k|            if (!buf.try_push_back(' ') ||
  ------------------
  |  Branch (620:17): [True: 0, False: 13.0k]
  ------------------
  621|  13.0k|                !buf.try_append(first, token_last))
  ------------------
  |  Branch (621:17): [True: 0, False: 13.0k]
  ------------------
  622|      0|            {
  623|      0|                BOOST_BEAST_ASSIGN_EC(ec, error::header_limit);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  624|      0|                return;
  625|      0|            }
  626|  13.0k|        }
  627|  17.0k|        if(*p != ' ' && *p != '\t')
  ------------------
  |  Branch (627:12): [True: 3.89k, False: 13.1k]
  |  Branch (627:25): [True: 1.04k, False: 2.85k]
  ------------------
  628|  1.04k|        {
  629|  1.04k|            value = {buf.data(), buf.size()};
  630|  1.04k|            return;
  631|  1.04k|        }
  632|  15.9k|        ++p;
  633|  15.9k|    }
  634|  1.47k|}
_ZN5boost5beast4http6detail17basic_parser_base9find_fastEPKcS5_S5_m:
  114|  66.3k|{
  115|  66.3k|    bool found = false;
  116|  66.3k|    boost::ignore_unused(buf_end, ranges, ranges_size);
  117|  66.3k|    return {buf, found};
  118|  66.3k|}
_ZN5boost5beast4http6detail17basic_parser_base18parse_token_to_eolEPKcS5_RS5_RNS_6system10error_codeE:
  213|  84.1k|{
  214|  1.18M|    for(;; ++p)
  215|  1.26M|    {
  216|  1.26M|        if(p >= last)
  ------------------
  |  Branch (216:12): [True: 356, False: 1.26M]
  ------------------
  217|    356|        {
  218|    356|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|    356|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    356|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    356|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    356|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    356|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  219|    356|            return p;
  220|    356|        }
  221|  1.26M|        if(BOOST_UNLIKELY(! is_print(*p)))
  ------------------
  |  |   75|  1.26M|#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
  |  |  ------------------
  |  |  |  Branch (75:27): [True: 509k, False: 755k]
  |  |  ------------------
  ------------------
  222|   509k|            if((BOOST_LIKELY(static_cast<
  ------------------
  |  |   74|  1.01M|#define BOOST_LIKELY(x) __builtin_expect(x, 1)
  |  |  ------------------
  |  |  |  Branch (74:25): [True: 104k, False: 405k]
  |  |  ------------------
  ------------------
  223|   509k|                    unsigned char>(*p) < '\040') &&
  224|   509k|                BOOST_LIKELY(*p != 9)) ||
  ------------------
  |  |   74|   104k|#define BOOST_LIKELY(x) __builtin_expect(x, 1)
  |  |  ------------------
  |  |  |  Branch (74:25): [True: 83.8k, False: 20.8k]
  |  |  ------------------
  ------------------
  225|   509k|                BOOST_UNLIKELY(*p == 127))
  ------------------
  |  |   75|   426k|#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
  |  |  ------------------
  |  |  |  Branch (75:27): [True: 2, False: 426k]
  |  |  ------------------
  ------------------
  226|  83.8k|                goto found_control;
  227|  1.26M|    }
  228|  83.8k|found_control:
  229|  83.8k|    if(BOOST_LIKELY(*p == '\r'))
  ------------------
  |  |   74|  83.8k|#define BOOST_LIKELY(x) __builtin_expect(x, 1)
  |  |  ------------------
  |  |  |  Branch (74:25): [True: 83.7k, False: 40]
  |  |  ------------------
  ------------------
  230|  83.7k|    {
  231|  83.7k|        if(++p >= last)
  ------------------
  |  Branch (231:12): [True: 72, False: 83.7k]
  ------------------
  232|     72|        {
  233|     72|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     72|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     72|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     72|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     72|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     72|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  234|     72|            return last;
  235|     72|        }
  236|  83.7k|        if(*p++ != '\n')
  ------------------
  |  Branch (236:12): [True: 10, False: 83.7k]
  ------------------
  237|     10|        {
  238|     10|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_line_ending);
  ------------------
  |  |  111|     10|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     10|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     10|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     10|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     10|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  239|     10|            return last;
  240|     10|        }
  241|  83.7k|        token_last = p - 2;
  242|  83.7k|    }
  243|       |#if 0
  244|       |    // VFALCO This allows `\n` by itself
  245|       |    //        to terminate a line
  246|       |    else if(*p == '\n')
  247|       |    {
  248|       |        token_last = p;
  249|       |        ++p;
  250|       |    }
  251|       |#endif
  252|     40|    else
  253|     40|    {
  254|       |        // invalid character
  255|     40|        return nullptr;
  256|     40|    }
  257|  83.7k|    return p;
  258|  83.8k|}
_ZN5boost5beast4http6detail17basic_parser_base9trim_backEPKcS5_:
   38|  83.6k|{
   39|  92.6k|    while(it != first)
  ------------------
  |  Branch (39:11): [True: 55.1k, False: 37.4k]
  ------------------
   40|  55.1k|    {
   41|  55.1k|        auto const c = it[-1];
   42|  55.1k|        if(c != ' ' && c != '\t')
  ------------------
  |  Branch (42:12): [True: 48.5k, False: 6.62k]
  |  Branch (42:24): [True: 46.1k, False: 2.37k]
  ------------------
   43|  46.1k|            break;
   44|  8.99k|        --it;
   45|  8.99k|    }
   46|  83.6k|    return it;
   47|  83.6k|}
_ZN5boost5beast4http6detail17basic_parser_base8find_eolEPKcS5_RNS_6system10error_codeE:
  126|    581|{
  127|    581|    for(;;)
  128|  15.2k|    {
  129|  15.2k|        if(it == last)
  ------------------
  |  Branch (129:12): [True: 13, False: 15.2k]
  ------------------
  130|     13|        {
  131|     13|            ec = {};
  132|     13|            return nullptr;
  133|     13|        }
  134|  15.2k|        if(*it == '\r')
  ------------------
  |  Branch (134:12): [True: 568, False: 14.6k]
  ------------------
  135|    568|        {
  136|    568|            if(++it == last)
  ------------------
  |  Branch (136:16): [True: 3, False: 565]
  ------------------
  137|      3|            {
  138|      3|                ec = {};
  139|      3|                return nullptr;
  140|      3|            }
  141|    565|            if(*it != '\n')
  ------------------
  |  Branch (141:16): [True: 9, False: 556]
  ------------------
  142|      9|            {
  143|      9|                BOOST_BEAST_ASSIGN_EC(ec, error::bad_line_ending);
  ------------------
  |  |  111|      9|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      9|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      9|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      9|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      9|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  144|      9|                return nullptr;
  145|      9|            }
  146|    556|            ec = {};
  147|    556|            return ++it;
  148|    565|        }
  149|       |        // VFALCO Should we handle the legacy case
  150|       |        // for lines terminated with a single '\n'?
  151|  14.6k|        ++it;
  152|  14.6k|    }
  153|    581|}
_ZN5boost5beast4http6detail17basic_parser_base9parse_hexERPKcRm:
  185|    556|{
  186|    556|    unsigned char d;
  187|    556|    if(! unhex(d, *it))
  ------------------
  |  Branch (187:8): [True: 1, False: 555]
  ------------------
  188|      1|        return false;
  189|    555|    std::uint64_t tmp = 0;
  190|    555|    do
  191|  2.80k|    {
  192|  2.80k|        if(tmp > (std::numeric_limits<std::uint64_t>::max)() / 16)
  ------------------
  |  Branch (192:12): [True: 8, False: 2.79k]
  ------------------
  193|      8|            return false;
  194|  2.79k|        tmp *= 16;
  195|  2.79k|        if((std::numeric_limits<std::uint64_t>::max)() - tmp < d)
  ------------------
  |  Branch (195:12): [True: 0, False: 2.79k]
  ------------------
  196|      0|            return false;
  197|  2.79k|        tmp += d;
  198|  2.79k|    }
  199|  2.79k|    while(unhex(d, *++it));
  ------------------
  |  Branch (199:11): [True: 2.25k, False: 547]
  ------------------
  200|    547|    v = tmp;
  201|    547|    return true;
  202|    555|}
_ZN5boost5beast4http6detail17basic_parser_base5unhexERhc:
   80|  3.35k|{
   81|  3.35k|    static signed char constexpr tab[256] = {
   82|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //   0
   83|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  16
   84|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  32
   85|  3.35k|            0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1, //  48
   86|  3.35k|        -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  64
   87|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  80
   88|  3.35k|        -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, //  96
   89|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 112
   90|       |
   91|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 128
   92|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 144
   93|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 160
   94|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 176
   95|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 192
   96|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 208
   97|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 224
   98|  3.35k|        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1  // 240
   99|  3.35k|    };
  100|  3.35k|    d = static_cast<unsigned char>(
  101|  3.35k|        tab[static_cast<unsigned char>(c)]);
  102|  3.35k|    return d != static_cast<unsigned char>(-1);
  103|  3.35k|}
_ZN5boost5beast4http6detail17basic_parser_base22parse_chunk_extensionsERPKcS5_RNS_6system10error_codeE:
  643|    388|{
  644|       |/*
  645|       |    chunk-ext       = *( BWS  ";" BWS chunk-ext-name [ BWS  "=" BWS chunk-ext-val ] )
  646|       |    BWS             = *( SP / HTAB ) ; "Bad White Space"
  647|       |    chunk-ext-name  = token
  648|       |    chunk-ext-val   = token / quoted-string
  649|       |    token           = 1*tchar
  650|       |    quoted-string   = DQUOTE *( qdtext / quoted-pair ) DQUOTE
  651|       |    qdtext          = HTAB / SP / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text
  652|       |    quoted-pair     = "\" ( HTAB / SP / VCHAR / obs-text )
  653|       |    obs-text        = %x80-FF
  654|       |
  655|       |    https://www.rfc-editor.org/errata_search.php?rfc=7230&eid=4667
  656|       |*/
  657|  1.66k|loop:
  658|  1.66k|    if(it == last)
  ------------------
  |  Branch (658:8): [True: 3, False: 1.65k]
  ------------------
  659|      3|    {
  660|      3|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      3|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      3|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      3|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      3|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      3|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  661|      3|        return;
  662|      3|    }
  663|  1.65k|    if(*it != ' ' && *it != '\t' && *it != ';')
  ------------------
  |  Branch (663:8): [True: 1.19k, False: 464]
  |  Branch (663:22): [True: 952, False: 243]
  |  Branch (663:37): [True: 111, False: 841]
  ------------------
  664|    111|        return;
  665|       |    // BWS
  666|  1.54k|    if(*it == ' ' || *it == '\t')
  ------------------
  |  Branch (666:8): [True: 464, False: 1.08k]
  |  Branch (666:22): [True: 243, False: 841]
  ------------------
  667|    707|    {
  668|    707|        for(;;)
  669|  1.64k|        {
  670|  1.64k|            ++it;
  671|  1.64k|            if(it == last)
  ------------------
  |  Branch (671:16): [True: 7, False: 1.63k]
  ------------------
  672|      7|            {
  673|      7|                BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      7|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      7|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      7|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      7|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      7|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  674|      7|                return;
  675|      7|            }
  676|  1.63k|            if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (676:16): [True: 991, False: 648]
  |  Branch (676:30): [True: 700, False: 291]
  ------------------
  677|    700|                break;
  678|  1.63k|        }
  679|    707|    }
  680|       |    // ';'
  681|  1.54k|    if(*it != ';')
  ------------------
  |  Branch (681:8): [True: 47, False: 1.49k]
  ------------------
  682|     47|    {
  683|     47|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_chunk_extension);
  ------------------
  |  |  111|     47|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     47|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     47|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     47|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     47|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  684|     47|        return;
  685|     47|    }
  686|  2.23k|semi:
  687|  2.23k|    ++it; // skip ';'
  688|       |    // BWS
  689|  2.23k|    for(;;)
  690|  2.85k|    {
  691|  2.85k|        if(it == last)
  ------------------
  |  Branch (691:12): [True: 8, False: 2.84k]
  ------------------
  692|      8|        {
  693|      8|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      8|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      8|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      8|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      8|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      8|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  694|      8|            return;
  695|      8|        }
  696|  2.84k|        if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (696:12): [True: 2.49k, False: 351]
  |  Branch (696:26): [True: 2.22k, False: 272]
  ------------------
  697|  2.22k|            break;
  698|    623|        ++it;
  699|    623|    }
  700|       |    // chunk-ext-name
  701|  2.22k|    if(! detail::is_token_char(*it))
  ------------------
  |  Branch (701:8): [True: 39, False: 2.18k]
  ------------------
  702|     39|    {
  703|     39|        ec = error::bad_chunk_extension;
  704|     39|        return;
  705|     39|    }
  706|  2.18k|    for(;;)
  707|  4.25k|    {
  708|  4.25k|        ++it;
  709|  4.25k|        if(it == last)
  ------------------
  |  Branch (709:12): [True: 3, False: 4.25k]
  ------------------
  710|      3|        {
  711|      3|            ec = error::need_more;
  712|      3|            return;
  713|      3|        }
  714|  4.25k|        if(! detail::is_token_char(*it))
  ------------------
  |  Branch (714:12): [True: 2.18k, False: 2.07k]
  ------------------
  715|  2.18k|            break;
  716|  4.25k|    }
  717|       |    // BWS [ ";" / "=" ]
  718|  2.18k|    {
  719|  2.18k|        bool bws;
  720|  2.18k|        if(*it == ' ' || *it == '\t')
  ------------------
  |  Branch (720:12): [True: 279, False: 1.90k]
  |  Branch (720:26): [True: 223, False: 1.67k]
  ------------------
  721|    502|        {
  722|    502|            for(;;)
  723|  1.08k|            {
  724|  1.08k|                ++it;
  725|  1.08k|                if(it == last)
  ------------------
  |  Branch (725:20): [True: 7, False: 1.08k]
  ------------------
  726|      7|                {
  727|      7|                    ec = error::need_more;
  728|      7|                    return;
  729|      7|                }
  730|  1.08k|                if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (730:20): [True: 692, False: 390]
  |  Branch (730:34): [True: 495, False: 197]
  ------------------
  731|    495|                    break;
  732|  1.08k|            }
  733|    495|            bws = true;
  734|    495|        }
  735|  1.67k|        else
  736|  1.67k|        {
  737|  1.67k|            bws = false;
  738|  1.67k|        }
  739|  2.17k|        if(*it == ';')
  ------------------
  |  Branch (739:12): [True: 736, False: 1.43k]
  ------------------
  740|    736|            goto semi;
  741|  1.43k|        if(*it != '=')
  ------------------
  |  Branch (741:12): [True: 79, False: 1.35k]
  ------------------
  742|     79|        {
  743|     79|            if(bws)
  ------------------
  |  Branch (743:16): [True: 45, False: 34]
  ------------------
  744|     45|                ec = error::bad_chunk_extension;
  745|     79|            return;
  746|     79|        }
  747|  1.35k|        ++it; // skip '='
  748|  1.35k|    }
  749|       |    // BWS
  750|      0|    for(;;)
  751|  2.62k|    {
  752|  2.62k|        if(it == last)
  ------------------
  |  Branch (752:12): [True: 6, False: 2.61k]
  ------------------
  753|      6|        {
  754|      6|            ec = error::need_more;
  755|      6|            return;
  756|      6|        }
  757|  2.61k|        if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (757:12): [True: 1.66k, False: 950]
  |  Branch (757:26): [True: 1.35k, False: 314]
  ------------------
  758|  1.35k|            break;
  759|  1.26k|        ++it;
  760|  1.26k|    }
  761|       |    // chunk-ext-val
  762|  1.35k|    if(*it != '"')
  ------------------
  |  Branch (762:8): [True: 838, False: 514]
  ------------------
  763|    838|    {
  764|       |        // token
  765|    838|        if(! detail::is_token_char(*it))
  ------------------
  |  Branch (765:12): [True: 29, False: 809]
  ------------------
  766|     29|        {
  767|     29|            ec = error::bad_chunk_extension;
  768|     29|            return;
  769|     29|        }
  770|    809|        for(;;)
  771|  1.24k|        {
  772|  1.24k|            ++it;
  773|  1.24k|            if(it == last)
  ------------------
  |  Branch (773:16): [True: 3, False: 1.24k]
  ------------------
  774|      3|            {
  775|      3|                ec = error::need_more;
  776|      3|                return;
  777|      3|            }
  778|  1.24k|            if(! detail::is_token_char(*it))
  ------------------
  |  Branch (778:16): [True: 806, False: 434]
  ------------------
  779|    806|                break;
  780|  1.24k|        }
  781|    809|    }
  782|    514|    else
  783|    514|    {
  784|       |        // quoted-string
  785|    514|        for(;;)
  786|  40.2k|        {
  787|  40.2k|            ++it;
  788|  40.2k|            if(it == last)
  ------------------
  |  Branch (788:16): [True: 42, False: 40.2k]
  ------------------
  789|     42|            {
  790|     42|                ec = error::need_more;
  791|     42|                return;
  792|     42|            }
  793|  40.2k|            if(*it == '"')
  ------------------
  |  Branch (793:16): [True: 468, False: 39.7k]
  ------------------
  794|    468|                break;
  795|  39.7k|            if(*it == '\\')
  ------------------
  |  Branch (795:16): [True: 541, False: 39.1k]
  ------------------
  796|    541|            {
  797|    541|                ++it;
  798|    541|                if(it == last)
  ------------------
  |  Branch (798:20): [True: 4, False: 537]
  ------------------
  799|      4|                {
  800|      4|                    ec = error::need_more;
  801|      4|                    return;
  802|      4|                }
  803|    541|            }
  804|  39.7k|        }
  805|    468|        ++it;
  806|    468|    }
  807|  1.27k|    goto loop;
  808|  1.35k|}

_ZNK5boost5beast4http6detail10param_iter5emptyEv:
   75|  14.7k|    {
   76|  14.7k|        return first == it;
   77|  14.7k|    }

_ZN5boost5beast4http6detail4trimENS_4core17basic_string_viewIcEE:
  244|  87.5k|{
  245|  87.5k|    auto first = s.begin();
  246|  87.5k|    auto last = s.end();
  247|  87.5k|    skip_ows(first, last);
  248|  87.5k|    while(first != last)
  ------------------
  |  Branch (248:11): [True: 54.8k, False: 32.7k]
  ------------------
  249|  54.8k|    {
  250|  54.8k|        auto const c = *std::prev(last);
  251|  54.8k|        if(c != ' ' && c != '\t')
  ------------------
  |  Branch (251:12): [True: 54.8k, False: 0]
  |  Branch (251:24): [True: 54.8k, False: 0]
  ------------------
  252|  54.8k|            break;
  253|      0|        --last;
  254|      0|    }
  255|  87.5k|    if(first == last)
  ------------------
  |  Branch (255:8): [True: 32.7k, False: 54.8k]
  ------------------
  256|  32.7k|        return {};
  257|  54.8k|    return {&*first,
  258|  54.8k|        static_cast<std::size_t>(last - first)};
  259|  87.5k|}
_ZN5boost5beast4http6detail8skip_owsIPKcEEvRT_S6_:
  225|   243k|{
  226|   252k|    while(it != end)
  ------------------
  |  Branch (226:11): [True: 143k, False: 109k]
  ------------------
  227|   143k|    {
  228|   143k|        if(*it != ' ' && *it != '\t')
  ------------------
  |  Branch (228:12): [True: 137k, False: 5.76k]
  |  Branch (228:26): [True: 134k, False: 3.37k]
  ------------------
  229|   134k|            break;
  230|  9.13k|        ++it;
  231|  9.13k|    }
  232|   243k|}
_ZN5boost5beast4http6detail13is_token_charEc:
   81|   501k|{
   82|       |    /*
   83|       |        tchar = "!" | "#" | "$" | "%" | "&" |
   84|       |                "'" | "*" | "+" | "-" | "." |
   85|       |                "^" | "_" | "`" | "|" | "~" |
   86|       |                DIGIT | ALPHA
   87|       |    */
   88|   501k|    static char constexpr tab[] = {
   89|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 0
   90|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 16
   91|   501k|        0, 1, 0, 1,  1, 1, 1, 1,  0, 0, 1, 1,  0, 1, 1, 0, // 32
   92|   501k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 0, 0,  0, 0, 0, 0, // 48
   93|   501k|        0, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 64
   94|   501k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 0,  0, 0, 1, 1, // 80
   95|   501k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 96
   96|   501k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 0,  1, 0, 1, 0, // 112
   97|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 128
   98|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 144
   99|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 160
  100|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 176
  101|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 192
  102|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 208
  103|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 224
  104|   501k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0  // 240
  105|   501k|    };
  106|   501k|    BOOST_STATIC_ASSERT(sizeof(tab) == 256);
  ------------------
  |  |   71|   501k|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  107|   501k|    return tab[static_cast<unsigned char>(c)];
  108|   501k|}
_ZNK5boost5beast4http6detail21opt_token_list_policyclERNS_4core17basic_string_viewIcEERPKcS6_:
  348|  36.5k|{
  349|  36.5k|    v = {};
  350|  36.5k|    auto need_comma = it != s.data();
  351|  36.5k|    for(;;)
  352|  54.8k|    {
  353|  54.8k|        detail::skip_ows(it, (s.data() + s.size()));
  354|  54.8k|        if(it == (s.data() + s.size()))
  ------------------
  |  Branch (354:12): [True: 12.6k, False: 42.2k]
  ------------------
  355|  12.6k|        {
  356|  12.6k|            it = nullptr;
  357|  12.6k|            return true;
  358|  12.6k|        }
  359|  42.2k|        auto const c = *it;
  360|  42.2k|        if(detail::is_token_char(c))
  ------------------
  |  Branch (360:12): [True: 23.8k, False: 18.3k]
  ------------------
  361|  23.8k|        {
  362|  23.8k|            if(need_comma)
  ------------------
  |  Branch (362:16): [True: 4, False: 23.8k]
  ------------------
  363|      4|                return false;
  364|  23.8k|            auto const p0 = it;
  365|  23.8k|            for(;;)
  366|   155k|            {
  367|   155k|                ++it;
  368|   155k|                if(it == (s.data() + s.size()))
  ------------------
  |  Branch (368:20): [True: 11.5k, False: 143k]
  ------------------
  369|  11.5k|                    break;
  370|   143k|                if(! detail::is_token_char(*it))
  ------------------
  |  Branch (370:20): [True: 12.2k, False: 131k]
  ------------------
  371|  12.2k|                    break;
  372|   143k|            }
  373|  23.8k|            v = string_view{p0,
  374|  23.8k|                static_cast<std::size_t>(it - p0)};
  375|  23.8k|            return true;
  376|  23.8k|        }
  377|  18.3k|        if(c != ',')
  ------------------
  |  Branch (377:12): [True: 31, False: 18.3k]
  ------------------
  378|     31|            return false;
  379|  18.3k|        need_comma = false;
  380|  18.3k|        ++it;
  381|  18.3k|    }
  382|  36.5k|}
_ZN5boost5beast4http6detail10param_iter9incrementEv:
  266|  14.7k|{
  267|       |/*
  268|       |    param-list      = *( OWS ";" OWS param )
  269|       |    param           = token OWS [ "=" OWS ( token / quoted-string ) ]
  270|       |    quoted-string   = DQUOTE *( qdtext / quoted-pair ) DQUOTE
  271|       |    qdtext          = HTAB / SP / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text
  272|       |    quoted-pair     = "\" ( HTAB / SP / VCHAR / obs-text )
  273|       |    obs-text        = %x80-FF
  274|       |*/
  275|  14.7k|    auto const err =
  276|  14.7k|        [&]
  277|  14.7k|        {
  278|  14.7k|            it = first;
  279|  14.7k|        };
  280|  14.7k|    v.first = {};
  281|  14.7k|    v.second = {};
  282|  14.7k|    detail::skip_ows(it, last);
  283|  14.7k|    first = it;
  284|  14.7k|    if(it == last)
  ------------------
  |  Branch (284:8): [True: 10.7k, False: 3.95k]
  ------------------
  285|  10.7k|        return err();
  286|  3.95k|    if(*it != ';')
  ------------------
  |  Branch (286:8): [True: 1.75k, False: 2.19k]
  ------------------
  287|  1.75k|        return err();
  288|  2.19k|    ++it;
  289|  2.19k|    detail::skip_ows(it, last);
  290|  2.19k|    if(it == last)
  ------------------
  |  Branch (290:8): [True: 417, False: 1.77k]
  ------------------
  291|    417|        return err();
  292|       |    // param
  293|  1.77k|    if(! detail::is_token_char(*it))
  ------------------
  |  Branch (293:8): [True: 403, False: 1.37k]
  ------------------
  294|    403|        return err();
  295|  1.37k|    auto const p0 = it;
  296|  1.37k|    skip_token(++it, last);
  297|  1.37k|    auto const p1 = it;
  298|  1.37k|    v.first = { &*p0, static_cast<std::size_t>(p1 - p0) };
  299|  1.37k|    detail::skip_ows(it, last);
  300|  1.37k|    if(it == last)
  ------------------
  |  Branch (300:8): [True: 180, False: 1.19k]
  ------------------
  301|    180|        return;
  302|  1.19k|    if(*it == ';')
  ------------------
  |  Branch (302:8): [True: 499, False: 693]
  ------------------
  303|    499|        return;
  304|    693|    if(*it != '=')
  ------------------
  |  Branch (304:8): [True: 195, False: 498]
  ------------------
  305|    195|        return err();
  306|    498|    ++it;
  307|    498|    detail::skip_ows(it, last);
  308|    498|    if(it == last)
  ------------------
  |  Branch (308:8): [True: 9, False: 489]
  ------------------
  309|      9|        return;
  310|    489|    if(*it == '"')
  ------------------
  |  Branch (310:8): [True: 230, False: 259]
  ------------------
  311|    230|    {
  312|       |        // quoted-string
  313|    230|        auto const p2 = it;
  314|    230|        ++it;
  315|    230|        for(;;)
  316|  7.53k|        {
  317|  7.53k|            if(it == last)
  ------------------
  |  Branch (317:16): [True: 34, False: 7.50k]
  ------------------
  318|     34|                return err();
  319|  7.50k|            auto c = *it++;
  320|  7.50k|            if(c == '"')
  ------------------
  |  Branch (320:16): [True: 194, False: 7.31k]
  ------------------
  321|    194|                break;
  322|  7.31k|            if(detail::is_qdchar(c))
  ------------------
  |  Branch (322:16): [True: 6.69k, False: 619]
  ------------------
  323|  6.69k|                continue;
  324|    619|            if(c != '\\')
  ------------------
  |  Branch (324:16): [True: 0, False: 619]
  ------------------
  325|      0|                return err();
  326|    619|            if(it == last)
  ------------------
  |  Branch (326:16): [True: 2, False: 617]
  ------------------
  327|      2|                return err();
  328|    617|            c = *it++;
  329|    617|            if(! detail::is_qpchar(c))
  ------------------
  |  Branch (329:16): [True: 0, False: 617]
  ------------------
  330|      0|                return err();
  331|    617|        }
  332|    194|        v.second = { &*p2, static_cast<std::size_t>(it - p2) };
  333|    194|    }
  334|    259|    else
  335|    259|    {
  336|       |        // token
  337|    259|        if(! detail::is_token_char(*it))
  ------------------
  |  Branch (337:12): [True: 28, False: 231]
  ------------------
  338|     28|            return err();
  339|    231|        auto const p2 = it;
  340|    231|        skip_token(++it, last);
  341|    231|        v.second = { &*p2, static_cast<std::size_t>(it - p2) };
  342|    231|    }
  343|    489|}
_ZZN5boost5beast4http6detail10param_iter9incrementEvENKUlvE_clEv:
  277|  13.5k|        {
  278|  13.5k|            it = first;
  279|  13.5k|        };
_ZN5boost5beast4http6detail10skip_tokenIPKcEEvRT_S6_:
  237|  1.60k|{
  238|  14.1k|    while(it != last && is_token_char(*it))
  ------------------
  |  Branch (238:11): [True: 13.9k, False: 214]
  |  Branch (238:25): [True: 12.5k, False: 1.38k]
  ------------------
  239|  12.5k|        ++it;
  240|  1.60k|}
_ZN5boost5beast4http6detail9is_qdcharEc:
  112|  7.31k|{
  113|       |    /*
  114|       |        qdtext = HTAB / SP / "!" / %x23-5B ; '#'-'[' / %x5D-7E ; ']'-'~' / obs-text
  115|       |    */
  116|  7.31k|    static char constexpr tab[] = {
  117|  7.31k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 1, 0, 0,  0, 0, 0, 0, // 0
  118|  7.31k|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 16
  119|  7.31k|        1, 1, 0, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 32
  120|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 48
  121|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 64
  122|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  0, 1, 1, 1, // 80
  123|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 96
  124|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 0, // 112
  125|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 128
  126|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 144
  127|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 160
  128|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 176
  129|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 192
  130|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 208
  131|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 224
  132|  7.31k|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1  // 240
  133|  7.31k|    };
  134|  7.31k|    BOOST_STATIC_ASSERT(sizeof(tab) == 256);
  ------------------
  |  |   71|  7.31k|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  135|  7.31k|    return tab[static_cast<unsigned char>(c)];
  136|  7.31k|}
_ZN5boost5beast4http6detail9is_qpcharEc:
  140|    617|{
  141|       |    /*
  142|       |        quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
  143|       |        obs-text = %x80-FF
  144|       |    */
  145|    617|    static char constexpr tab[] = {
  146|    617|        0, 0, 0, 0,  0, 0, 0, 0,  0, 1, 0, 0,  0, 0, 0, 0, // 0
  147|    617|        0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0,  0, 0, 0, 0, // 16
  148|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 32
  149|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 48
  150|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 64
  151|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 80
  152|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 96
  153|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 0, // 112
  154|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 128
  155|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 144
  156|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 160
  157|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 176
  158|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 192
  159|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 208
  160|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1, // 224
  161|    617|        1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1  // 240
  162|    617|    };
  163|    617|    BOOST_STATIC_ASSERT(sizeof(tab) == 256);
  ------------------
  |  |   71|    617|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  164|    617|    return tab[static_cast<unsigned char>(c)];
  165|    617|}

_ZN5boost5beast4http10empty_body6readerC2ILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEEERNS1_6headerIXT_ET0_EERNS2_10value_typeE:
   71|  8.21k|        {
   72|  8.21k|        }
_ZN5boost5beast4http10empty_body6reader4initERKNS_8optionalImEERNS_6system10error_codeE:
   76|    561|        {
   77|    561|            ec = {};
   78|    561|        }
_ZN5boost5beast4http10empty_body6reader3putINS_4asio12const_bufferEEEmRKT_RNS_6system10error_codeE:
   84|     36|        {
   85|     36|            BOOST_BEAST_ASSIGN_EC(ec, error::unexpected_body);
  ------------------
  |  |  111|     36|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     36|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     36|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     36|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     36|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   86|     36|            return 0;
   87|     36|        }
_ZN5boost5beast4http10empty_body6reader6finishERNS_6system10error_codeE:
   91|  5.13k|        {
   92|  5.13k|            ec = {};
   93|  5.13k|        }
_ZN5boost5beast4http10empty_body4sizeENS2_10value_typeE:
   55|     11|    {
   56|     11|        return 0;
   57|     11|    }
_ZN5boost5beast4http10empty_body6writerC2ILb0ENS1_12basic_fieldsINSt3__19allocatorIcEEEEEERKNS1_6headerIXT_ET0_EERKNS2_10value_typeE:
  112|     11|        {
  113|     11|        }
_ZN5boost5beast4http10empty_body6writer4initERNS_6system10error_codeE:
  117|     11|        {
  118|     11|            ec = {};
  119|     11|        }
_ZN5boost5beast4http10empty_body6writer3getERNS_6system10error_codeE:
  123|     11|        {
  124|     11|            ec = {};
  125|     11|            return boost::none;
  126|     11|        }

_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareclERKNS6_10value_typeENS_4core17basic_string_viewIcEE:
  144|   302k|        {
  145|   302k|            if(lhs.name_string().size() < rhs.size())
  ------------------
  |  Branch (145:16): [True: 183k, False: 119k]
  ------------------
  146|   183k|                return true;
  147|   119k|            if(lhs.name_string().size() > rhs.size())
  ------------------
  |  Branch (147:16): [True: 65.7k, False: 53.5k]
  ------------------
  148|  65.7k|                return false;
  149|  53.5k|            return iless::operator()(lhs.name_string(), rhs);
  150|   119k|        }
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEEC2Ev:
  234|  13.3k|    basic_fields() = default;
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareclENS_4core17basic_string_viewIcEERKNS6_10value_typeE:
  131|   410k|        {
  132|   410k|            if(lhs.size() < rhs.name_string().size())
  ------------------
  |  Branch (132:16): [True: 82.4k, False: 328k]
  ------------------
  133|  82.4k|                return true;
  134|   328k|            if(lhs.size() > rhs.name_string().size())
  ------------------
  |  Branch (134:16): [True: 51.7k, False: 276k]
  ------------------
  135|  51.7k|                return false;
  136|   276k|            return iless::operator()(lhs, rhs.name_string());
  137|   328k|        }
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE3endEv:
  383|  39.1k|    {
  384|  39.1k|        return list_.cend();
  385|  39.1k|    }

_ZN5boost5beast4http12basic_parserILb1EE3putINS0_6detail12buffers_pairILb1EEEEEmRKT_RNS_6system10error_codeE:
   27|  8.84k|{
   28|  8.84k|    static_assert(net::is_const_buffer_sequence<
   29|  8.84k|        ConstBufferSequence>::value,
   30|  8.84k|            "ConstBufferSequence type requirements not met");
   31|  8.84k|    auto const p = net::buffer_sequence_begin(buffers);
   32|  8.84k|    auto const last = net::buffer_sequence_end(buffers);
   33|  8.84k|    if(p == last)
  ------------------
  |  Branch (33:8): [True: 0, False: 8.84k]
  ------------------
   34|      0|    {
   35|      0|        ec = {};
   36|      0|        return 0;
   37|      0|    }
   38|  8.84k|    if(std::next(p) == last)
  ------------------
  |  Branch (38:8): [True: 8.27k, False: 573]
  ------------------
   39|  8.27k|    {
   40|       |        // single buffer
   41|  8.27k|        return put(net::const_buffer(*p), ec);
   42|  8.27k|    }
   43|    573|    auto const size = buffer_bytes(buffers);
   44|    573|    if(size <= max_stack_buffer)
  ------------------
  |  Branch (44:8): [True: 573, False: 0]
  ------------------
   45|    573|        return put_from_stack(size, buffers, ec);
   46|      0|    if(size > buf_len_)
  ------------------
  |  Branch (46:8): [True: 0, False: 0]
  ------------------
   47|      0|    {
   48|       |        // reallocate
   49|      0|        buf_ = boost::make_unique_noinit<char[]>(size);
   50|      0|        buf_len_ = size;
   51|      0|    }
   52|       |    // flatten
   53|      0|    net::buffer_copy(net::buffer(
   54|      0|        buf_.get(), size), buffers);
   55|      0|    return put(net::const_buffer{
   56|      0|        buf_.get(), size}, ec);
   57|    573|}
_ZNK5boost5beast4http12basic_parserILb1EE24content_length_uncheckedEv:
   63|    561|{
   64|    561|    if(f_ & flagContentLength)
  ------------------
  |  Branch (64:8): [True: 0, False: 561]
  ------------------
   65|      0|        return len0_;
   66|    561|    return boost::none;
   67|    561|}
_ZN5boost5beast4http12basic_parserILb1EE14put_from_stackINS0_6detail12buffers_pairILb1EEEEEmmRKT_RNS_6system10error_codeE:
   76|    573|{
   77|    573|    char buf[max_stack_buffer];
   78|    573|    net::buffer_copy(net::mutable_buffer(
   79|    573|        buf, sizeof(buf)), buffers);
   80|    573|    return put(net::const_buffer{
   81|    573|        buf, size}, ec);
   82|    573|}

_ZN5boost5beast4http12basic_parserILb1EE3putENS_4asio12const_bufferERNS_6system10error_codeE:
   84|  8.84k|{
   85|       |    // If this goes off you have tried to parse more data after the parser
   86|       |    // has completed. A common cause of this is re-using a parser, which is
   87|       |    // not supported. If you need to re-use a parser, consider storing it
   88|       |    // in an optional. Then reset() and emplace() prior to parsing each new
   89|       |    // message.
   90|  8.84k|    BOOST_ASSERT(!is_done());
  ------------------
  |  |   66|  8.84k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   91|  8.84k|    if (is_done())
  ------------------
  |  Branch (91:9): [True: 0, False: 8.84k]
  ------------------
   92|      0|    {
   93|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::stale_parser);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   94|      0|        return 0;
   95|      0|    }
   96|  8.84k|    auto p = static_cast<char const*>(buffer.data());
   97|  8.84k|    auto n = buffer.size();
   98|  8.84k|    auto const p0 = p;
   99|  8.84k|    auto const p1 = p0 + n;
  100|  8.84k|    ec = {};
  101|  9.44k|loop:
  102|  9.44k|    switch(state_)
  ------------------
  |  Branch (102:12): [True: 0, False: 9.44k]
  ------------------
  103|  9.44k|    {
  104|  8.21k|    case state::nothing_yet:
  ------------------
  |  Branch (104:5): [True: 8.21k, False: 1.22k]
  ------------------
  105|  8.21k|        if(n == 0)
  ------------------
  |  Branch (105:12): [True: 0, False: 8.21k]
  ------------------
  106|      0|        {
  107|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  108|      0|            return 0;
  109|      0|        }
  110|  8.21k|        state_ = state::start_line;
  111|  8.21k|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  8.21k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  112|       |
  113|  8.21k|    case state::start_line:
  ------------------
  |  Branch (113:5): [True: 0, False: 9.44k]
  ------------------
  114|  8.21k|        parse_start_line(p, n, ec);
  115|  8.21k|        if(ec)
  ------------------
  |  Branch (115:12): [True: 194, False: 8.02k]
  ------------------
  116|    194|            goto done;
  117|  8.02k|        BOOST_ASSERT(! is_done());
  ------------------
  |  |   66|  8.02k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  118|  8.02k|        n = static_cast<std::size_t>(p1 - p);
  119|  8.02k|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  8.02k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  120|       |
  121|  8.59k|    case state::fields:
  ------------------
  |  Branch (121:5): [True: 576, False: 8.86k]
  ------------------
  122|  8.59k|        parse_fields(p, n, ec);
  123|  8.59k|        if(ec)
  ------------------
  |  Branch (123:12): [True: 2.90k, False: 5.69k]
  ------------------
  124|  2.90k|            goto done;
  125|  5.69k|        finish_header(ec, is_request{});
  126|  5.69k|        if(ec)
  ------------------
  |  Branch (126:12): [True: 0, False: 5.69k]
  ------------------
  127|      0|            goto done;
  128|  5.69k|        break;
  129|       |
  130|  5.69k|    case state::body0:
  ------------------
  |  Branch (130:5): [True: 0, False: 9.44k]
  ------------------
  131|      0|        this->on_body_init_impl(content_length(), ec);
  132|      0|        if(ec)
  ------------------
  |  Branch (132:12): [True: 0, False: 0]
  ------------------
  133|      0|            goto done;
  134|      0|        state_ = state::body;
  135|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  136|       |
  137|      0|    case state::body:
  ------------------
  |  Branch (137:5): [True: 0, False: 9.44k]
  ------------------
  138|      0|        parse_body(p, n, ec);
  139|      0|        if(ec)
  ------------------
  |  Branch (139:12): [True: 0, False: 0]
  ------------------
  140|      0|            goto done;
  141|      0|        break;
  142|       |
  143|      0|    case state::body_to_eof0:
  ------------------
  |  Branch (143:5): [True: 0, False: 9.44k]
  ------------------
  144|      0|        this->on_body_init_impl(content_length(), ec);
  145|      0|        if(ec)
  ------------------
  |  Branch (145:12): [True: 0, False: 0]
  ------------------
  146|      0|            goto done;
  147|      0|        state_ = state::body_to_eof;
  148|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  149|       |
  150|      0|    case state::body_to_eof:
  ------------------
  |  Branch (150:5): [True: 0, False: 9.44k]
  ------------------
  151|      0|        parse_body_to_eof(p, n, ec);
  152|      0|        if(ec)
  ------------------
  |  Branch (152:12): [True: 0, False: 0]
  ------------------
  153|      0|            goto done;
  154|      0|        break;
  155|       |
  156|    561|    case state::chunk_header0:
  ------------------
  |  Branch (156:5): [True: 561, False: 8.88k]
  ------------------
  157|    561|        this->on_body_init_impl(content_length(), ec);
  158|    561|        if(ec)
  ------------------
  |  Branch (158:12): [True: 0, False: 561]
  ------------------
  159|      0|            goto done;
  160|    561|        state_ = state::chunk_header;
  161|    561|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|    561|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  162|       |
  163|    582|    case state::chunk_header:
  ------------------
  |  Branch (163:5): [True: 21, False: 9.42k]
  ------------------
  164|    582|        parse_chunk_header(p, n, ec);
  165|    582|        if(ec)
  ------------------
  |  Branch (165:12): [True: 469, False: 113]
  ------------------
  166|    469|            goto done;
  167|    113|        if(state_ != state::trailer_fields)
  ------------------
  |  Branch (167:12): [True: 89, False: 24]
  ------------------
  168|     89|            break;
  169|     24|        n = static_cast<std::size_t>(p1 - p);
  170|     24|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|     24|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  171|       |
  172|     57|    case state::trailer_fields:
  ------------------
  |  Branch (172:5): [True: 33, False: 9.41k]
  ------------------
  173|     57|        parse_fields(p, n, ec);
  174|     57|        if(ec)
  ------------------
  |  Branch (174:12): [True: 54, False: 3]
  ------------------
  175|     54|            goto done;
  176|      3|        state_ = state::complete;
  177|      3|        this->on_finish_impl(ec);
  178|      3|        goto done;
  179|       |
  180|     36|    case state::chunk_body:
  ------------------
  |  Branch (180:5): [True: 36, False: 9.40k]
  ------------------
  181|     36|        parse_chunk_body(p, n, ec);
  182|     36|        if(ec)
  ------------------
  |  Branch (182:12): [True: 36, False: 0]
  ------------------
  183|     36|            goto done;
  184|      0|        break;
  185|       |
  186|      0|    case state::complete:
  ------------------
  |  Branch (186:5): [True: 0, False: 9.44k]
  ------------------
  187|      0|        ec = {};
  188|      0|        goto done;
  189|  9.44k|    }
  190|  5.78k|    if(p < p1 && ! is_done() && eager())
  ------------------
  |  Branch (190:8): [True: 4.90k, False: 875]
  |  Branch (190:18): [True: 596, False: 4.31k]
  |  Branch (190:33): [True: 596, False: 0]
  ------------------
  191|    596|    {
  192|    596|        n = static_cast<std::size_t>(p1 - p);
  193|    596|        goto loop;
  194|    596|    }
  195|  8.84k|done:
  196|  8.84k|    return static_cast<std::size_t>(p - p0);
  197|  5.78k|}
_ZN5boost5beast4http12basic_parserILb1EE16parse_start_lineERPKcmRNS_6system10error_codeE:
  346|  8.21k|{
  347|  8.21k|    auto const p0 = in;
  348|       |
  349|  8.21k|    inner_parse_start_line(in, in + (std::min<std::size_t>)
  350|  8.21k|        (n, header_limit_), ec, is_request{});
  351|  8.21k|    if(ec == error::need_more && n >= header_limit_)
  ------------------
  |  Branch (351:8): [True: 46, False: 8.17k]
  |  Branch (351:8): [True: 0, False: 8.21k]
  |  Branch (351:34): [True: 0, False: 46]
  ------------------
  352|      0|    {
  353|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::header_limit);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  354|      0|    }
  355|  8.21k|    header_limit_ -= static_cast<std::uint32_t>(in - p0);
  356|  8.21k|}
_ZN5boost5beast4http12basic_parserILb1EE22inner_parse_start_lineERPKcS5_RNS_6system10error_codeENSt3__117integral_constantIbLb1EEE:
  232|  8.21k|{
  233|       |/*
  234|       |    request-line   = method SP request-target SP HTTP-version CRLF
  235|       |    method         = token
  236|       |*/
  237|  8.21k|    auto p = in;
  238|       |
  239|  8.21k|    string_view method;
  240|  8.21k|    parse_method(p, last, method, ec);
  241|  8.21k|    if(ec)
  ------------------
  |  Branch (241:8): [True: 31, False: 8.18k]
  ------------------
  242|     31|        return;
  243|       |
  244|  8.18k|    string_view target;
  245|  8.18k|    parse_target(p, last, target, ec);
  246|  8.18k|    if(ec)
  ------------------
  |  Branch (246:8): [True: 38, False: 8.14k]
  ------------------
  247|     38|        return;
  248|       |
  249|  8.14k|    int version = 0;
  250|  8.14k|    parse_version(p, last, version, ec);
  251|  8.14k|    if(ec)
  ------------------
  |  Branch (251:8): [True: 91, False: 8.05k]
  ------------------
  252|     91|        return;
  253|  8.05k|    if(version < 10 || version > 11)
  ------------------
  |  Branch (253:8): [True: 4, False: 8.05k]
  |  Branch (253:24): [True: 7, False: 8.04k]
  ------------------
  254|     11|    {
  255|     11|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     11|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     11|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     11|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     11|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     11|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  256|     11|        return;
  257|     11|    }
  258|       |
  259|  8.04k|    if(p + 2 > last)
  ------------------
  |  Branch (259:8): [True: 2, False: 8.04k]
  ------------------
  260|      2|    {
  261|      2|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      2|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      2|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      2|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      2|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      2|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  262|      2|        return;
  263|      2|    }
  264|  8.04k|    if(p[0] != '\r' || p[1] != '\n')
  ------------------
  |  Branch (264:8): [True: 10, False: 8.03k]
  |  Branch (264:24): [True: 11, False: 8.02k]
  ------------------
  265|     21|    {
  266|     21|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_version);
  ------------------
  |  |  111|     21|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     21|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     21|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     21|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     21|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  267|     21|        return;
  268|     21|    }
  269|  8.02k|    p += 2;
  270|       |
  271|  8.02k|    if(version >= 11)
  ------------------
  |  Branch (271:8): [True: 6.55k, False: 1.46k]
  ------------------
  272|  6.55k|        f_ |= flagHTTP11;
  273|       |
  274|  8.02k|    this->on_request_impl(string_to_verb(method),
  275|  8.02k|        method, target, version, ec);
  276|  8.02k|    if(ec)
  ------------------
  |  Branch (276:8): [True: 0, False: 8.02k]
  ------------------
  277|      0|        return;
  278|       |
  279|  8.02k|    in = p;
  280|  8.02k|    state_ = state::fields;
  281|  8.02k|}
_ZN5boost5beast4http12basic_parserILb1EE12parse_fieldsERPKcmRNS_6system10error_codeE:
  403|  8.65k|{
  404|  8.65k|    auto const p0 = in;
  405|       |
  406|  8.65k|    inner_parse_fields(in, in + (std::min<std::size_t>)
  407|  8.65k|        (n, header_limit_), ec);
  408|  8.65k|    if(ec == error::need_more && n >= header_limit_)
  ------------------
  |  Branch (408:8): [True: 2.79k, False: 5.85k]
  |  Branch (408:8): [True: 3, False: 8.65k]
  |  Branch (408:34): [True: 3, False: 2.79k]
  ------------------
  409|      3|    {
  410|      3|        BOOST_BEAST_ASSIGN_EC(ec, error::header_limit);
  ------------------
  |  |  111|      3|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      3|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      3|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      3|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      3|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  411|      3|    }
  412|  8.65k|    header_limit_ -= static_cast<std::uint32_t>(in - p0);
  413|  8.65k|}
_ZN5boost5beast4http12basic_parserILb1EE18inner_parse_fieldsERPKcS5_RNS_6system10error_codeE:
  363|  8.65k|{
  364|  8.65k|    string_view name;
  365|  8.65k|    string_view value;
  366|       |    // https://stackoverflow.com/questions/686217/maximum-on-http-header-values
  367|  8.65k|    beast::detail::char_buffer<max_obs_fold> buf;
  368|  8.65k|    auto p = in;
  369|  8.65k|    for(;;)
  370|  73.9k|    {
  371|  73.9k|        if(p + 2 > last)
  ------------------
  |  Branch (371:12): [True: 1.90k, False: 72.0k]
  ------------------
  372|  1.90k|        {
  373|  1.90k|            BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|  1.90k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  1.90k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  1.90k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  1.90k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  1.90k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  374|  1.90k|            return;
  375|  1.90k|        }
  376|  72.0k|        if(p[0] == '\r')
  ------------------
  |  Branch (376:12): [True: 5.71k, False: 66.3k]
  ------------------
  377|  5.71k|        {
  378|  5.71k|            if(p[1] != '\n')
  ------------------
  |  Branch (378:16): [True: 15, False: 5.69k]
  ------------------
  379|     15|            {
  380|     15|                BOOST_BEAST_ASSIGN_EC(ec, error::bad_line_ending);
  ------------------
  |  |  111|     15|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     15|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     15|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     15|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     15|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  381|     15|            }
  382|  5.71k|            in = p + 2;
  383|  5.71k|            return;
  384|  5.71k|        }
  385|  66.3k|        parse_field(p, last, name, value, buf, ec);
  386|  66.3k|        if(ec)
  ------------------
  |  Branch (386:12): [True: 1.00k, False: 65.3k]
  ------------------
  387|  1.00k|            return;
  388|  65.3k|        auto const f = string_to_field(name);
  389|  65.3k|        do_field(f, value, ec);
  390|  65.3k|        if(ec)
  ------------------
  |  Branch (390:12): [True: 36, False: 65.3k]
  ------------------
  391|     36|            return;
  392|  65.3k|        this->on_field_impl(f, name, value, ec);
  393|  65.3k|        if(ec)
  ------------------
  |  Branch (393:12): [True: 0, False: 65.3k]
  ------------------
  394|      0|            return;
  395|  65.3k|        in = p;
  396|  65.3k|    }
  397|  8.65k|}
_ZN5boost5beast4http12basic_parserILb1EE8do_fieldENS1_5fieldENS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  675|  65.3k|{
  676|  65.3k|    using namespace beast::detail::string_literals;
  677|       |    // Connection
  678|  65.3k|    if(f == field::connection ||
  ------------------
  |  Branch (678:8): [True: 6.33k, False: 59.0k]
  ------------------
  679|  65.3k|        f == field::proxy_connection)
  ------------------
  |  Branch (679:9): [True: 0, False: 59.0k]
  ------------------
  680|  6.33k|    {
  681|  6.33k|        auto const list = opt_token_list{value};
  682|  6.33k|        if(! validate_list(list))
  ------------------
  |  Branch (682:12): [True: 35, False: 6.30k]
  ------------------
  683|     35|        {
  684|       |            // VFALCO Should this be a field specific error?
  685|     35|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_value);
  ------------------
  |  |  111|     35|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     35|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     35|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     35|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     35|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  686|     35|            return;
  687|     35|        }
  688|  6.30k|        for(auto const& s : list)
  ------------------
  |  Branch (688:27): [True: 11.7k, False: 6.30k]
  ------------------
  689|  11.7k|        {
  690|  11.7k|            if(beast::iequals("close"_sv, s))
  ------------------
  |  Branch (690:16): [True: 676, False: 11.1k]
  ------------------
  691|    676|            {
  692|    676|                f_ |= flagConnectionClose;
  693|    676|                continue;
  694|    676|            }
  695|       |
  696|  11.1k|            if(beast::iequals("keep-alive"_sv, s))
  ------------------
  |  Branch (696:16): [True: 1.02k, False: 10.0k]
  ------------------
  697|  1.02k|            {
  698|  1.02k|                f_ |= flagConnectionKeepAlive;
  699|  1.02k|                continue;
  700|  1.02k|            }
  701|       |
  702|  10.0k|            if(beast::iequals("upgrade"_sv, s))
  ------------------
  |  Branch (702:16): [True: 5.49k, False: 4.58k]
  ------------------
  703|  5.49k|            {
  704|  5.49k|                f_ |= flagConnectionUpgrade;
  705|  5.49k|                continue;
  706|  5.49k|            }
  707|  10.0k|        }
  708|  6.30k|        ec = {};
  709|  6.30k|        return;
  710|  6.33k|    }
  711|       |
  712|       |    // Content-Length
  713|  59.0k|    if(f == field::content_length)
  ------------------
  |  Branch (713:8): [True: 0, False: 59.0k]
  ------------------
  714|      0|    {
  715|      0|        auto bad_content_length = [&ec]
  716|      0|        {
  717|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_content_length);
  718|      0|        };
  719|       |
  720|      0|        auto multiple_content_length = [&ec]
  721|      0|        {
  722|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::multiple_content_length);
  723|      0|        };
  724|       |
  725|       |        // conflicting field
  726|      0|        if(f_ & flagChunked)
  ------------------
  |  Branch (726:12): [True: 0, False: 0]
  ------------------
  727|      0|            return bad_content_length();
  728|       |
  729|       |        // Content-length may be a comma-separated list of integers
  730|      0|        auto tokens_unprocessed = 1 +
  731|      0|            std::count(value.begin(), value.end(), ',');
  732|      0|        auto tokens = opt_token_list(value);
  733|      0|        if (tokens.begin() == tokens.end() ||
  ------------------
  |  Branch (733:13): [True: 0, False: 0]
  |  Branch (733:13): [True: 0, False: 0]
  ------------------
  734|      0|            !validate_list(tokens))
  ------------------
  |  Branch (734:13): [True: 0, False: 0]
  ------------------
  735|      0|                return bad_content_length();
  736|       |
  737|      0|        auto existing = this->content_length_unchecked();
  738|      0|        for (auto tok : tokens)
  ------------------
  |  Branch (738:23): [True: 0, False: 0]
  ------------------
  739|      0|        {
  740|      0|            std::uint64_t v;
  741|      0|            if (!parse_dec(tok, v))
  ------------------
  |  Branch (741:17): [True: 0, False: 0]
  ------------------
  742|      0|                return bad_content_length();
  743|      0|            --tokens_unprocessed;
  744|      0|            if (existing.has_value())
  ------------------
  |  Branch (744:17): [True: 0, False: 0]
  ------------------
  745|      0|            {
  746|      0|                if (v != *existing)
  ------------------
  |  Branch (746:21): [True: 0, False: 0]
  ------------------
  747|      0|                    return multiple_content_length();
  748|      0|            }
  749|      0|            else
  750|      0|            {
  751|      0|                existing = v;
  752|      0|            }
  753|      0|        }
  754|       |
  755|      0|        if (tokens_unprocessed)
  ------------------
  |  Branch (755:13): [True: 0, False: 0]
  ------------------
  756|      0|            return bad_content_length();
  757|       |
  758|      0|        BOOST_ASSERT(existing.has_value());
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  759|      0|        ec = {};
  760|      0|        len_ = *existing;
  761|      0|        len0_ = *existing;
  762|      0|        f_ |= flagContentLength;
  763|      0|        return;
  764|      0|    }
  765|       |
  766|       |    // Transfer-Encoding
  767|  59.0k|    if(f == field::transfer_encoding)
  ------------------
  |  Branch (767:8): [True: 3.45k, False: 55.5k]
  ------------------
  768|  3.45k|    {
  769|  3.45k|        if(f_ & flagChunked)
  ------------------
  |  Branch (769:12): [True: 1, False: 3.45k]
  ------------------
  770|      1|        {
  771|       |            // duplicate
  772|      1|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_transfer_encoding);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  773|      1|            return;
  774|      1|        }
  775|       |
  776|  3.45k|        if(f_ & flagContentLength)
  ------------------
  |  Branch (776:12): [True: 0, False: 3.45k]
  ------------------
  777|      0|        {
  778|       |            // conflicting field
  779|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_transfer_encoding);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  780|      0|            return;
  781|      0|        }
  782|       |
  783|  3.45k|        ec = {};
  784|  3.45k|        auto const v = token_list{value};
  785|  3.45k|        auto const p = std::find_if(v.begin(), v.end(),
  786|  3.45k|            [&](string_view const& s)
  787|  3.45k|            {
  788|  3.45k|                return beast::iequals("chunked"_sv, s);
  789|  3.45k|            });
  790|  3.45k|        if(p == v.end())
  ------------------
  |  Branch (790:12): [True: 1.86k, False: 1.59k]
  ------------------
  791|  1.86k|            return;
  792|  1.59k|        if(std::next(p) != v.end())
  ------------------
  |  Branch (792:12): [True: 996, False: 596]
  ------------------
  793|    996|            return;
  794|    596|        len_ = 0;
  795|    596|        f_ |= flagChunked;
  796|    596|        return;
  797|  1.59k|    }
  798|       |
  799|       |    // Upgrade
  800|  55.5k|    if(f == field::upgrade)
  ------------------
  |  Branch (800:8): [True: 5.56k, False: 50.0k]
  ------------------
  801|  5.56k|    {
  802|  5.56k|        ec = {};
  803|  5.56k|        f_ |= flagUpgrade;
  804|  5.56k|        return;
  805|  5.56k|    }
  806|       |
  807|  50.0k|    ec = {};
  808|  50.0k|}
_ZZN5boost5beast4http12basic_parserILb1EE8do_fieldENS1_5fieldENS_4core17basic_string_viewIcEERNS_6system10error_codeEENKUlRKS7_E_clESC_:
  787|  3.88k|            {
  788|  3.88k|                return beast::iequals("chunked"_sv, s);
  789|  3.88k|            });
_ZN5boost5beast4http12basic_parserILb1EE13finish_headerERNS_6system10error_codeENSt3__117integral_constantIbLb1EEE:
  419|  5.69k|{
  420|       |    // RFC 7230 section 3.3
  421|       |    // https://tools.ietf.org/html/rfc7230#section-3.3
  422|       |
  423|  5.69k|    if(f_ & flagSkipBody)
  ------------------
  |  Branch (423:8): [True: 0, False: 5.69k]
  ------------------
  424|      0|    {
  425|      0|        state_ = state::complete;
  426|      0|    }
  427|  5.69k|    else if(f_ & flagContentLength)
  ------------------
  |  Branch (427:13): [True: 0, False: 5.69k]
  ------------------
  428|      0|    {
  429|      0|        if(body_limit_.has_value() &&
  ------------------
  |  Branch (429:12): [True: 0, False: 0]
  ------------------
  430|      0|           len_ > body_limit_)
  ------------------
  |  Branch (430:12): [True: 0, False: 0]
  ------------------
  431|      0|        {
  432|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::body_limit);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  433|      0|            return;
  434|      0|        }
  435|      0|        if(len_ > 0)
  ------------------
  |  Branch (435:12): [True: 0, False: 0]
  ------------------
  436|      0|        {
  437|      0|            f_ |= flagHasBody;
  438|      0|            state_ = state::body0;
  439|      0|        }
  440|      0|        else
  441|      0|        {
  442|      0|            state_ = state::complete;
  443|      0|        }
  444|      0|    }
  445|  5.69k|    else if(f_ & flagChunked)
  ------------------
  |  Branch (445:13): [True: 562, False: 5.13k]
  ------------------
  446|    562|    {
  447|    562|        f_ |= flagHasBody;
  448|    562|        state_ = state::chunk_header0;
  449|    562|    }
  450|  5.13k|    else
  451|  5.13k|    {
  452|  5.13k|        len_ = 0;
  453|  5.13k|        len0_ = 0;
  454|  5.13k|        state_ = state::complete;
  455|  5.13k|    }
  456|       |
  457|  5.69k|    ec = {};
  458|  5.69k|    this->on_header_impl(ec);
  459|  5.69k|    if(ec)
  ------------------
  |  Branch (459:8): [True: 0, False: 5.69k]
  ------------------
  460|      0|        return;
  461|  5.69k|    if(state_ == state::complete)
  ------------------
  |  Branch (461:8): [True: 5.13k, False: 562]
  ------------------
  462|  5.13k|        this->on_finish_impl(ec);
  463|  5.69k|}
_ZNK5boost5beast4http12basic_parserILb1EE14content_lengthEv:
   51|    561|{
   52|    561|    BOOST_ASSERT(is_header_done());
  ------------------
  |  |   66|    561|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   53|    561|    return content_length_unchecked();
   54|    561|}
_ZN5boost5beast4http12basic_parserILb1EE18parse_chunk_headerERPKcmRNS_6system10error_codeE:
  568|    582|{
  569|       |/*
  570|       |    chunked-body   = *chunk last-chunk trailer-part CRLF
  571|       |
  572|       |    chunk          = chunk-size [ chunk-ext ] CRLF chunk-data CRLF
  573|       |    last-chunk     = 1*("0") [ chunk-ext ] CRLF
  574|       |    trailer-part   = *( header-field CRLF )
  575|       |
  576|       |    chunk-size     = 1*HEXDIG
  577|       |    chunk-data     = 1*OCTET ; a sequence of chunk-size octets
  578|       |    chunk-ext      = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
  579|       |    chunk-ext-name = token
  580|       |    chunk-ext-val  = token / quoted-string
  581|       |*/
  582|       |
  583|    582|    auto p = in;
  584|    582|    auto const pend = p + n;
  585|       |
  586|    582|    if(n < 2)
  ------------------
  |  Branch (586:8): [True: 1, False: 581]
  ------------------
  587|      1|    {
  588|      1|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  589|      1|        return;
  590|      1|    }
  591|    581|    if(f_ & flagExpectCRLF)
  ------------------
  |  Branch (591:8): [True: 0, False: 581]
  ------------------
  592|      0|    {
  593|       |        // Treat the last CRLF in a chunk as
  594|       |        // part of the next chunk, so p can
  595|       |        // be parsed in one call instead of two.
  596|      0|        if(! parse_crlf(p))
  ------------------
  |  Branch (596:12): [True: 0, False: 0]
  ------------------
  597|      0|        {
  598|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_chunk);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  599|      0|            return;
  600|      0|        }
  601|      0|    }
  602|       |
  603|    581|    auto const eol = find_eol(p, pend, ec);
  604|    581|    if(ec)
  ------------------
  |  Branch (604:8): [True: 9, False: 572]
  ------------------
  605|      9|        return;
  606|    572|    if(! eol)
  ------------------
  |  Branch (606:8): [True: 16, False: 556]
  ------------------
  607|     16|    {
  608|     16|        BOOST_BEAST_ASSIGN_EC(ec, error::need_more);
  ------------------
  |  |  111|     16|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     16|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     16|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     16|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     16|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  609|     16|        return;
  610|     16|    }
  611|       |
  612|    556|    std::uint64_t size;
  613|    556|    if(! parse_hex(p, size))
  ------------------
  |  Branch (613:8): [True: 9, False: 547]
  ------------------
  614|      9|    {
  615|      9|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_chunk);
  ------------------
  |  |  111|      9|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      9|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      9|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      9|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      9|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  616|      9|        return;
  617|      9|    }
  618|    547|    if (body_limit_.has_value())
  ------------------
  |  Branch (618:9): [True: 547, False: 0]
  ------------------
  619|    547|    {
  620|    547|        if (size > *body_limit_)
  ------------------
  |  Branch (620:13): [True: 159, False: 388]
  ------------------
  621|    159|        {
  622|    159|            BOOST_BEAST_ASSIGN_EC(ec, error::body_limit);
  ------------------
  |  |  111|    159|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    159|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    159|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    159|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    159|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  623|    159|            return;
  624|    159|        }
  625|    388|        *body_limit_ -= size;
  626|    388|    }
  627|       |
  628|    388|    auto const start = p;
  629|    388|    parse_chunk_extensions(p, pend, ec);
  630|    388|    if(ec)
  ------------------
  |  Branch (630:8): [True: 243, False: 145]
  ------------------
  631|    243|        return;
  632|    145|    if(p != eol - 2)
  ------------------
  |  Branch (632:8): [True: 32, False: 113]
  ------------------
  633|     32|    {
  634|     32|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_chunk_extension);
  ------------------
  |  |  111|     32|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     32|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     32|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     32|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     32|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  635|     32|        return;
  636|     32|    }
  637|    113|    auto const ext = make_string(start, p);
  638|    113|    this->on_chunk_header_impl(size, ext, ec);
  639|    113|    if(ec)
  ------------------
  |  Branch (639:8): [True: 0, False: 113]
  ------------------
  640|      0|        return;
  641|       |
  642|    113|    len_ = size;
  643|    113|    in = eol;
  644|    113|    f_ |= flagExpectCRLF;
  645|    113|    if(size != 0)
  ------------------
  |  Branch (645:8): [True: 89, False: 24]
  ------------------
  646|     89|    {
  647|     89|        state_ = state::chunk_body;
  648|     89|        return;
  649|     89|    }
  650|     24|    state_ = state::trailer_fields;
  651|     24|    header_limit_ += 2; // for the final chunk's CRLF
  652|     24|}
_ZN5boost5beast4http12basic_parserILb1EE16parse_chunk_bodyERPKcmRNS_6system10error_codeE:
  659|     36|{
  660|     36|    ec = {};
  661|     36|    n = this->on_chunk_body_impl(
  662|     36|        len_, string_view{p,
  663|     36|            beast::detail::clamp(len_, n)}, ec);
  664|     36|    p += n;
  665|     36|    len_ -= n;
  666|     36|    if(len_ == 0)
  ------------------
  |  Branch (666:8): [True: 0, False: 36]
  ------------------
  667|      0|        state_ = state::chunk_header;
  668|     36|}
_ZN5boost5beast4http12basic_parserILb1EE7put_eofERNS_6system10error_codeE:
  203|  2.35k|{
  204|  2.35k|    BOOST_ASSERT(got_some());
  ------------------
  |  |   66|  2.35k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  205|  2.35k|    if( state_ == state::start_line ||
  ------------------
  |  Branch (205:9): [True: 45, False: 2.31k]
  ------------------
  206|  2.35k|        state_ == state::fields)
  ------------------
  |  Branch (206:9): [True: 2.16k, False: 150]
  ------------------
  207|  2.20k|    {
  208|  2.20k|        BOOST_BEAST_ASSIGN_EC(ec, error::partial_message);
  ------------------
  |  |  111|  2.20k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  2.20k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  2.20k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  2.20k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  2.20k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  209|  2.20k|        return;
  210|  2.20k|    }
  211|    150|    if(f_ & (flagContentLength | flagChunked))
  ------------------
  |  Branch (211:8): [True: 150, False: 0]
  ------------------
  212|    150|    {
  213|    150|        if(state_ != state::complete)
  ------------------
  |  Branch (213:12): [True: 150, False: 0]
  ------------------
  214|    150|        {
  215|    150|            BOOST_BEAST_ASSIGN_EC(ec, error::partial_message);
  ------------------
  |  |  111|    150|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    150|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    150|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    150|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    150|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  216|    150|            return;
  217|    150|        }
  218|      0|        ec = {};
  219|      0|        return;
  220|    150|    }
  221|      0|    state_ = state::complete;
  222|      0|    ec = {};
  223|      0|    this->on_finish_impl(ec);
  224|      0|}

_ZN5boost5beast4http15make_error_codeENS1_5errorE:
  107|  45.1k|{
  108|  45.1k|    static detail::http_error_category const cat{};
  109|  45.1k|    return error_code{static_cast<
  110|  45.1k|        std::underlying_type<error>::type>(ev), cat};
  111|  45.1k|}
_ZN5boost5beast4http6detail19http_error_categoryC2Ev:
   30|      1|    http_error_category() : error_category(0x964627da815bf210u)  {}

_ZN5boost5beast4http9to_stringENS1_5fieldE:
  566|  62.2k|{
  567|  62.2k|    return detail::to_string(f);
  568|  62.2k|}
_ZN5boost5beast4http6detail9to_stringENS1_5fieldE:
  556|  62.2k|{
  557|  62.2k|    auto const& v = get_field_table();
  558|  62.2k|    BOOST_ASSERT(static_cast<unsigned>(f) < v.size());
  ------------------
  |  |   66|  62.2k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  559|  62.2k|    return v.begin()[static_cast<unsigned>(f)];
  560|  62.2k|}
_ZN5boost5beast4http6detail15get_field_tableEv:
  548|   127k|{
  549|   127k|    static field_table const tab;
  550|   127k|    return tab;
  551|   127k|}
_ZN5boost5beast4http6detail11field_tableC2Ev:
  119|      1|        : by_name_({{
  120|       |// string constants
  121|      1|            "<unknown-field>",
  122|      1|            "A-IM",
  123|      1|            "Accept",
  124|      1|            "Accept-Additions",
  125|      1|            "Accept-Charset",
  126|      1|            "Accept-Datetime",
  127|      1|            "Accept-Encoding",
  128|      1|            "Accept-Features",
  129|      1|            "Accept-Language",
  130|      1|            "Accept-Patch",
  131|      1|            "Accept-Post",
  132|      1|            "Accept-Ranges",
  133|      1|            "Access-Control",
  134|      1|            "Access-Control-Allow-Credentials",
  135|      1|            "Access-Control-Allow-Headers",
  136|      1|            "Access-Control-Allow-Methods",
  137|      1|            "Access-Control-Allow-Origin",
  138|      1|            "Access-Control-Expose-Headers",
  139|      1|            "Access-Control-Max-Age",
  140|      1|            "Access-Control-Request-Headers",
  141|      1|            "Access-Control-Request-Method",
  142|      1|            "Age",
  143|      1|            "Allow",
  144|      1|            "ALPN",
  145|      1|            "Also-Control",
  146|      1|            "Alt-Svc",
  147|      1|            "Alt-Used",
  148|      1|            "Alternate-Recipient",
  149|      1|            "Alternates",
  150|      1|            "Apparently-To",
  151|      1|            "Apply-To-Redirect-Ref",
  152|      1|            "Approved",
  153|      1|            "Archive",
  154|      1|            "Archived-At",
  155|      1|            "Article-Names",
  156|      1|            "Article-Updates",
  157|      1|            "Authentication-Control",
  158|      1|            "Authentication-Info",
  159|      1|            "Authentication-Results",
  160|      1|            "Authorization",
  161|      1|            "Auto-Submitted",
  162|      1|            "Autoforwarded",
  163|      1|            "Autosubmitted",
  164|      1|            "Base",
  165|      1|            "Bcc",
  166|      1|            "Body",
  167|      1|            "C-Ext",
  168|      1|            "C-Man",
  169|      1|            "C-Opt",
  170|      1|            "C-PEP",
  171|      1|            "C-PEP-Info",
  172|      1|            "Cache-Control",
  173|      1|            "CalDAV-Timezones",
  174|      1|            "Cancel-Key",
  175|      1|            "Cancel-Lock",
  176|      1|            "Cc",
  177|      1|            "Close",
  178|      1|            "Comments",
  179|      1|            "Compliance",
  180|      1|            "Connection",
  181|      1|            "Content-Alternative",
  182|      1|            "Content-Base",
  183|      1|            "Content-Description",
  184|      1|            "Content-Disposition",
  185|      1|            "Content-Duration",
  186|      1|            "Content-Encoding",
  187|      1|            "Content-features",
  188|      1|            "Content-ID",
  189|      1|            "Content-Identifier",
  190|      1|            "Content-Language",
  191|      1|            "Content-Length",
  192|      1|            "Content-Location",
  193|      1|            "Content-MD5",
  194|      1|            "Content-Range",
  195|      1|            "Content-Return",
  196|      1|            "Content-Script-Type",
  197|      1|            "Content-Style-Type",
  198|      1|            "Content-Transfer-Encoding",
  199|      1|            "Content-Type",
  200|      1|            "Content-Version",
  201|      1|            "Control",
  202|      1|            "Conversion",
  203|      1|            "Conversion-With-Loss",
  204|      1|            "Cookie",
  205|      1|            "Cookie2",
  206|      1|            "Cost",
  207|      1|            "DASL",
  208|      1|            "Date",
  209|      1|            "Date-Received",
  210|      1|            "DAV",
  211|      1|            "Default-Style",
  212|      1|            "Deferred-Delivery",
  213|      1|            "Delivery-Date",
  214|      1|            "Delta-Base",
  215|      1|            "Depth",
  216|      1|            "Derived-From",
  217|      1|            "Destination",
  218|      1|            "Differential-ID",
  219|      1|            "Digest",
  220|      1|            "Discarded-X400-IPMS-Extensions",
  221|      1|            "Discarded-X400-MTS-Extensions",
  222|      1|            "Disclose-Recipients",
  223|      1|            "Disposition-Notification-Options",
  224|      1|            "Disposition-Notification-To",
  225|      1|            "Distribution",
  226|      1|            "DKIM-Signature",
  227|      1|            "DL-Expansion-History",
  228|      1|            "Downgraded-Bcc",
  229|      1|            "Downgraded-Cc",
  230|      1|            "Downgraded-Disposition-Notification-To",
  231|      1|            "Downgraded-Final-Recipient",
  232|      1|            "Downgraded-From",
  233|      1|            "Downgraded-In-Reply-To",
  234|      1|            "Downgraded-Mail-From",
  235|      1|            "Downgraded-Message-Id",
  236|      1|            "Downgraded-Original-Recipient",
  237|      1|            "Downgraded-Rcpt-To",
  238|      1|            "Downgraded-References",
  239|      1|            "Downgraded-Reply-To",
  240|      1|            "Downgraded-Resent-Bcc",
  241|      1|            "Downgraded-Resent-Cc",
  242|      1|            "Downgraded-Resent-From",
  243|      1|            "Downgraded-Resent-Reply-To",
  244|      1|            "Downgraded-Resent-Sender",
  245|      1|            "Downgraded-Resent-To",
  246|      1|            "Downgraded-Return-Path",
  247|      1|            "Downgraded-Sender",
  248|      1|            "Downgraded-To",
  249|      1|            "EDIINT-Features",
  250|      1|            "Eesst-Version",
  251|      1|            "Encoding",
  252|      1|            "Encrypted",
  253|      1|            "Errors-To",
  254|      1|            "ETag",
  255|      1|            "Expect",
  256|      1|            "Expires",
  257|      1|            "Expiry-Date",
  258|      1|            "Ext",
  259|      1|            "Followup-To",
  260|      1|            "Forwarded",
  261|      1|            "From",
  262|      1|            "Generate-Delivery-Report",
  263|      1|            "GetProfile",
  264|      1|            "Hobareg",
  265|      1|            "Host",
  266|      1|            "HTTP2-Settings",
  267|      1|            "If",
  268|      1|            "If-Match",
  269|      1|            "If-Modified-Since",
  270|      1|            "If-None-Match",
  271|      1|            "If-Range",
  272|      1|            "If-Schedule-Tag-Match",
  273|      1|            "If-Unmodified-Since",
  274|      1|            "IM",
  275|      1|            "Importance",
  276|      1|            "In-Reply-To",
  277|      1|            "Incomplete-Copy",
  278|      1|            "Injection-Date",
  279|      1|            "Injection-Info",
  280|      1|            "Jabber-ID",
  281|      1|            "Keep-Alive",
  282|      1|            "Keywords",
  283|      1|            "Label",
  284|      1|            "Language",
  285|      1|            "Last-Modified",
  286|      1|            "Latest-Delivery-Time",
  287|      1|            "Lines",
  288|      1|            "Link",
  289|      1|            "List-Archive",
  290|      1|            "List-Help",
  291|      1|            "List-ID",
  292|      1|            "List-Owner",
  293|      1|            "List-Post",
  294|      1|            "List-Subscribe",
  295|      1|            "List-Unsubscribe",
  296|      1|            "List-Unsubscribe-Post",
  297|      1|            "Location",
  298|      1|            "Lock-Token",
  299|      1|            "Man",
  300|      1|            "Max-Forwards",
  301|      1|            "Memento-Datetime",
  302|      1|            "Message-Context",
  303|      1|            "Message-ID",
  304|      1|            "Message-Type",
  305|      1|            "Meter",
  306|      1|            "Method-Check",
  307|      1|            "Method-Check-Expires",
  308|      1|            "MIME-Version",
  309|      1|            "MMHS-Acp127-Message-Identifier",
  310|      1|            "MMHS-Authorizing-Users",
  311|      1|            "MMHS-Codress-Message-Indicator",
  312|      1|            "MMHS-Copy-Precedence",
  313|      1|            "MMHS-Exempted-Address",
  314|      1|            "MMHS-Extended-Authorisation-Info",
  315|      1|            "MMHS-Handling-Instructions",
  316|      1|            "MMHS-Message-Instructions",
  317|      1|            "MMHS-Message-Type",
  318|      1|            "MMHS-Originator-PLAD",
  319|      1|            "MMHS-Originator-Reference",
  320|      1|            "MMHS-Other-Recipients-Indicator-CC",
  321|      1|            "MMHS-Other-Recipients-Indicator-To",
  322|      1|            "MMHS-Primary-Precedence",
  323|      1|            "MMHS-Subject-Indicator-Codes",
  324|      1|            "MT-Priority",
  325|      1|            "Negotiate",
  326|      1|            "Newsgroups",
  327|      1|            "NNTP-Posting-Date",
  328|      1|            "NNTP-Posting-Host",
  329|      1|            "Non-Compliance",
  330|      1|            "Obsoletes",
  331|      1|            "Opt",
  332|      1|            "Optional",
  333|      1|            "Optional-WWW-Authenticate",
  334|      1|            "Ordering-Type",
  335|      1|            "Organization",
  336|      1|            "Origin",
  337|      1|            "Original-Encoded-Information-Types",
  338|      1|            "Original-From",
  339|      1|            "Original-Message-ID",
  340|      1|            "Original-Recipient",
  341|      1|            "Original-Sender",
  342|      1|            "Original-Subject",
  343|      1|            "Originator-Return-Address",
  344|      1|            "Overwrite",
  345|      1|            "P3P",
  346|      1|            "Path",
  347|      1|            "PEP",
  348|      1|            "Pep-Info",
  349|      1|            "PICS-Label",
  350|      1|            "Position",
  351|      1|            "Posting-Version",
  352|      1|            "Pragma",
  353|      1|            "Prefer",
  354|      1|            "Preference-Applied",
  355|      1|            "Prevent-NonDelivery-Report",
  356|      1|            "Priority",
  357|      1|            "Privicon",
  358|      1|            "ProfileObject",
  359|      1|            "Protocol",
  360|      1|            "Protocol-Info",
  361|      1|            "Protocol-Query",
  362|      1|            "Protocol-Request",
  363|      1|            "Proxy-Authenticate",
  364|      1|            "Proxy-Authentication-Info",
  365|      1|            "Proxy-Authorization",
  366|      1|            "Proxy-Connection",
  367|      1|            "Proxy-Features",
  368|      1|            "Proxy-Instruction",
  369|      1|            "Public",
  370|      1|            "Public-Key-Pins",
  371|      1|            "Public-Key-Pins-Report-Only",
  372|      1|            "Range",
  373|      1|            "Received",
  374|      1|            "Received-SPF",
  375|      1|            "Redirect-Ref",
  376|      1|            "References",
  377|      1|            "Referer",
  378|      1|            "Referer-Root",
  379|      1|            "Relay-Version",
  380|      1|            "Reply-By",
  381|      1|            "Reply-To",
  382|      1|            "Require-Recipient-Valid-Since",
  383|      1|            "Resent-Bcc",
  384|      1|            "Resent-Cc",
  385|      1|            "Resent-Date",
  386|      1|            "Resent-From",
  387|      1|            "Resent-Message-ID",
  388|      1|            "Resent-Reply-To",
  389|      1|            "Resent-Sender",
  390|      1|            "Resent-To",
  391|      1|            "Resolution-Hint",
  392|      1|            "Resolver-Location",
  393|      1|            "Retry-After",
  394|      1|            "Return-Path",
  395|      1|            "Safe",
  396|      1|            "Schedule-Reply",
  397|      1|            "Schedule-Tag",
  398|      1|            "Sec-Fetch-Dest",
  399|      1|            "Sec-Fetch-Mode",
  400|      1|            "Sec-Fetch-Site",
  401|      1|            "Sec-Fetch-User",
  402|      1|            "Sec-WebSocket-Accept",
  403|      1|            "Sec-WebSocket-Extensions",
  404|      1|            "Sec-WebSocket-Key",
  405|      1|            "Sec-WebSocket-Protocol",
  406|      1|            "Sec-WebSocket-Version",
  407|      1|            "Security-Scheme",
  408|      1|            "See-Also",
  409|      1|            "Sender",
  410|      1|            "Sensitivity",
  411|      1|            "Server",
  412|      1|            "Set-Cookie",
  413|      1|            "Set-Cookie2",
  414|      1|            "SetProfile",
  415|      1|            "SIO-Label",
  416|      1|            "SIO-Label-History",
  417|      1|            "SLUG",
  418|      1|            "SoapAction",
  419|      1|            "Solicitation",
  420|      1|            "Status-URI",
  421|      1|            "Strict-Transport-Security",
  422|      1|            "Subject",
  423|      1|            "SubOK",
  424|      1|            "Subst",
  425|      1|            "Summary",
  426|      1|            "Supersedes",
  427|      1|            "Surrogate-Capability",
  428|      1|            "Surrogate-Control",
  429|      1|            "TCN",
  430|      1|            "TE",
  431|      1|            "Timeout",
  432|      1|            "Title",
  433|      1|            "To",
  434|      1|            "Topic",
  435|      1|            "Trailer",
  436|      1|            "Transfer-Encoding",
  437|      1|            "TTL",
  438|      1|            "UA-Color",
  439|      1|            "UA-Media",
  440|      1|            "UA-Pixels",
  441|      1|            "UA-Resolution",
  442|      1|            "UA-Windowpixels",
  443|      1|            "Upgrade",
  444|      1|            "Urgency",
  445|      1|            "URI",
  446|      1|            "User-Agent",
  447|      1|            "Variant-Vary",
  448|      1|            "Vary",
  449|      1|            "VBR-Info",
  450|      1|            "Version",
  451|      1|            "Via",
  452|      1|            "Want-Digest",
  453|      1|            "Warning",
  454|      1|            "WWW-Authenticate",
  455|      1|            "X-Archived-At",
  456|      1|            "X-Device-Accept",
  457|      1|            "X-Device-Accept-Charset",
  458|      1|            "X-Device-Accept-Encoding",
  459|      1|            "X-Device-Accept-Language",
  460|      1|            "X-Device-User-Agent",
  461|      1|            "X-Frame-Options",
  462|      1|            "X-Mittente",
  463|      1|            "X-PGP-Sig",
  464|      1|            "X-Ricevuta",
  465|      1|            "X-Riferimento-Message-ID",
  466|      1|            "X-TipoRicevuta",
  467|      1|            "X-Trasporto",
  468|      1|            "X-VerificaSicurezza",
  469|      1|            "X400-Content-Identifier",
  470|      1|            "X400-Content-Return",
  471|      1|            "X400-Content-Type",
  472|      1|            "X400-MTS-Identifier",
  473|      1|            "X400-Originator",
  474|      1|            "X400-Received",
  475|      1|            "X400-Recipients",
  476|      1|            "X400-Trace",
  477|      1|            "Xref"
  478|      1|        }})
  479|      1|    {
  480|    256|        for(std::size_t i = 1, n = 256; i < n; ++i)
  ------------------
  |  Branch (480:41): [True: 255, False: 1]
  ------------------
  481|    255|        {
  482|    255|            auto sv = by_name_[ i ];
  483|    255|            auto h = digest(sv);
  484|    255|            auto j = h % N;
  485|    255|            BOOST_ASSERT(map_[j][0] == 0);
  ------------------
  |  |   66|    255|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  486|    255|            map_[j][0] = static_cast<unsigned char>(i);
  487|    255|        }
  488|       |
  489|    102|        for(std::size_t i = 256, n = by_name_.size(); i < n; ++i)
  ------------------
  |  Branch (489:55): [True: 101, False: 1]
  ------------------
  490|    101|        {
  491|    101|            auto sv = by_name_[i];
  492|    101|            auto h = digest(sv);
  493|    101|            auto j = h % N;
  494|    101|            BOOST_ASSERT(map_[j][1] == 0);
  ------------------
  |  |   66|    101|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  495|    101|            map_[j][1] = static_cast<unsigned char>(i - 255);
  496|    101|        }
  497|      1|    }
_ZN5boost5beast4http6detail11field_table6digestENS_4core17basic_string_viewIcEE:
   53|  65.7k|    {
   54|  65.7k|        std::uint32_t r = 0;
   55|  65.7k|        std::size_t n = s.size();
   56|  65.7k|        auto p = reinterpret_cast<
   57|  65.7k|            unsigned char const*>(s.data());
   58|       |        // consume N characters at a time
   59|       |        // VFALCO Can we do 8 on 64-bit systems?
   60|   203k|        while(n >= 4)
  ------------------
  |  Branch (60:15): [True: 138k, False: 65.7k]
  ------------------
   61|   138k|        {
   62|   138k|            auto const v = get_chars(p);
   63|   138k|            r = (r * 5 + (
   64|   138k|                v | 0x20202020 )); // convert to lower
   65|   138k|            p += 4;
   66|   138k|            n -= 4;
   67|   138k|        }
   68|       |        // handle remaining characters
   69|   140k|        while( n > 0 )
  ------------------
  |  Branch (69:16): [True: 74.3k, False: 65.7k]
  ------------------
   70|  74.3k|        {
   71|  74.3k|            r = r * 5 + ( *p | 0x20 );
   72|  74.3k|            ++p;
   73|  74.3k|            --n;
   74|  74.3k|        }
   75|  65.7k|        return r;
   76|  65.7k|    }
_ZN5boost5beast4http6detail11field_table9get_charsEPKh:
   34|   357k|    {
   35|       |        // VFALCO memcpy is endian-dependent
   36|       |        //std::memcpy(&v, p, 4);
   37|       |        // Compiler should be smart enough to
   38|       |        // optimize this down to one instruction.
   39|   357k|        return
   40|   357k|             p[0] |
   41|   357k|            (p[1] <<  8) |
   42|   357k|            (p[2] << 16) |
   43|   357k|            (p[3] << 24);
   44|   357k|    }
_ZNK5boost5beast4http6detail11field_table4sizeEv:
  528|  62.2k|    {
  529|  62.2k|        return by_name_.size();
  530|  62.2k|    }
_ZNK5boost5beast4http6detail11field_table5beginEv:
  534|  62.2k|    {
  535|  62.2k|        return by_name_.begin();
  536|  62.2k|    }
_ZN5boost5beast4http15string_to_fieldENS_4core17basic_string_viewIcEE:
  572|  65.3k|{
  573|  65.3k|    return detail::get_field_table().string_to_field(s);
  574|  65.3k|}
_ZNK5boost5beast4http6detail11field_table15string_to_fieldENS_4core17basic_string_viewIcEE:
  501|  65.3k|    {
  502|  65.3k|        auto h = digest(s);
  503|  65.3k|        auto j = h % N;
  504|  65.3k|        int i = map_[j][0];
  505|  65.3k|        string_view s2 = by_name_[i];
  506|  65.3k|        if(i != 0 && equals(s, s2))
  ------------------
  |  Branch (506:12): [True: 21.0k, False: 44.3k]
  |  Branch (506:22): [True: 17.7k, False: 3.36k]
  ------------------
  507|  17.7k|            return static_cast<field>(i);
  508|  47.6k|        i = map_[j][1];
  509|  47.6k|        if(i == 0)
  ------------------
  |  Branch (509:12): [True: 22.1k, False: 25.5k]
  ------------------
  510|  22.1k|            return field::unknown;
  511|  25.5k|        i += 255;
  512|  25.5k|        s2 = by_name_[i];
  513|       |
  514|  25.5k|        if(equals(s, s2))
  ------------------
  |  Branch (514:12): [True: 22.9k, False: 2.63k]
  ------------------
  515|  22.9k|            return static_cast<field>(i);
  516|  2.63k|        return field::unknown;
  517|  25.5k|    }
_ZN5boost5beast4http6detail11field_table6equalsENS_4core17basic_string_viewIcEES6_:
   83|  46.6k|    {
   84|  46.6k|        using Int = std::uint32_t; // VFALCO std::size_t?
   85|  46.6k|        auto n = lhs.size();
   86|  46.6k|        if(n != rhs.size())
  ------------------
  |  Branch (86:12): [True: 4.65k, False: 41.9k]
  ------------------
   87|  4.65k|            return false;
   88|  41.9k|        auto p1 = reinterpret_cast<
   89|  41.9k|            unsigned char const*>(lhs.data());
   90|  41.9k|        auto p2 = reinterpret_cast<
   91|  41.9k|            unsigned char const*>(rhs.data());
   92|  41.9k|        auto constexpr S = sizeof(Int);
   93|  41.9k|        auto constexpr Mask = static_cast<Int>(
   94|  41.9k|            0xDFDFDFDFDFDFDFDF & ~Int{0});
   95|   150k|        for(; n >= S; p1 += S, p2 += S, n -= S)
  ------------------
  |  Branch (95:15): [True: 109k, False: 41.4k]
  ------------------
   96|   109k|        {
   97|   109k|            Int const v1 = get_chars(p1);
   98|   109k|            Int const v2 = get_chars(p2);
   99|   109k|            if((v1 ^ v2) & Mask)
  ------------------
  |  Branch (99:16): [True: 520, False: 108k]
  ------------------
  100|    520|                return false;
  101|   109k|        }
  102|  85.5k|        for(; n; ++p1, ++p2, --n)
  ------------------
  |  Branch (102:15): [True: 44.8k, False: 40.6k]
  ------------------
  103|  44.8k|            if(( *p1 ^ *p2) & 0xDF)
  ------------------
  |  Branch (103:16): [True: 826, False: 44.0k]
  ------------------
  104|    826|                return false;
  105|  40.6k|        return true;
  106|  41.4k|    }

_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE3setENS1_5fieldENS_4core17basic_string_viewIcEE:
  585|  22.1k|{
  586|  22.1k|    BOOST_ASSERT(name != field::unknown);
  ------------------
  |  |   66|  22.1k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  587|  22.1k|    set_element(
  588|  22.1k|        new_element(name, to_string(name), value));
  589|  22.1k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE11set_elementERNS6_7elementE:
 1039|  22.1k|{
 1040|  22.1k|    auto it = set_.lower_bound(
 1041|  22.1k|        e.name_string(), key_compare{});
 1042|  22.1k|    if(it == set_.end() || ! beast::iequals(
  ------------------
  |  Branch (1042:8): [True: 17.0k, False: 5.17k]
  |  Branch (1042:8): [True: 22.1k, False: 0]
  |  Branch (1042:28): [True: 5.17k, False: 0]
  ------------------
 1043|  5.17k|        e.name_string(), it->name_string()))
 1044|  22.1k|    {
 1045|  22.1k|        set_.insert_before(it, e);
 1046|  22.1k|        list_.push_back(e);
 1047|  22.1k|        return;
 1048|  22.1k|    }
 1049|      0|    for(;;)
 1050|      0|    {
 1051|      0|        auto next = it;
 1052|      0|        ++next;
 1053|      0|        set_.erase(it);
 1054|      0|        list_.erase(list_.iterator_to(*it));
 1055|      0|        delete_element(*it);
 1056|      0|        it = next;
 1057|      0|        if(it == set_.end() ||
  ------------------
  |  Branch (1057:12): [True: 0, False: 0]
  |  Branch (1057:12): [True: 0, False: 0]
  ------------------
 1058|      0|            ! beast::iequals(e.name_string(), it->name_string()))
  ------------------
  |  Branch (1058:13): [True: 0, False: 0]
  ------------------
 1059|      0|            break;
 1060|      0|    }
 1061|      0|    set_.insert_before(it, e);
 1062|      0|    list_.push_back(e);
 1063|      0|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE10value_type11name_stringEv:
  322|  1.73M|{
  323|  1.73M|    return {data(),
  324|  1.73M|        static_cast<std::size_t>(off_ - 2)};
  325|  1.73M|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE10value_type4dataEv:
  272|  2.31M|{
  273|  2.31M|    return const_cast<char*>(
  274|  2.31M|        reinterpret_cast<char const*>(
  275|  2.31M|            static_cast<element const*>(this) + 1));
  276|  2.31M|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE14delete_elementERNS6_7elementE:
 1025|  87.5k|{
 1026|  87.5k|    auto a = rebind_type{this->get()};
 1027|  87.5k|    auto const n =
 1028|  87.5k|        (sizeof(element) + e.off_ + e.len_ + 2 + sizeof(align_type) - 1) /
 1029|  87.5k|            sizeof(align_type);
 1030|  87.5k|    e.~element();
 1031|  87.5k|    alloc_traits::deallocate(a,
 1032|  87.5k|        reinterpret_cast<align_type*>(&e), n);
 1033|  87.5k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE11new_elementENS1_5fieldENS_4core17basic_string_viewIcEESA_:
  985|  22.1k|{
  986|  22.1k|    error_code ec;
  987|  22.1k|    auto* e = try_create_new_element(name, sname, value, ec);
  988|  22.1k|    if(ec.failed())
  ------------------
  |  Branch (988:8): [True: 0, False: 22.1k]
  ------------------
  989|      0|        BOOST_THROW_EXCEPTION(system_error{ec});
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  990|  22.1k|    return *e;
  991|  22.1k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE22try_create_new_elementENS1_5fieldENS_4core17basic_string_viewIcEESA_RNS_6system10error_codeE:
  955|  87.5k|{
  956|  87.5k|    if(sname.size() > max_name_size)
  ------------------
  |  Branch (956:8): [True: 0, False: 87.5k]
  ------------------
  957|      0|    {
  958|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::header_field_name_too_large);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  959|      0|        return nullptr;
  960|      0|    }
  961|  87.5k|    if(value.size() > max_value_size)
  ------------------
  |  Branch (961:8): [True: 0, False: 87.5k]
  ------------------
  962|      0|    {
  963|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::header_field_value_too_large);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  964|      0|        return nullptr;
  965|      0|    }
  966|  87.5k|    value = detail::trim(value);
  967|  87.5k|    std::uint16_t const off =
  968|  87.5k|        static_cast<off_t>(sname.size() + 2);
  969|  87.5k|    std::uint16_t const len =
  970|  87.5k|        static_cast<off_t>(value.size());
  971|  87.5k|    auto a = rebind_type{this->get()};
  972|  87.5k|    auto const p = alloc_traits::allocate(a,
  973|  87.5k|        (sizeof(element) + off + len + 2 + sizeof(align_type) - 1) /
  974|  87.5k|            sizeof(align_type));
  975|  87.5k|    return ::new(p) element(name, sname, value);
  976|  87.5k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementC2ENS1_5fieldENS_4core17basic_string_viewIcEESB_:
  342|  87.5k|    : value_type(name, sname, value)
  343|  87.5k|{
  344|  87.5k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE10value_typeC2ENS1_5fieldENS_4core17basic_string_viewIcEESB_:
  293|  87.5k|    : off_(static_cast<off_t>(sname.size() + 2))
  294|  87.5k|    , len_(static_cast<off_t>(value.size()))
  295|  87.5k|    , f_(name)
  296|  87.5k|{
  297|       |    //BOOST_ASSERT(name == field::unknown ||
  298|       |    //    iequals(sname, to_string(name)));
  299|  87.5k|    char* p = data();
  300|  87.5k|    p[off_-2] = ':';
  301|  87.5k|    p[off_-1] = ' ';
  302|  87.5k|    p[off_ + len_] = '\r';
  303|  87.5k|    p[off_ + len_ + 1] = '\n';
  304|  87.5k|    sname.copy(p, sname.size());
  305|  87.5k|    value.copy(p + off_, value.size());
  306|  87.5k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEED2Ev:
  351|  13.8k|{
  352|  13.8k|    delete_list();
  353|  13.8k|    realloc_string(method_, {});
  354|  13.8k|    realloc_string(
  355|  13.8k|        target_or_reason_, {});
  356|  13.8k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE11delete_listEv:
 1147|  13.8k|{
 1148|   101k|    for(auto it = list_.begin(); it != list_.end();)
  ------------------
  |  Branch (1148:34): [True: 87.5k, False: 13.8k]
  ------------------
 1149|  87.5k|        delete_element(*it++);
 1150|  13.8k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE14realloc_stringERNS_4core17basic_string_viewIcEES9_:
 1069|  35.6k|{
 1070|  35.6k|    if(dest.empty() && s.empty())
  ------------------
  |  Branch (1070:8): [True: 24.7k, False: 10.8k]
  |  Branch (1070:24): [True: 21.9k, False: 2.84k]
  ------------------
 1071|  21.9k|        return;
 1072|  13.7k|    auto a = typename beast::detail::allocator_traits<
 1073|  13.7k|        Allocator>::template rebind_alloc<
 1074|  13.7k|            char>(this->get());
 1075|  13.7k|    char* p = nullptr;
 1076|  13.7k|    if(! s.empty())
  ------------------
  |  Branch (1076:8): [True: 2.84k, False: 10.8k]
  ------------------
 1077|  2.84k|    {
 1078|  2.84k|        p = a.allocate(s.size());
 1079|  2.84k|        s.copy(p, s.size());
 1080|  2.84k|    }
 1081|  13.7k|    if(! dest.empty())
  ------------------
  |  Branch (1081:8): [True: 10.8k, False: 2.84k]
  ------------------
 1082|  10.8k|        a.deallocate(const_cast<char*>(
 1083|  10.8k|            dest.data()), dest.size());
 1084|  13.7k|    if(p)
  ------------------
  |  Branch (1084:8): [True: 2.84k, False: 10.8k]
  ------------------
 1085|  2.84k|        dest = {p, s.size()};
 1086|  10.8k|    else
 1087|  10.8k|        dest = {};
 1088|  13.7k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE15set_target_implENS_4core17basic_string_viewIcEE:
  855|  8.02k|{
  856|  8.02k|    realloc_target(
  857|  8.02k|        target_or_reason_, s);
  858|  8.02k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE14realloc_targetERNS_4core17basic_string_viewIcEES9_:
 1095|  8.02k|{
 1096|       |    // The target string are stored with an
 1097|       |    // extra space at the beginning to help
 1098|       |    // the writer class.
 1099|  8.02k|    if(dest.empty() && s.empty())
  ------------------
  |  Branch (1099:8): [True: 8.02k, False: 0]
  |  Branch (1099:24): [True: 0, False: 8.02k]
  ------------------
 1100|      0|        return;
 1101|  8.02k|    auto a = typename beast::detail::allocator_traits<
 1102|  8.02k|        Allocator>::template rebind_alloc<
 1103|  8.02k|            char>(this->get());
 1104|  8.02k|    char* p = nullptr;
 1105|  8.02k|    if(! s.empty())
  ------------------
  |  Branch (1105:8): [True: 8.02k, False: 0]
  ------------------
 1106|  8.02k|    {
 1107|  8.02k|        p = a.allocate(1 + s.size());
 1108|  8.02k|        p[0] = ' ';
 1109|  8.02k|        s.copy(p + 1, s.size());
 1110|  8.02k|    }
 1111|  8.02k|    if(! dest.empty())
  ------------------
  |  Branch (1111:8): [True: 0, False: 8.02k]
  ------------------
 1112|      0|        a.deallocate(const_cast<char*>(
 1113|      0|            dest.data()), dest.size());
 1114|  8.02k|    if(p)
  ------------------
  |  Branch (1114:8): [True: 8.02k, False: 0]
  ------------------
 1115|  8.02k|        dest = {p, 1 + s.size()};
 1116|      0|    else
 1117|      0|        dest = {};
 1118|  8.02k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE15set_method_implENS_4core17basic_string_viewIcEE:
  846|  8.02k|{
  847|  8.02k|    realloc_string(method_, s);
  848|  8.02k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6insertENS1_5fieldENS_4core17basic_string_viewIcEESA_RNS_6system10error_codeE:
  563|  65.3k|{
  564|  65.3k|    ec = {};
  565|  65.3k|    auto* e = try_create_new_element(name, sname, value, ec);
  566|  65.3k|    if(ec.failed())
  ------------------
  |  Branch (566:8): [True: 0, False: 65.3k]
  ------------------
  567|      0|        return;
  568|  65.3k|    insert_element(*e);
  569|  65.3k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE14insert_elementERNS6_7elementE:
  997|  65.3k|{
  998|  65.3k|    auto const before =
  999|  65.3k|        set_.upper_bound(e.name_string(), key_compare{});
 1000|  65.3k|    if(before == set_.begin())
  ------------------
  |  Branch (1000:8): [True: 11.3k, False: 54.0k]
  ------------------
 1001|  11.3k|    {
 1002|  11.3k|        BOOST_ASSERT(count(e.name_string()) == 0);
  ------------------
  |  |   66|  11.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1003|  11.3k|        set_.insert_before(before, e);
 1004|  11.3k|        list_.push_back(e);
 1005|  11.3k|        return;
 1006|  11.3k|    }
 1007|  54.0k|    auto const last = std::prev(before);
 1008|       |    // VFALCO is it worth comparing `field name` first?
 1009|  54.0k|    if(! beast::iequals(e.name_string(), last->name_string()))
  ------------------
  |  Branch (1009:8): [True: 26.5k, False: 27.5k]
  ------------------
 1010|  26.5k|    {
 1011|  26.5k|        BOOST_ASSERT(count(e.name_string()) == 0);
  ------------------
  |  |   66|  26.5k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1012|  26.5k|        set_.insert_before(before, e);
 1013|  26.5k|        list_.push_back(e);
 1014|  26.5k|        return;
 1015|  26.5k|    }
 1016|       |    // keep duplicate fields together in the list
 1017|  27.5k|    set_.insert_before(before, e);
 1018|  27.5k|    list_.insert(++list_.iterator_to(*last), e);
 1019|  27.5k|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE5countENS_4core17basic_string_viewIcEE:
  676|  47.9k|{
  677|  47.9k|    return set_.count(name, key_compare{});
  678|  47.9k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEEC2EOS6_:
  368|    450|    : boost::empty_value<Allocator>(boost::empty_init_t(),
  369|    450|        std::move(other.get()))
  370|    450|    , set_(std::move(other.set_))
  371|    450|    , list_(std::move(other.list_))
  372|    450|    , method_(boost::exchange(other.method_, {}))
  373|    450|    , target_or_reason_(boost::exchange(other.target_or_reason_, {}))
  374|    450|{
  375|    450|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE5countENS1_5fieldE:
  667|  10.1k|{
  668|  10.1k|    BOOST_ASSERT(name != field::unknown);
  ------------------
  |  |   66|  10.1k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  669|  10.1k|    return count(to_string(name));
  670|  10.1k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE23set_content_length_implERKNS_8optionalImEE:
  918|    502|{
  919|    502|    if(! value)
  ------------------
  |  Branch (919:8): [True: 0, False: 502]
  ------------------
  920|      0|        erase(field::content_length);
  921|    502|    else
  922|    502|    {
  923|    502|        auto s = to_static_string(*value);
  924|    502|        set(field::content_length,
  925|    502|            to_string_view(s));
  926|    502|    }
  927|    502|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE16set_chunked_implEb:
  874|    502|{
  875|    502|    beast::detail::temporary_buffer buf;
  876|    502|    auto it = find(field::transfer_encoding);
  877|    502|    if(value)
  ------------------
  |  Branch (877:8): [True: 0, False: 502]
  ------------------
  878|      0|    {
  879|       |        // append "chunked"
  880|      0|        if(it == end())
  ------------------
  |  Branch (880:12): [True: 0, False: 0]
  ------------------
  881|      0|        {
  882|      0|            set(field::transfer_encoding, "chunked");
  883|      0|            return;
  884|      0|        }
  885|      0|        auto const te = token_list{it->value()};
  886|      0|        for(auto itt = te.begin();;)
  887|      0|        {
  888|      0|            auto const next = std::next(itt);
  889|      0|            if(next == te.end())
  ------------------
  |  Branch (889:16): [True: 0, False: 0]
  ------------------
  890|      0|            {
  891|      0|                if(beast::iequals(*itt, "chunked"))
  ------------------
  |  Branch (891:20): [True: 0, False: 0]
  ------------------
  892|      0|                    return; // already set
  893|      0|                break;
  894|      0|            }
  895|      0|            itt = next;
  896|      0|        }
  897|       |
  898|      0|        buf.append(it->value(), ", chunked");
  899|      0|        set(field::transfer_encoding, buf.view());
  900|      0|        return;
  901|      0|    }
  902|       |    // filter "chunked"
  903|    502|    if(it == end())
  ------------------
  |  Branch (903:8): [True: 502, False: 0]
  ------------------
  904|    502|        return;
  905|       |
  906|      0|    detail::filter_token_list_last(buf, it->value(), {"chunked", {}});
  907|      0|    if(! buf.empty())
  ------------------
  |  Branch (907:8): [True: 0, False: 0]
  ------------------
  908|      0|        set(field::transfer_encoding, buf.view());
  909|      0|    else
  910|      0|        erase(field::transfer_encoding);
  911|      0|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEEixENS_4core17basic_string_viewIcEE:
  513|  9.28k|{
  514|  9.28k|    auto const it = find(name);
  515|  9.28k|    if(it == end())
  ------------------
  |  Branch (515:8): [True: 3.55k, False: 5.73k]
  ------------------
  516|  3.55k|        return {};
  517|  5.73k|    return it->value();
  518|  9.28k|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE4findENS_4core17basic_string_viewIcEE:
  696|  39.1k|{
  697|  39.1k|    auto const it = set_.find(
  698|  39.1k|        name, key_compare{});
  699|  39.1k|    if(it == set_.end())
  ------------------
  |  Branch (699:8): [True: 14.4k, False: 24.7k]
  ------------------
  700|  14.4k|        return list_.end();
  701|  24.7k|    return list_.iterator_to(*it);
  702|  39.1k|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE4findENS1_5fieldE:
  686|  29.9k|{
  687|  29.9k|    BOOST_ASSERT(name != field::unknown);
  ------------------
  |  |   66|  29.9k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  688|  29.9k|    return find(to_string(name));
  689|  29.9k|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE10value_type5valueEv:
  332|  24.7k|{
  333|  24.7k|    return {data() + off_,
  334|  24.7k|        static_cast<std::size_t>(len_)};
  335|  24.7k|}
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEEixENS1_5fieldE:
  501|  5.15k|{
  502|  5.15k|    BOOST_ASSERT(name != field::unknown);
  ------------------
  |  |   66|  5.15k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  503|  5.15k|    auto const it = find(name);
  504|  5.15k|    if(it == end())
  ------------------
  |  Branch (504:8): [True: 5.14k, False: 11]
  ------------------
  505|  5.14k|        return {};
  506|     11|    return it->value();
  507|  5.15k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerC2ERKS6_jj:
  229|  5.14k|    : f_(f)
  230|  5.14k|{
  231|       |/*
  232|       |    response
  233|       |        "HTTP/X.Y ### " (13 chars)
  234|       |        "<reason>"
  235|       |        "\r\n"
  236|       |*/
  237|  5.14k|    buf_[0] = 'H';
  238|  5.14k|    buf_[1] = 'T';
  239|  5.14k|    buf_[2] = 'T';
  240|  5.14k|    buf_[3] = 'P';
  241|  5.14k|    buf_[4] = '/';
  242|  5.14k|    buf_[5] = '0' + static_cast<char>(version / 10);
  243|  5.14k|    buf_[6] = '.';
  244|  5.14k|    buf_[7] = '0' + static_cast<char>(version % 10);
  245|  5.14k|    buf_[8] = ' ';
  246|  5.14k|    buf_[9] = '0' + static_cast<char>(code / 100);
  247|  5.14k|    buf_[10]= '0' + static_cast<char>((code / 10) % 10);
  248|  5.14k|    buf_[11]= '0' + static_cast<char>(code % 10);
  249|  5.14k|    buf_[12]= ' ';
  250|       |
  251|  5.14k|    string_view sv;
  252|  5.14k|    if(! f_.target_or_reason_.empty())
  ------------------
  |  Branch (252:8): [True: 0, False: 5.14k]
  ------------------
  253|      0|        sv = f_.target_or_reason_;
  254|  5.14k|    else
  255|  5.14k|        sv = obsolete_reason(static_cast<status>(code));
  256|       |
  257|  5.14k|    view_.emplace(
  258|  5.14k|        net::const_buffer{buf_, 13},
  259|  5.14k|        net::const_buffer{sv.data(), sv.size()},
  260|  5.14k|        net::const_buffer{"\r\n", 2},
  261|  5.14k|        field_range(f_.list_.begin(), f_.list_.end()),
  262|  5.14k|        chunk_crlf{});
  263|  5.14k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorC2ERKS8_:
   50|   293k|        field_iterator(field_iterator const& other) = default;
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeC2ENS_9intrusive13list_iteratorINS9_8bhtraitsINS6_7elementENS9_16list_node_traitsIPvEELNS9_14link_mode_typeE0ENS9_7dft_tagELj1EEELb1EEESJ_:
  122|  5.14k|            : first_(first)
  123|  5.14k|            , last_(last)
  124|  5.14k|        {
  125|  5.14k|        }
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorC2ENS_9intrusive13list_iteratorINS9_8bhtraitsINS6_7elementENS9_16list_node_traitsIPvEELNS9_14link_mode_typeE0ENS9_7dft_tagELj1EEELb1EEE:
   56|  10.2k|            : it_(it)
   57|  10.2k|        {
   58|  10.2k|        }
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE16get_chunked_implEv:
  801|  5.14k|{
  802|  5.14k|    auto const te = token_list{
  803|  5.14k|        (*this)[field::transfer_encoding]};
  804|  5.14k|    for(auto it = te.begin(); it != te.end();)
  ------------------
  |  Branch (804:31): [True: 0, False: 5.14k]
  ------------------
  805|      0|    {
  806|      0|        auto const next = std::next(it);
  807|      0|        if(next == te.end())
  ------------------
  |  Branch (807:12): [True: 0, False: 0]
  ------------------
  808|      0|            return beast::iequals(*it, "chunked");
  809|      0|        it = next;
  810|      0|    }
  811|  5.14k|    return false;
  812|  5.14k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorC2EOS8_:
   49|  30.8k|        field_iterator(field_iterator&& other) = default;
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_range5beginEv:
  129|  30.8k|        {
  130|  30.8k|            return first_;
  131|  30.8k|        }
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratoreqERKS8_:
   62|   163k|        {
   63|   163k|            return it_ == other.it_;
   64|   163k|        }
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_range3endEv:
  135|   163k|        {
  136|   163k|            return last_;
  137|   163k|        }
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratordeEv:
   74|   465k|        {
   75|   465k|            return it_->buffer();
   76|   465k|        }
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE10value_type6bufferEv:
  283|   465k|{
  284|   465k|    return net::const_buffer{data(),
  285|   465k|        static_cast<std::size_t>(off_) + len_ + 2};
  286|   465k|}
_ZN5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorppEv:
   80|   133k|        {
   81|   133k|            ++it_;
   82|   133k|            return *this;
   83|   133k|        }
_ZNK5boost5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer3getEv:
  165|  5.14k|    {
  166|  5.14k|        return const_buffers_type(*view_);
  167|  5.14k|    }

_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE6targetENS_4core17basic_string_viewIcEE:
   85|  8.02k|{
   86|  8.02k|    this->set_target_impl(s);
   87|  8.02k|}
_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE6methodENS1_4verbE:
   43|  5.17k|{
   44|  5.17k|    if(v == verb::unknown)
  ------------------
  |  Branch (44:8): [True: 0, False: 5.17k]
  ------------------
   45|      0|        BOOST_THROW_EXCEPTION(
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
   46|  5.17k|            std::invalid_argument{"unknown method"});
   47|  5.17k|    method_ = v;
   48|  5.17k|    this->set_method_impl({});
   49|  5.17k|}
_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE13method_stringENS_4core17basic_string_viewIcEE:
   65|  2.84k|{
   66|  2.84k|    method_ = string_to_verb(s);
   67|  2.84k|    if(method_ != verb::unknown)
  ------------------
  |  Branch (67:8): [True: 0, False: 2.84k]
  ------------------
   68|      0|        this->set_method_impl({});
   69|  2.84k|    else
   70|  2.84k|        this->set_method_impl(s);
   71|  2.84k|}
_ZNK5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE6methodEv:
   35|  5.08k|{
   36|  5.08k|    return method_;
   37|  5.08k|}
_ZN5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE15prepare_payloadENS4_17integral_constantIbLb0EEE:
  390|    491|{
  391|    491|    auto const n = payload_size();
  392|    491|    if( (! n || *n > 0) && (
  ------------------
  |  Branch (392:10): [True: 0, False: 491]
  |  Branch (392:17): [True: 491, False: 0]
  ------------------
  393|    491|        (status_class(this->result()) == status_class::informational ||
  ------------------
  |  Branch (393:10): [True: 0, False: 491]
  ------------------
  394|    491|        this->result() == status::no_content ||
  ------------------
  |  Branch (394:9): [True: 0, False: 491]
  ------------------
  395|    491|        this->result() == status::not_modified)))
  ------------------
  |  Branch (395:9): [True: 0, False: 491]
  ------------------
  396|      0|    {
  397|       |        // The response body MUST be empty for this case
  398|      0|        BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  399|      0|            "invalid response body"});
  400|      0|    }
  401|    491|    if(n)
  ------------------
  |  Branch (401:8): [True: 491, False: 0]
  ------------------
  402|    491|        this->content_length(n);
  403|      0|    else if(this->version() == 11)
  ------------------
  |  Branch (403:13): [True: 0, False: 0]
  ------------------
  404|      0|        this->chunked(true);
  405|      0|    else
  406|      0|        this->chunked(false);
  407|    491|}
_ZNK5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE12payload_sizeEv:
  333|    491|{
  334|    491|    return payload_size(detail::is_body_sized<Body>{});
  335|    491|}
_ZNK5boost5beast4http6headerILb0ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE6resultEv:
  118|  1.47k|{
  119|  1.47k|    return int_to_status(
  120|  1.47k|        static_cast<int>(result_));
  121|  1.47k|}
_ZN5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE14content_lengthERKNS_8optionalImEE:
  324|    491|{
  325|    491|    this->set_content_length_impl(value);
  326|    491|    this->set_chunked_impl(false);
  327|    491|}
_ZN5boost5beast4http6headerILb0ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE6resultENS1_6statusE:
  127|  5.14k|{
  128|  5.14k|    result_ = v;
  129|  5.14k|}
_ZN5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE15prepare_payloadENS5_17integral_constantIbLb0EEE:
  390|     11|{
  391|     11|    auto const n = payload_size();
  392|     11|    if( (! n || *n > 0) && (
  ------------------
  |  Branch (392:10): [True: 0, False: 11]
  |  Branch (392:17): [True: 0, False: 11]
  ------------------
  393|      0|        (status_class(this->result()) == status_class::informational ||
  ------------------
  |  Branch (393:10): [True: 0, False: 0]
  ------------------
  394|      0|        this->result() == status::no_content ||
  ------------------
  |  Branch (394:9): [True: 0, False: 0]
  ------------------
  395|      0|        this->result() == status::not_modified)))
  ------------------
  |  Branch (395:9): [True: 0, False: 0]
  ------------------
  396|      0|    {
  397|       |        // The response body MUST be empty for this case
  398|      0|        BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  399|      0|            "invalid response body"});
  400|      0|    }
  401|     11|    if(n)
  ------------------
  |  Branch (401:8): [True: 11, False: 0]
  ------------------
  402|     11|        this->content_length(n);
  403|      0|    else if(this->version() == 11)
  ------------------
  |  Branch (403:13): [True: 0, False: 0]
  ------------------
  404|      0|        this->chunked(true);
  405|      0|    else
  406|      0|        this->chunked(false);
  407|     11|}
_ZNK5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE12payload_sizeEv:
  333|     11|{
  334|     11|    return payload_size(detail::is_body_sized<Body>{});
  335|     11|}
_ZN5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE14content_lengthERKNS_8optionalImEE:
  324|     11|{
  325|     11|    this->set_content_length_impl(value);
  326|     11|    this->set_chunked_impl(false);
  327|     11|}
_ZNK5boost5beast4http6headerILb0ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE10result_intEv:
  147|  5.14k|{
  148|  5.14k|    return static_cast<unsigned>(result_);
  149|  5.14k|}

_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEEC2Ev:
   23|  8.21k|    : rd_(m_.base(), m_.body())
   24|  8.21k|{
   25|  8.21k|}

_ZN5boost5beast4http4readINS0_4test12basic_streamINS_4asio15any_io_executorEEENS0_13static_bufferILm1536EEELb1EEEmRT_RT0_RNS1_12basic_parserIXT1_EEERNS_6system10error_codeE:
  592|  8.21k|{
  593|  8.21k|    static_assert(
  594|  8.21k|        is_sync_read_stream<SyncReadStream>::value,
  595|  8.21k|        "SyncReadStream type requirements not met");
  596|  8.21k|    static_assert(
  597|  8.21k|        net::is_dynamic_buffer<DynamicBuffer>::value,
  598|  8.21k|        "DynamicBuffer type requirements not met");
  599|  8.21k|    parser.eager(true);
  600|  8.21k|    return detail::sync_read_op<
  601|  8.21k|        detail::parser_is_done>(
  602|  8.21k|            stream, buffer, parser, ec);
  603|  8.21k|}
_ZN5boost5beast4http6detail12sync_read_opINS2_14parser_is_doneENS0_4test12basic_streamINS_4asio15any_io_executorEEENS0_13static_bufferILm1536EEELb1EEEmRT0_RT1_RNS1_12basic_parserIXT2_EEERNS_6system10error_codeE:
  395|  8.21k|{
  396|  8.21k|    std::size_t total = 0;
  397|  8.21k|    ec.clear();
  398|       |
  399|  8.21k|    if (!Condition{}(p))
  ------------------
  |  Branch (399:9): [True: 8.21k, False: 0]
  ------------------
  400|  8.21k|    {
  401|  8.21k|        do
  402|  8.27k|        {
  403|  8.27k|            total +=
  404|  8.27k|                detail::read_some(s, b, p, ec);
  405|  8.27k|        } while (!ec &&
  ------------------
  |  Branch (405:18): [True: 5.18k, False: 3.08k]
  |  Branch (405:18): [True: 55, False: 8.21k]
  ------------------
  406|  8.27k|                 !Condition{}(p));
  ------------------
  |  Branch (406:18): [True: 55, False: 5.13k]
  ------------------
  407|  8.21k|    }
  408|  8.21k|    return total;
  409|  8.21k|}
_ZNK5boost5beast4http6detail14parser_is_doneclILb1EEEbRKNS1_12basic_parserIXT_EEE:
   38|  13.4k|    {
   39|  13.4k|        return p.is_done();
   40|  13.4k|    }
_ZN5boost5beast4http6detail9read_someINS0_4test12basic_streamINS_4asio15any_io_executorEEENS0_13static_bufferILm1536EEELb1EEEmRT_RT0_RNS1_12basic_parserIXT1_EEERNS_6system10error_codeE:
  337|  8.27k|{
  338|  8.27k|    std::size_t total = 0;
  339|  8.27k|    ec.clear();
  340|  8.27k|    if(b.size() == 0)
  ------------------
  |  Branch (340:8): [True: 8.27k, False: 0]
  ------------------
  341|  8.27k|        goto do_read;
  342|      0|    for(;;)
  343|  8.84k|    {
  344|       |        // parse
  345|  8.84k|        {
  346|  8.84k|            auto const used = p.put(b.data(), ec);
  347|  8.84k|            total += used;
  348|  8.84k|            b.consume(used);
  349|  8.84k|        }
  350|  8.84k|        if(ec != http::error::need_more)
  ------------------
  |  Branch (350:12): [True: 5.90k, False: 2.93k]
  ------------------
  351|  5.90k|            break;
  352|       |
  353|  11.2k|    do_read:
  354|       |        // VFALCO This was read_size_or_throw
  355|  11.2k|        auto const size = read_size(b, 65536);
  356|  11.2k|        if(size == 0)
  ------------------
  |  Branch (356:12): [True: 4, False: 11.2k]
  ------------------
  357|      4|        {
  358|      4|            BOOST_BEAST_ASSIGN_EC(ec, error::buffer_overflow);
  ------------------
  |  |  111|      4|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      4|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      4|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      4|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      4|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  359|      4|            return total;
  360|      4|        }
  361|  11.2k|        auto const mb =
  362|  11.2k|            beast::detail::dynamic_buffer_prepare(
  363|  11.2k|                b, size, ec, error::buffer_overflow);
  364|  11.2k|        if(ec)
  ------------------
  |  Branch (364:12): [True: 0, False: 11.2k]
  ------------------
  365|      0|            return total;
  366|  11.2k|        std::size_t
  367|  11.2k|            bytes_transferred =
  368|  11.2k|                s.read_some(*mb, ec);
  369|  11.2k|        b.commit(bytes_transferred);
  370|  11.2k|        if(ec == net::error::eof)
  ------------------
  |  Branch (370:12): [True: 2.35k, False: 8.84k]
  ------------------
  371|  2.35k|        {
  372|  2.35k|            BOOST_ASSERT(bytes_transferred == 0);
  ------------------
  |  |   66|  2.35k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  373|  2.35k|            if(p.got_some())
  ------------------
  |  Branch (373:16): [True: 2.35k, False: 0]
  ------------------
  374|  2.35k|            {
  375|       |                // caller sees EOF on next read
  376|  2.35k|                ec.assign(0, ec.category());
  377|  2.35k|                p.put_eof(ec);
  378|  2.35k|                if(ec)
  ------------------
  |  Branch (378:20): [True: 2.35k, False: 0]
  ------------------
  379|  2.35k|                    return total;
  380|      0|                BOOST_ASSERT(p.is_done());
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  381|      0|                return total;
  382|      0|            }
  383|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::end_of_stream);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  384|      0|            break;
  385|  2.35k|        }
  386|  8.84k|        if(ec)
  ------------------
  |  Branch (386:12): [True: 0, False: 8.84k]
  ------------------
  387|      0|            break;
  388|  8.84k|    }
  389|       |
  390|  5.90k|    return total;
  391|      0|}

_ZN5boost5beast4http13validate_listINS1_6detail21opt_token_list_policyEEEbRKNS3_17basic_parsed_listIT_EE:
  364|  6.33k|{
  365|  6.33k|    auto const last = list.end();
  366|  6.33k|    auto it = list.begin();
  367|  6.33k|    if(it.error())
  ------------------
  |  Branch (367:8): [True: 10, False: 6.32k]
  ------------------
  368|     10|        return false;
  369|  12.3k|    while(it != last)
  ------------------
  |  Branch (369:11): [True: 12.0k, False: 248]
  ------------------
  370|  12.0k|    {
  371|  12.0k|        ++it;
  372|  12.0k|        if(it.error())
  ------------------
  |  Branch (372:12): [True: 25, False: 12.0k]
  ------------------
  373|     25|            return false;
  374|  12.0k|        if(it == last)
  ------------------
  |  Branch (374:12): [True: 6.05k, False: 6.00k]
  ------------------
  375|  6.05k|            break;
  376|  12.0k|    }
  377|  6.30k|    return true;
  378|  6.32k|}
_ZNK5boost5beast4http10token_list14const_iteratordeEv:
  283|  14.4k|    {
  284|  14.4k|        return v_;
  285|  14.4k|    }
_ZN5boost5beast4http10token_list14const_iteratorppEv:
  295|  4.98k|    {
  296|  4.98k|        increment();
  297|  4.98k|        return *this;
  298|  4.98k|    }
_ZNK5boost5beast4http10token_list5beginEv:
  329|  18.1k|{
  330|  18.1k|    return const_iterator{s_.begin(), s_.end()};
  331|  18.1k|}
_ZN5boost5beast4http10token_list14const_iteratorC2EPKcS5_:
  312|  51.0k|    {
  313|  51.0k|        it_ = begin;
  314|  51.0k|        first_ = begin;
  315|  51.0k|        last_ = end;
  316|  51.0k|        increment();
  317|  51.0k|    }
_ZNK5boost5beast4http10token_list3endEv:
  338|  32.8k|{
  339|  32.8k|    return const_iterator{s_.end(), s_.end()};
  340|  32.8k|}
_ZNK5boost5beast4http10token_list14const_iteratoreqERKS3_:
  268|  36.2k|    {
  269|  36.2k|        return
  270|  36.2k|            other.it_ == it_ &&
  ------------------
  |  Branch (270:13): [True: 31.1k, False: 5.04k]
  ------------------
  271|  36.2k|            other.first_ == first_ &&
  ------------------
  |  Branch (271:13): [True: 9.76k, False: 21.4k]
  ------------------
  272|  36.2k|            other.last_ == last_;
  ------------------
  |  Branch (272:13): [True: 9.76k, False: 0]
  ------------------
  273|  36.2k|    }
_ZNK5boost5beast4http10token_list14const_iteratorneERKS3_:
  277|  32.7k|    {
  278|  32.7k|        return !(*this == other);
  279|  32.7k|    }
_ZNK5boost5beast4http8ext_list5beginEv:
  216|  9.28k|{
  217|  9.28k|    return const_iterator{s_.begin(), s_.end()};
  218|  9.28k|}
_ZN5boost5beast4http8ext_list14const_iteratorC2EPKcS5_:
  199|  18.5k|    {
  200|  18.5k|        it_ = begin;
  201|  18.5k|        first_ = begin;
  202|  18.5k|        last_ = end;
  203|  18.5k|        increment();
  204|  18.5k|    }
_ZNK5boost5beast4http8ext_list3endEv:
  225|  9.28k|{
  226|  9.28k|    return const_iterator{s_.end(), s_.end()};
  227|  9.28k|}
_ZNK5boost5beast4http8ext_list14const_iteratorneERKS3_:
  164|  10.3k|    {
  165|  10.3k|        return !(*this == other);
  166|  10.3k|    }
_ZNK5boost5beast4http8ext_list14const_iteratoreqERKS3_:
  155|  10.3k|    {
  156|  10.3k|        return
  157|  10.3k|            other.it_ == it_ &&
  ------------------
  |  Branch (157:13): [True: 7.48k, False: 2.83k]
  ------------------
  158|  10.3k|            other.first_ == first_ &&
  ------------------
  |  Branch (158:13): [True: 3.93k, False: 3.54k]
  ------------------
  159|  10.3k|            other.last_ == last_;
  ------------------
  |  Branch (159:13): [True: 3.93k, False: 0]
  ------------------
  160|  10.3k|    }
_ZNK5boost5beast4http8ext_list14const_iteratordeEv:
  170|  6.38k|    {
  171|  6.38k|        return v_;
  172|  6.38k|    }
_ZNK5boost5beast4http10param_list5beginEv:
  104|  5.35k|{
  105|  5.35k|    return const_iterator{s_.begin(), s_.end()};
  106|  5.35k|}
_ZN5boost5beast4http10param_list14const_iteratorC2EPKcS5_:
   82|  10.7k|    {
   83|  10.7k|        pi_.it = first;
   84|  10.7k|        pi_.first = first;
   85|  10.7k|        pi_.last = last;
   86|  10.7k|        increment();
   87|  10.7k|    }
_ZNK5boost5beast4http10param_list3endEv:
  113|  5.35k|{
  114|  5.35k|    return const_iterator{s_.end(), s_.end()};
  115|  5.35k|}
_ZNK5boost5beast4http10param_list14const_iteratorneERKS3_:
   47|  5.35k|    {
   48|  5.35k|        return !(*this == other);
   49|  5.35k|    }
_ZNK5boost5beast4http10param_list14const_iteratoreqERKS3_:
   38|  5.35k|    {
   39|  5.35k|        return
   40|  5.35k|            other.pi_.it == pi_.it &&
  ------------------
  |  Branch (40:13): [True: 5.35k, False: 3]
  ------------------
   41|  5.35k|            other.pi_.last == pi_.last &&
  ------------------
  |  Branch (41:13): [True: 5.35k, False: 0]
  ------------------
   42|  5.35k|            other.pi_.first == pi_.first;
  ------------------
  |  Branch (42:13): [True: 5.23k, False: 118]
  ------------------
   43|  5.35k|    }
_ZNK5boost5beast4http10param_list14const_iteratordeEv:
   53|    121|    {
   54|    121|        return pi_.v;
   55|    121|    }
_ZN5boost5beast4http8ext_list14const_iteratorppEv:
  182|  1.03k|    {
  183|  1.03k|        increment();
  184|  1.03k|        return *this;
  185|  1.03k|    }

_ZN5boost5beast4http10token_list14const_iterator9incrementEv:
  146|  55.9k|{
  147|       |    /*
  148|       |        token-list  = *( "," OWS ) token *( OWS "," [ OWS ext ] )
  149|       |    */
  150|  55.9k|    auto const err =
  151|  55.9k|        [&]
  152|  55.9k|        {
  153|  55.9k|            it_ = last_;
  154|  55.9k|            first_ = last_;
  155|  55.9k|        };
  156|  55.9k|    auto need_comma = it_ != first_;
  157|  55.9k|    v_ = {};
  158|  55.9k|    first_ = it_;
  159|  55.9k|    for(;;)
  160|  61.0k|    {
  161|  61.0k|        detail::skip_ows(it_, last_);
  162|  61.0k|        if(it_ == last_)
  ------------------
  |  Branch (162:12): [True: 39.6k, False: 21.3k]
  ------------------
  163|  39.6k|            return err();
  164|  21.3k|        auto const c = *it_;
  165|  21.3k|        if(detail::is_token_char(c))
  ------------------
  |  Branch (165:12): [True: 15.6k, False: 5.67k]
  ------------------
  166|  15.6k|        {
  167|  15.6k|            if(need_comma)
  ------------------
  |  Branch (167:16): [True: 232, False: 15.4k]
  ------------------
  168|    232|                return err();
  169|  15.4k|            auto const p0 = it_;
  170|  15.4k|            for(;;)
  171|   105k|            {
  172|   105k|                ++it_;
  173|   105k|                if(it_ == last_)
  ------------------
  |  Branch (173:20): [True: 11.4k, False: 93.6k]
  ------------------
  174|  11.4k|                    break;
  175|  93.6k|                if(! detail::is_token_char(*it_))
  ------------------
  |  Branch (175:20): [True: 3.95k, False: 89.6k]
  ------------------
  176|  3.95k|                    break;
  177|  93.6k|            }
  178|  15.4k|            v_ = string_view{&*p0,
  179|  15.4k|                static_cast<std::size_t>(it_ - p0)};
  180|  15.4k|            return;
  181|  15.6k|        }
  182|  5.67k|        if(c != ',')
  ------------------
  |  Branch (182:12): [True: 644, False: 5.03k]
  ------------------
  183|    644|            return err();
  184|  5.03k|        need_comma = false;
  185|  5.03k|        ++it_;
  186|  5.03k|    }
  187|  55.9k|}
_ZZN5boost5beast4http10token_list14const_iterator9incrementEvENKUlvE_clEv:
  152|  40.5k|        {
  153|  40.5k|            it_ = last_;
  154|  40.5k|            first_ = last_;
  155|  40.5k|        };
_ZN5boost5beast4http10token_list6existsERKNS_4core17basic_string_viewIcEE:
  192|  9.58k|{
  193|  9.58k|    return std::find_if(begin(), end(),
  194|  9.58k|        [&s](value_type const& v)
  195|  9.58k|        {
  196|  9.58k|            return beast::iequals(s, v);
  197|  9.58k|        }
  198|  9.58k|    ) != end();
  199|  9.58k|}
_ZZN5boost5beast4http10token_list6existsERKNS_4core17basic_string_viewIcEEENKUlS7_E_clES7_:
  195|  10.5k|        {
  196|  10.5k|            return beast::iequals(s, v);
  197|  10.5k|        }
_ZN5boost5beast4http8ext_list14const_iterator9incrementEv:
   60|  19.6k|{
   61|       |    /*
   62|       |        ext-list    = *( "," OWS ) ext *( OWS "," [ OWS ext ] )
   63|       |        ext         = token param-list
   64|       |        param-list  = *( OWS ";" OWS param )
   65|       |        param       = token OWS "=" OWS ( token / quoted-string )
   66|       |
   67|       |        chunked;a=b;i=j;gzip;windowBits=12
   68|       |        x,y
   69|       |        ,,,,,chameleon
   70|       |    */
   71|  19.6k|    auto const err =
   72|  19.6k|        [&]
   73|  19.6k|        {
   74|  19.6k|            it_ = last_;
   75|  19.6k|            first_ = last_;
   76|  19.6k|        };
   77|  19.6k|    auto need_comma = it_ != first_;
   78|  19.6k|    v_.first = {};
   79|  19.6k|    first_ = it_;
   80|  19.6k|    for(;;)
   81|  21.6k|    {
   82|  21.6k|        detail::skip_ows(it_, last_);
   83|  21.6k|        if(it_ == last_)
  ------------------
  |  Branch (83:12): [True: 12.9k, False: 8.71k]
  ------------------
   84|  12.9k|            return err();
   85|  8.71k|        auto const c = *it_;
   86|  8.71k|        if(detail::is_token_char(c))
  ------------------
  |  Branch (86:12): [True: 6.39k, False: 2.31k]
  ------------------
   87|  6.39k|        {
   88|  6.39k|            if(need_comma)
  ------------------
  |  Branch (88:16): [True: 10, False: 6.38k]
  ------------------
   89|     10|                return err();
   90|  6.38k|            auto const p0 = it_;
   91|  6.38k|            for(;;)
   92|   103k|            {
   93|   103k|                ++it_;
   94|   103k|                if(it_ == last_)
  ------------------
  |  Branch (94:20): [True: 3.37k, False: 99.9k]
  ------------------
   95|  3.37k|                    break;
   96|  99.9k|                if(! detail::is_token_char(*it_))
  ------------------
  |  Branch (96:20): [True: 3.01k, False: 96.9k]
  ------------------
   97|  3.01k|                    break;
   98|  99.9k|            }
   99|  6.38k|            v_.first = string_view{&*p0,
  100|  6.38k|                static_cast<std::size_t>(it_ - p0)};
  101|  6.38k|			if (it_ == last_)
  ------------------
  |  Branch (101:8): [True: 3.37k, False: 3.01k]
  ------------------
  102|  3.37k|				return;
  103|  3.01k|            detail::param_iter pi;
  104|  3.01k|            pi.it = it_;
  105|  3.01k|            pi.first = it_;
  106|  3.01k|            pi.last = last_;
  107|  3.01k|            for(;;)
  108|  4.00k|            {
  109|  4.00k|                pi.increment();
  110|  4.00k|                if(pi.empty())
  ------------------
  |  Branch (110:20): [True: 3.01k, False: 992]
  ------------------
  111|  3.01k|                    break;
  112|  4.00k|            }
  113|  3.01k|            v_.second = param_list{string_view{&*it_,
  114|  3.01k|                static_cast<std::size_t>(pi.it - it_)}};
  115|  3.01k|            it_ = pi.it;
  116|  3.01k|            return;
  117|  6.38k|        }
  118|  2.31k|        if(c != ',')
  ------------------
  |  Branch (118:12): [True: 223, False: 2.09k]
  ------------------
  119|    223|            return err();
  120|  2.09k|        need_comma = false;
  121|  2.09k|        ++it_;
  122|  2.09k|    }
  123|  19.6k|}
_ZZN5boost5beast4http8ext_list14const_iterator9incrementEvENKUlvE_clEv:
   73|  13.2k|        {
   74|  13.2k|            it_ = last_;
   75|  13.2k|            first_ = last_;
   76|  13.2k|        };
_ZN5boost5beast4http10param_list14const_iterator9incrementEv:
   40|  10.7k|{
   41|  10.7k|    s_.clear();
   42|  10.7k|    pi_.increment();
   43|  10.7k|    if(pi_.empty())
  ------------------
  |  Branch (43:8): [True: 10.5k, False: 121]
  ------------------
   44|  10.5k|    {
   45|  10.5k|        pi_.it = pi_.last;
   46|  10.5k|        pi_.first = pi_.last;
   47|  10.5k|    }
   48|    121|    else if(! pi_.v.second.empty() &&
  ------------------
  |  Branch (48:13): [True: 40, False: 81]
  ------------------
   49|    121|        pi_.v.second.front() == '"')
  ------------------
  |  Branch (49:9): [True: 29, False: 11]
  ------------------
   50|     29|    {
   51|     29|        unquote(pi_.v.second, s_);
   52|     29|        pi_.v.second = string_view{
   53|     29|            s_.data(), s_.size()};
   54|     29|    }
   55|  10.7k|}
_ZN5boost5beast4http10param_list14const_iterator7unquoteENS_4core17basic_string_viewIcEERNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEE:
   23|     29|{
   24|     29|    s.clear();
   25|     29|    s.reserve(sr.size());
   26|     29|    auto it = sr.begin() + 1;
   27|     29|    auto end = sr.end() - 1;
   28|  2.63k|    while(it != end)
  ------------------
  |  Branch (28:11): [True: 2.60k, False: 29]
  ------------------
   29|  2.60k|    {
   30|  2.60k|        if(*it == '\\')
  ------------------
  |  Branch (30:12): [True: 288, False: 2.32k]
  ------------------
   31|    288|            ++it;
   32|  2.60k|        s.push_back(*it);
   33|  2.60k|        ++it;
   34|  2.60k|    }
   35|     29|}

_ZN5boost5beast4http10serializerILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEEC2ERKNS1_7messageILb0ES3_S8_EE:
   62|     11|    : m_(m)
   63|     11|    , wr_(m_.base(), m_.body())
   64|     11|{
   65|     11|}
_ZN5boost5beast4http10serializerILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE4nextIRNS1_6detail17write_some_lambdaINS0_4test12basic_streamINS_4asio15any_io_executorEEEEEEEvRNS_6system10error_codeEOT_:
   73|     11|{
   74|     11|    switch(s_)
   75|     11|    {
   76|     11|    case do_construct:
  ------------------
  |  Branch (76:5): [True: 11, False: 0]
  ------------------
   77|     11|    {
   78|     11|        fwrinit(std::integral_constant<bool,
   79|     11|            isRequest>{});
   80|     11|        if(m_.chunked())
  ------------------
  |  Branch (80:12): [True: 0, False: 11]
  ------------------
   81|      0|            goto go_init_c;
   82|     11|        s_ = do_init;
   83|     11|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|     11|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
   84|     11|    }
   85|       |
   86|     11|    case do_init:
  ------------------
  |  Branch (86:5): [True: 0, False: 11]
  ------------------
   87|     11|    {
   88|     11|        wr_.init(ec);
   89|     11|        if(ec)
  ------------------
  |  Branch (89:12): [True: 0, False: 11]
  ------------------
   90|      0|            return;
   91|     11|        if(split_)
  ------------------
  |  Branch (91:12): [True: 0, False: 11]
  ------------------
   92|      0|            goto go_header_only;
   93|     11|        auto result = wr_.get(ec);
   94|     11|        if(ec == error::need_more)
  ------------------
  |  Branch (94:12): [True: 0, False: 11]
  ------------------
   95|      0|            goto go_header_only;
   96|     11|        if(ec)
  ------------------
  |  Branch (96:12): [True: 0, False: 11]
  ------------------
   97|      0|            return;
   98|     11|        if(! result)
  ------------------
  |  Branch (98:12): [True: 11, False: 0]
  ------------------
   99|     11|            goto go_header_only;
  100|      0|        more_ = result->second;
  101|      0|        v_.template emplace<2>(
  102|      0|            boost::in_place_init,
  103|      0|            fwr_->get(),
  104|      0|            result->first);
  105|      0|        s_ = do_header;
  106|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  107|      0|    }
  108|       |
  109|      0|    case do_header:
  ------------------
  |  Branch (109:5): [True: 0, False: 11]
  ------------------
  110|      0|        do_visit<2>(ec, visit);
  111|      0|        break;
  112|       |
  113|     11|    go_header_only:
  114|     11|        v_.template emplace<1>(fwr_->get());
  115|     11|        s_ = do_header_only;
  116|     11|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|     11|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  117|     11|    case do_header_only:
  ------------------
  |  Branch (117:5): [True: 0, False: 11]
  ------------------
  118|     11|        do_visit<1>(ec, visit);
  119|     11|        break;
  120|       |
  121|      0|    case do_body:
  ------------------
  |  Branch (121:5): [True: 0, False: 11]
  ------------------
  122|      0|        s_ = do_body + 1;
  123|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  124|       |
  125|      0|    case do_body + 1:
  ------------------
  |  Branch (125:5): [True: 0, False: 11]
  ------------------
  126|      0|    {
  127|      0|        auto result = wr_.get(ec);
  128|      0|        if(ec)
  ------------------
  |  Branch (128:12): [True: 0, False: 0]
  ------------------
  129|      0|            return;
  130|      0|        if(! result)
  ------------------
  |  Branch (130:12): [True: 0, False: 0]
  ------------------
  131|      0|            goto go_complete;
  132|      0|        more_ = result->second;
  133|      0|        v_.template emplace<3>(result->first);
  134|      0|        s_ = do_body + 2;
  135|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  136|      0|    }
  137|       |
  138|      0|    case do_body + 2:
  ------------------
  |  Branch (138:5): [True: 0, False: 11]
  ------------------
  139|      0|        do_visit<3>(ec, visit);
  140|      0|        break;
  141|       |
  142|       |    //----------------------------------------------------------------------
  143|       |
  144|      0|        go_init_c:
  145|      0|        s_ = do_init_c;
  146|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  147|      0|    case do_init_c:
  ------------------
  |  Branch (147:5): [True: 0, False: 11]
  ------------------
  148|      0|    {
  149|      0|        wr_.init(ec);
  150|      0|        if(ec)
  ------------------
  |  Branch (150:12): [True: 0, False: 0]
  ------------------
  151|      0|            return;
  152|      0|        if(split_)
  ------------------
  |  Branch (152:12): [True: 0, False: 0]
  ------------------
  153|      0|            goto go_header_only_c;
  154|      0|        auto result = wr_.get(ec);
  155|      0|        if(ec == error::need_more)
  ------------------
  |  Branch (155:12): [True: 0, False: 0]
  ------------------
  156|      0|            goto go_header_only_c;
  157|      0|        if(ec)
  ------------------
  |  Branch (157:12): [True: 0, False: 0]
  ------------------
  158|      0|            return;
  159|      0|        if(! result)
  ------------------
  |  Branch (159:12): [True: 0, False: 0]
  ------------------
  160|      0|            goto go_header_only_c;
  161|      0|        more_ = result->second;
  162|      0|        if(! more_)
  ------------------
  |  Branch (162:12): [True: 0, False: 0]
  ------------------
  163|      0|        {
  164|       |            // do it all in one buffer
  165|      0|            v_.template emplace<7>(
  166|      0|                boost::in_place_init,
  167|      0|                fwr_->get(),
  168|      0|                buffer_bytes(result->first),
  169|      0|                net::const_buffer{nullptr, 0},
  170|      0|                chunk_crlf{},
  171|      0|                result->first,
  172|      0|                chunk_crlf{},
  173|      0|                detail::chunk_last(),
  174|      0|                net::const_buffer{nullptr, 0},
  175|      0|                chunk_crlf{});
  176|      0|            goto go_all_c;
  177|      0|        }
  178|      0|        v_.template emplace<4>(
  179|      0|            boost::in_place_init,
  180|      0|            fwr_->get(),
  181|      0|            buffer_bytes(result->first),
  182|      0|            net::const_buffer{nullptr, 0},
  183|      0|            chunk_crlf{},
  184|      0|            result->first,
  185|      0|            chunk_crlf{});
  186|      0|        s_ = do_header_c;
  187|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  188|      0|    }
  189|       |
  190|      0|    case do_header_c:
  ------------------
  |  Branch (190:5): [True: 0, False: 11]
  ------------------
  191|      0|        do_visit<4>(ec, visit);
  192|      0|        break;
  193|       |
  194|      0|    go_header_only_c:
  195|      0|        v_.template emplace<1>(fwr_->get());
  196|      0|        s_ = do_header_only_c;
  197|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  198|       |
  199|      0|    case do_header_only_c:
  ------------------
  |  Branch (199:5): [True: 0, False: 11]
  ------------------
  200|      0|        do_visit<1>(ec, visit);
  201|      0|        break;
  202|       |
  203|      0|    case do_body_c:
  ------------------
  |  Branch (203:5): [True: 0, False: 11]
  ------------------
  204|      0|        s_ = do_body_c + 1;
  205|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  206|       |
  207|      0|    case do_body_c + 1:
  ------------------
  |  Branch (207:5): [True: 0, False: 11]
  ------------------
  208|      0|    {
  209|      0|        auto result = wr_.get(ec);
  210|      0|        if(ec)
  ------------------
  |  Branch (210:12): [True: 0, False: 0]
  ------------------
  211|      0|            return;
  212|      0|        if(! result)
  ------------------
  |  Branch (212:12): [True: 0, False: 0]
  ------------------
  213|      0|            goto go_final_c;
  214|      0|        more_ = result->second;
  215|      0|        if(! more_)
  ------------------
  |  Branch (215:12): [True: 0, False: 0]
  ------------------
  216|      0|        {
  217|       |            // do it all in one buffer
  218|      0|            v_.template emplace<6>(
  219|      0|                boost::in_place_init,
  220|      0|                buffer_bytes(result->first),
  221|      0|                net::const_buffer{nullptr, 0},
  222|      0|                chunk_crlf{},
  223|      0|                result->first,
  224|      0|                chunk_crlf{},
  225|      0|                detail::chunk_last(),
  226|      0|                net::const_buffer{nullptr, 0},
  227|      0|                chunk_crlf{});
  228|      0|            goto go_body_final_c;
  229|      0|        }
  230|      0|        v_.template emplace<5>(
  231|      0|            boost::in_place_init,
  232|      0|            buffer_bytes(result->first),
  233|      0|            net::const_buffer{nullptr, 0},
  234|      0|            chunk_crlf{},
  235|      0|            result->first,
  236|      0|            chunk_crlf{});
  237|      0|        s_ = do_body_c + 2;
  238|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  239|      0|    }
  240|       |
  241|      0|    case do_body_c + 2:
  ------------------
  |  Branch (241:5): [True: 0, False: 11]
  ------------------
  242|      0|        do_visit<5>(ec, visit);
  243|      0|        break;
  244|       |
  245|      0|    go_body_final_c:
  246|      0|        s_ = do_body_final_c;
  247|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  248|      0|    case do_body_final_c:
  ------------------
  |  Branch (248:5): [True: 0, False: 11]
  ------------------
  249|      0|        do_visit<6>(ec, visit);
  250|      0|        break;
  251|       |
  252|      0|    go_all_c:
  253|      0|        s_ = do_all_c;
  254|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  255|      0|    case do_all_c:
  ------------------
  |  Branch (255:5): [True: 0, False: 11]
  ------------------
  256|      0|        do_visit<7>(ec, visit);
  257|      0|        break;
  258|       |
  259|      0|    go_final_c:
  260|      0|    case do_final_c:
  ------------------
  |  Branch (260:5): [True: 0, False: 11]
  ------------------
  261|      0|        v_.template emplace<8>(
  262|      0|            boost::in_place_init,
  263|      0|            detail::chunk_last(),
  264|      0|            net::const_buffer{nullptr, 0},
  265|      0|            chunk_crlf{});
  266|      0|        s_ = do_final_c + 1;
  267|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  268|       |
  269|      0|    case do_final_c + 1:
  ------------------
  |  Branch (269:5): [True: 0, False: 11]
  ------------------
  270|      0|        do_visit<8>(ec, visit);
  271|      0|        break;
  272|       |
  273|       |    //----------------------------------------------------------------------
  274|       |
  275|      0|    default:
  ------------------
  |  Branch (275:5): [True: 0, False: 11]
  ------------------
  276|      0|    case do_complete:
  ------------------
  |  Branch (276:5): [True: 0, False: 11]
  ------------------
  277|      0|        BOOST_ASSERT(false);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  278|      0|        break;
  279|       |
  280|      0|    go_complete:
  281|      0|        s_ = do_complete;
  282|      0|        break;
  283|     11|    }
  284|     11|}
_ZN5boost5beast4http10serializerILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7fwrinitENS5_17integral_constantIbLb0EEE:
   39|     11|{
   40|     11|    fwr_.emplace(m_, m_.version(), m_.result_int());
   41|     11|}
_ZN5boost5beast4http10serializerILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE8do_visitILm1ENS1_6detail17write_some_lambdaINS0_4test12basic_streamINS_4asio15any_io_executorEEEEEEEvRNS_6system10error_codeERT0_:
   50|     11|{
   51|     11|    pv_.template emplace<I>(limit_, v_.template get<I>());
   52|     11|    visit(ec, beast::detail::make_buffers_ref(
   53|     11|        pv_.template get<I>()));
   54|     11|}
_ZN5boost5beast4http10serializerILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7consumeEm:
  291|     11|{
  292|     11|    switch(s_)
  293|     11|    {
  294|      0|    case do_header:
  ------------------
  |  Branch (294:5): [True: 0, False: 11]
  ------------------
  295|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  296|      0|            n <= buffer_bytes(v_.template get<2>()));
  297|      0|        v_.template get<2>().consume(n);
  298|      0|        if(buffer_bytes(v_.template get<2>()) > 0)
  ------------------
  |  Branch (298:12): [True: 0, False: 0]
  ------------------
  299|      0|            break;
  300|      0|        header_done_ = true;
  301|      0|        v_.reset();
  302|      0|        if(! more_)
  ------------------
  |  Branch (302:12): [True: 0, False: 0]
  ------------------
  303|      0|            goto go_complete;
  304|      0|        s_ = do_body + 1;
  305|      0|        break;
  306|       |
  307|     11|    case do_header_only:
  ------------------
  |  Branch (307:5): [True: 11, False: 0]
  ------------------
  308|     11|        BOOST_ASSERT(
  ------------------
  |  |   66|     11|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  309|     11|            n <= buffer_bytes(v_.template get<1>()));
  310|     11|        v_.template get<1>().consume(n);
  311|     11|        if(buffer_bytes(v_.template get<1>()) > 0)
  ------------------
  |  Branch (311:12): [True: 0, False: 11]
  ------------------
  312|      0|            break;
  313|     11|        fwr_ = boost::none;
  314|     11|        header_done_ = true;
  315|     11|        if(! split_)
  ------------------
  |  Branch (315:12): [True: 11, False: 0]
  ------------------
  316|     11|            goto go_complete;
  317|      0|        s_ = do_body;
  318|      0|        break;
  319|       |
  320|      0|    case do_body + 2:
  ------------------
  |  Branch (320:5): [True: 0, False: 11]
  ------------------
  321|      0|    {
  322|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  323|      0|            n <= buffer_bytes(v_.template get<3>()));
  324|      0|        v_.template get<3>().consume(n);
  325|      0|        if(buffer_bytes(v_.template get<3>()) > 0)
  ------------------
  |  Branch (325:12): [True: 0, False: 0]
  ------------------
  326|      0|            break;
  327|      0|        v_.reset();
  328|      0|        if(! more_)
  ------------------
  |  Branch (328:12): [True: 0, False: 0]
  ------------------
  329|      0|            goto go_complete;
  330|      0|        s_ = do_body + 1;
  331|      0|        break;
  332|      0|    }
  333|       |
  334|       |    //----------------------------------------------------------------------
  335|       |
  336|      0|    case do_header_c:
  ------------------
  |  Branch (336:5): [True: 0, False: 11]
  ------------------
  337|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  338|      0|            n <= buffer_bytes(v_.template get<4>()));
  339|      0|        v_.template get<4>().consume(n);
  340|      0|        if(buffer_bytes(v_.template get<4>()) > 0)
  ------------------
  |  Branch (340:12): [True: 0, False: 0]
  ------------------
  341|      0|            break;
  342|      0|        header_done_ = true;
  343|      0|        v_.reset();
  344|      0|        if(more_)
  ------------------
  |  Branch (344:12): [True: 0, False: 0]
  ------------------
  345|      0|            s_ = do_body_c + 1;
  346|      0|        else
  347|      0|            s_ = do_final_c;
  348|      0|        break;
  349|       |
  350|      0|    case do_header_only_c:
  ------------------
  |  Branch (350:5): [True: 0, False: 11]
  ------------------
  351|      0|    {
  352|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  353|      0|            n <= buffer_bytes(v_.template get<1>()));
  354|      0|        v_.template get<1>().consume(n);
  355|      0|        if(buffer_bytes(v_.template get<1>()) > 0)
  ------------------
  |  Branch (355:12): [True: 0, False: 0]
  ------------------
  356|      0|            break;
  357|      0|        fwr_ = boost::none;
  358|      0|        header_done_ = true;
  359|      0|        if(! split_)
  ------------------
  |  Branch (359:12): [True: 0, False: 0]
  ------------------
  360|      0|        {
  361|      0|            s_ = do_final_c;
  362|      0|            break;
  363|      0|        }
  364|      0|        s_ = do_body_c;
  365|      0|        break;
  366|      0|    }
  367|       |
  368|      0|    case do_body_c + 2:
  ------------------
  |  Branch (368:5): [True: 0, False: 11]
  ------------------
  369|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  370|      0|            n <= buffer_bytes(v_.template get<5>()));
  371|      0|        v_.template get<5>().consume(n);
  372|      0|        if(buffer_bytes(v_.template get<5>()) > 0)
  ------------------
  |  Branch (372:12): [True: 0, False: 0]
  ------------------
  373|      0|            break;
  374|      0|        v_.reset();
  375|      0|        if(more_)
  ------------------
  |  Branch (375:12): [True: 0, False: 0]
  ------------------
  376|      0|            s_ = do_body_c + 1;
  377|      0|        else
  378|      0|            s_ = do_final_c;
  379|      0|        break;
  380|       |
  381|      0|    case do_body_final_c:
  ------------------
  |  Branch (381:5): [True: 0, False: 11]
  ------------------
  382|      0|    {
  383|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  384|      0|            n <= buffer_bytes(v_.template get<6>()));
  385|      0|        v_.template get<6>().consume(n);
  386|      0|        if(buffer_bytes(v_.template get<6>()) > 0)
  ------------------
  |  Branch (386:12): [True: 0, False: 0]
  ------------------
  387|      0|            break;
  388|      0|        v_.reset();
  389|      0|        s_ = do_complete;
  390|      0|        break;
  391|      0|    }
  392|       |
  393|      0|    case do_all_c:
  ------------------
  |  Branch (393:5): [True: 0, False: 11]
  ------------------
  394|      0|    {
  395|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  396|      0|            n <= buffer_bytes(v_.template get<7>()));
  397|      0|        v_.template get<7>().consume(n);
  398|      0|        if(buffer_bytes(v_.template get<7>()) > 0)
  ------------------
  |  Branch (398:12): [True: 0, False: 0]
  ------------------
  399|      0|            break;
  400|      0|        header_done_ = true;
  401|      0|        v_.reset();
  402|      0|        s_ = do_complete;
  403|      0|        break;
  404|      0|    }
  405|       |
  406|      0|    case do_final_c + 1:
  ------------------
  |  Branch (406:5): [True: 0, False: 11]
  ------------------
  407|      0|        BOOST_ASSERT(buffer_bytes(v_.template get<8>()));
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  408|      0|        v_.template get<8>().consume(n);
  409|      0|        if(buffer_bytes(v_.template get<8>()) > 0)
  ------------------
  |  Branch (409:12): [True: 0, False: 0]
  ------------------
  410|      0|            break;
  411|      0|        v_.reset();
  412|      0|        goto go_complete;
  413|       |
  414|       |    //----------------------------------------------------------------------
  415|       |
  416|      0|    default:
  ------------------
  |  Branch (416:5): [True: 0, False: 11]
  ------------------
  417|      0|        BOOST_ASSERT(false);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  418|      0|    case do_complete:
  ------------------
  |  Branch (418:5): [True: 0, False: 11]
  ------------------
  419|      0|        break;
  420|       |
  421|     11|    go_complete:
  422|     11|        s_ = do_complete;
  423|     11|        break;
  424|     11|    }
  425|     11|}
_ZN5boost5beast4http10serializerILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEEC2ERKNS1_7messageILb0ES9_SB_EE:
   62|  5.13k|    : m_(m)
   63|  5.13k|    , wr_(m_.base(), m_.body())
   64|  5.13k|{
   65|  5.13k|}
_ZN5boost5beast4http10serializerILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE4nextIRNS1_6detail17write_some_lambdaINS0_4test12basic_streamINS_4asio15any_io_executorEEEEEEEvRNS_6system10error_codeEOT_:
   73|  5.13k|{
   74|  5.13k|    switch(s_)
   75|  5.13k|    {
   76|  5.13k|    case do_construct:
  ------------------
  |  Branch (76:5): [True: 5.13k, False: 0]
  ------------------
   77|  5.13k|    {
   78|  5.13k|        fwrinit(std::integral_constant<bool,
   79|  5.13k|            isRequest>{});
   80|  5.13k|        if(m_.chunked())
  ------------------
  |  Branch (80:12): [True: 0, False: 5.13k]
  ------------------
   81|      0|            goto go_init_c;
   82|  5.13k|        s_ = do_init;
   83|  5.13k|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  5.13k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
   84|  5.13k|    }
   85|       |
   86|  5.13k|    case do_init:
  ------------------
  |  Branch (86:5): [True: 0, False: 5.13k]
  ------------------
   87|  5.13k|    {
   88|  5.13k|        wr_.init(ec);
   89|  5.13k|        if(ec)
  ------------------
  |  Branch (89:12): [True: 0, False: 5.13k]
  ------------------
   90|      0|            return;
   91|  5.13k|        if(split_)
  ------------------
  |  Branch (91:12): [True: 0, False: 5.13k]
  ------------------
   92|      0|            goto go_header_only;
   93|  5.13k|        auto result = wr_.get(ec);
   94|  5.13k|        if(ec == error::need_more)
  ------------------
  |  Branch (94:12): [True: 0, False: 5.13k]
  ------------------
   95|      0|            goto go_header_only;
   96|  5.13k|        if(ec)
  ------------------
  |  Branch (96:12): [True: 0, False: 5.13k]
  ------------------
   97|      0|            return;
   98|  5.13k|        if(! result)
  ------------------
  |  Branch (98:12): [True: 0, False: 5.13k]
  ------------------
   99|      0|            goto go_header_only;
  100|  5.13k|        more_ = result->second;
  101|  5.13k|        v_.template emplace<2>(
  102|  5.13k|            boost::in_place_init,
  103|  5.13k|            fwr_->get(),
  104|  5.13k|            result->first);
  105|  5.13k|        s_ = do_header;
  106|  5.13k|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  5.13k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  107|  5.13k|    }
  108|       |
  109|  5.13k|    case do_header:
  ------------------
  |  Branch (109:5): [True: 0, False: 5.13k]
  ------------------
  110|  5.13k|        do_visit<2>(ec, visit);
  111|  5.13k|        break;
  112|       |
  113|      0|    go_header_only:
  114|      0|        v_.template emplace<1>(fwr_->get());
  115|      0|        s_ = do_header_only;
  116|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  117|      0|    case do_header_only:
  ------------------
  |  Branch (117:5): [True: 0, False: 5.13k]
  ------------------
  118|      0|        do_visit<1>(ec, visit);
  119|      0|        break;
  120|       |
  121|      0|    case do_body:
  ------------------
  |  Branch (121:5): [True: 0, False: 5.13k]
  ------------------
  122|      0|        s_ = do_body + 1;
  123|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  124|       |
  125|      0|    case do_body + 1:
  ------------------
  |  Branch (125:5): [True: 0, False: 5.13k]
  ------------------
  126|      0|    {
  127|      0|        auto result = wr_.get(ec);
  128|      0|        if(ec)
  ------------------
  |  Branch (128:12): [True: 0, False: 0]
  ------------------
  129|      0|            return;
  130|      0|        if(! result)
  ------------------
  |  Branch (130:12): [True: 0, False: 0]
  ------------------
  131|      0|            goto go_complete;
  132|      0|        more_ = result->second;
  133|      0|        v_.template emplace<3>(result->first);
  134|      0|        s_ = do_body + 2;
  135|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  136|      0|    }
  137|       |
  138|      0|    case do_body + 2:
  ------------------
  |  Branch (138:5): [True: 0, False: 5.13k]
  ------------------
  139|      0|        do_visit<3>(ec, visit);
  140|      0|        break;
  141|       |
  142|       |    //----------------------------------------------------------------------
  143|       |
  144|      0|        go_init_c:
  145|      0|        s_ = do_init_c;
  146|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  147|      0|    case do_init_c:
  ------------------
  |  Branch (147:5): [True: 0, False: 5.13k]
  ------------------
  148|      0|    {
  149|      0|        wr_.init(ec);
  150|      0|        if(ec)
  ------------------
  |  Branch (150:12): [True: 0, False: 0]
  ------------------
  151|      0|            return;
  152|      0|        if(split_)
  ------------------
  |  Branch (152:12): [True: 0, False: 0]
  ------------------
  153|      0|            goto go_header_only_c;
  154|      0|        auto result = wr_.get(ec);
  155|      0|        if(ec == error::need_more)
  ------------------
  |  Branch (155:12): [True: 0, False: 0]
  ------------------
  156|      0|            goto go_header_only_c;
  157|      0|        if(ec)
  ------------------
  |  Branch (157:12): [True: 0, False: 0]
  ------------------
  158|      0|            return;
  159|      0|        if(! result)
  ------------------
  |  Branch (159:12): [True: 0, False: 0]
  ------------------
  160|      0|            goto go_header_only_c;
  161|      0|        more_ = result->second;
  162|      0|        if(! more_)
  ------------------
  |  Branch (162:12): [True: 0, False: 0]
  ------------------
  163|      0|        {
  164|       |            // do it all in one buffer
  165|      0|            v_.template emplace<7>(
  166|      0|                boost::in_place_init,
  167|      0|                fwr_->get(),
  168|      0|                buffer_bytes(result->first),
  169|      0|                net::const_buffer{nullptr, 0},
  170|      0|                chunk_crlf{},
  171|      0|                result->first,
  172|      0|                chunk_crlf{},
  173|      0|                detail::chunk_last(),
  174|      0|                net::const_buffer{nullptr, 0},
  175|      0|                chunk_crlf{});
  176|      0|            goto go_all_c;
  177|      0|        }
  178|      0|        v_.template emplace<4>(
  179|      0|            boost::in_place_init,
  180|      0|            fwr_->get(),
  181|      0|            buffer_bytes(result->first),
  182|      0|            net::const_buffer{nullptr, 0},
  183|      0|            chunk_crlf{},
  184|      0|            result->first,
  185|      0|            chunk_crlf{});
  186|      0|        s_ = do_header_c;
  187|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  188|      0|    }
  189|       |
  190|      0|    case do_header_c:
  ------------------
  |  Branch (190:5): [True: 0, False: 5.13k]
  ------------------
  191|      0|        do_visit<4>(ec, visit);
  192|      0|        break;
  193|       |
  194|      0|    go_header_only_c:
  195|      0|        v_.template emplace<1>(fwr_->get());
  196|      0|        s_ = do_header_only_c;
  197|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  198|       |
  199|      0|    case do_header_only_c:
  ------------------
  |  Branch (199:5): [True: 0, False: 5.13k]
  ------------------
  200|      0|        do_visit<1>(ec, visit);
  201|      0|        break;
  202|       |
  203|      0|    case do_body_c:
  ------------------
  |  Branch (203:5): [True: 0, False: 5.13k]
  ------------------
  204|      0|        s_ = do_body_c + 1;
  205|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  206|       |
  207|      0|    case do_body_c + 1:
  ------------------
  |  Branch (207:5): [True: 0, False: 5.13k]
  ------------------
  208|      0|    {
  209|      0|        auto result = wr_.get(ec);
  210|      0|        if(ec)
  ------------------
  |  Branch (210:12): [True: 0, False: 0]
  ------------------
  211|      0|            return;
  212|      0|        if(! result)
  ------------------
  |  Branch (212:12): [True: 0, False: 0]
  ------------------
  213|      0|            goto go_final_c;
  214|      0|        more_ = result->second;
  215|      0|        if(! more_)
  ------------------
  |  Branch (215:12): [True: 0, False: 0]
  ------------------
  216|      0|        {
  217|       |            // do it all in one buffer
  218|      0|            v_.template emplace<6>(
  219|      0|                boost::in_place_init,
  220|      0|                buffer_bytes(result->first),
  221|      0|                net::const_buffer{nullptr, 0},
  222|      0|                chunk_crlf{},
  223|      0|                result->first,
  224|      0|                chunk_crlf{},
  225|      0|                detail::chunk_last(),
  226|      0|                net::const_buffer{nullptr, 0},
  227|      0|                chunk_crlf{});
  228|      0|            goto go_body_final_c;
  229|      0|        }
  230|      0|        v_.template emplace<5>(
  231|      0|            boost::in_place_init,
  232|      0|            buffer_bytes(result->first),
  233|      0|            net::const_buffer{nullptr, 0},
  234|      0|            chunk_crlf{},
  235|      0|            result->first,
  236|      0|            chunk_crlf{});
  237|      0|        s_ = do_body_c + 2;
  238|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  239|      0|    }
  240|       |
  241|      0|    case do_body_c + 2:
  ------------------
  |  Branch (241:5): [True: 0, False: 5.13k]
  ------------------
  242|      0|        do_visit<5>(ec, visit);
  243|      0|        break;
  244|       |
  245|      0|    go_body_final_c:
  246|      0|        s_ = do_body_final_c;
  247|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  248|      0|    case do_body_final_c:
  ------------------
  |  Branch (248:5): [True: 0, False: 5.13k]
  ------------------
  249|      0|        do_visit<6>(ec, visit);
  250|      0|        break;
  251|       |
  252|      0|    go_all_c:
  253|      0|        s_ = do_all_c;
  254|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  255|      0|    case do_all_c:
  ------------------
  |  Branch (255:5): [True: 0, False: 5.13k]
  ------------------
  256|      0|        do_visit<7>(ec, visit);
  257|      0|        break;
  258|       |
  259|      0|    go_final_c:
  260|      0|    case do_final_c:
  ------------------
  |  Branch (260:5): [True: 0, False: 5.13k]
  ------------------
  261|      0|        v_.template emplace<8>(
  262|      0|            boost::in_place_init,
  263|      0|            detail::chunk_last(),
  264|      0|            net::const_buffer{nullptr, 0},
  265|      0|            chunk_crlf{});
  266|      0|        s_ = do_final_c + 1;
  267|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  268|       |
  269|      0|    case do_final_c + 1:
  ------------------
  |  Branch (269:5): [True: 0, False: 5.13k]
  ------------------
  270|      0|        do_visit<8>(ec, visit);
  271|      0|        break;
  272|       |
  273|       |    //----------------------------------------------------------------------
  274|       |
  275|      0|    default:
  ------------------
  |  Branch (275:5): [True: 0, False: 5.13k]
  ------------------
  276|      0|    case do_complete:
  ------------------
  |  Branch (276:5): [True: 0, False: 5.13k]
  ------------------
  277|      0|        BOOST_ASSERT(false);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  278|      0|        break;
  279|       |
  280|      0|    go_complete:
  281|      0|        s_ = do_complete;
  282|      0|        break;
  283|  5.13k|    }
  284|  5.13k|}
_ZN5boost5beast4http10serializerILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE7fwrinitENS4_17integral_constantIbLb0EEE:
   39|  5.13k|{
   40|  5.13k|    fwr_.emplace(m_, m_.version(), m_.result_int());
   41|  5.13k|}
_ZN5boost5beast4http10serializerILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE8do_visitILm2ENS1_6detail17write_some_lambdaINS0_4test12basic_streamINS_4asio15any_io_executorEEEEEEEvRNS_6system10error_codeERT0_:
   50|  5.13k|{
   51|  5.13k|    pv_.template emplace<I>(limit_, v_.template get<I>());
   52|  5.13k|    visit(ec, beast::detail::make_buffers_ref(
   53|  5.13k|        pv_.template get<I>()));
   54|  5.13k|}
_ZN5boost5beast4http10serializerILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE7consumeEm:
  291|  5.13k|{
  292|  5.13k|    switch(s_)
  293|  5.13k|    {
  294|  5.13k|    case do_header:
  ------------------
  |  Branch (294:5): [True: 5.13k, False: 0]
  ------------------
  295|  5.13k|        BOOST_ASSERT(
  ------------------
  |  |   66|  5.13k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  296|  5.13k|            n <= buffer_bytes(v_.template get<2>()));
  297|  5.13k|        v_.template get<2>().consume(n);
  298|  5.13k|        if(buffer_bytes(v_.template get<2>()) > 0)
  ------------------
  |  Branch (298:12): [True: 0, False: 5.13k]
  ------------------
  299|      0|            break;
  300|  5.13k|        header_done_ = true;
  301|  5.13k|        v_.reset();
  302|  5.13k|        if(! more_)
  ------------------
  |  Branch (302:12): [True: 5.13k, False: 0]
  ------------------
  303|  5.13k|            goto go_complete;
  304|      0|        s_ = do_body + 1;
  305|      0|        break;
  306|       |
  307|      0|    case do_header_only:
  ------------------
  |  Branch (307:5): [True: 0, False: 5.13k]
  ------------------
  308|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  309|      0|            n <= buffer_bytes(v_.template get<1>()));
  310|      0|        v_.template get<1>().consume(n);
  311|      0|        if(buffer_bytes(v_.template get<1>()) > 0)
  ------------------
  |  Branch (311:12): [True: 0, False: 0]
  ------------------
  312|      0|            break;
  313|      0|        fwr_ = boost::none;
  314|      0|        header_done_ = true;
  315|      0|        if(! split_)
  ------------------
  |  Branch (315:12): [True: 0, False: 0]
  ------------------
  316|      0|            goto go_complete;
  317|      0|        s_ = do_body;
  318|      0|        break;
  319|       |
  320|      0|    case do_body + 2:
  ------------------
  |  Branch (320:5): [True: 0, False: 5.13k]
  ------------------
  321|      0|    {
  322|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  323|      0|            n <= buffer_bytes(v_.template get<3>()));
  324|      0|        v_.template get<3>().consume(n);
  325|      0|        if(buffer_bytes(v_.template get<3>()) > 0)
  ------------------
  |  Branch (325:12): [True: 0, False: 0]
  ------------------
  326|      0|            break;
  327|      0|        v_.reset();
  328|      0|        if(! more_)
  ------------------
  |  Branch (328:12): [True: 0, False: 0]
  ------------------
  329|      0|            goto go_complete;
  330|      0|        s_ = do_body + 1;
  331|      0|        break;
  332|      0|    }
  333|       |
  334|       |    //----------------------------------------------------------------------
  335|       |
  336|      0|    case do_header_c:
  ------------------
  |  Branch (336:5): [True: 0, False: 5.13k]
  ------------------
  337|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  338|      0|            n <= buffer_bytes(v_.template get<4>()));
  339|      0|        v_.template get<4>().consume(n);
  340|      0|        if(buffer_bytes(v_.template get<4>()) > 0)
  ------------------
  |  Branch (340:12): [True: 0, False: 0]
  ------------------
  341|      0|            break;
  342|      0|        header_done_ = true;
  343|      0|        v_.reset();
  344|      0|        if(more_)
  ------------------
  |  Branch (344:12): [True: 0, False: 0]
  ------------------
  345|      0|            s_ = do_body_c + 1;
  346|      0|        else
  347|      0|            s_ = do_final_c;
  348|      0|        break;
  349|       |
  350|      0|    case do_header_only_c:
  ------------------
  |  Branch (350:5): [True: 0, False: 5.13k]
  ------------------
  351|      0|    {
  352|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  353|      0|            n <= buffer_bytes(v_.template get<1>()));
  354|      0|        v_.template get<1>().consume(n);
  355|      0|        if(buffer_bytes(v_.template get<1>()) > 0)
  ------------------
  |  Branch (355:12): [True: 0, False: 0]
  ------------------
  356|      0|            break;
  357|      0|        fwr_ = boost::none;
  358|      0|        header_done_ = true;
  359|      0|        if(! split_)
  ------------------
  |  Branch (359:12): [True: 0, False: 0]
  ------------------
  360|      0|        {
  361|      0|            s_ = do_final_c;
  362|      0|            break;
  363|      0|        }
  364|      0|        s_ = do_body_c;
  365|      0|        break;
  366|      0|    }
  367|       |
  368|      0|    case do_body_c + 2:
  ------------------
  |  Branch (368:5): [True: 0, False: 5.13k]
  ------------------
  369|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  370|      0|            n <= buffer_bytes(v_.template get<5>()));
  371|      0|        v_.template get<5>().consume(n);
  372|      0|        if(buffer_bytes(v_.template get<5>()) > 0)
  ------------------
  |  Branch (372:12): [True: 0, False: 0]
  ------------------
  373|      0|            break;
  374|      0|        v_.reset();
  375|      0|        if(more_)
  ------------------
  |  Branch (375:12): [True: 0, False: 0]
  ------------------
  376|      0|            s_ = do_body_c + 1;
  377|      0|        else
  378|      0|            s_ = do_final_c;
  379|      0|        break;
  380|       |
  381|      0|    case do_body_final_c:
  ------------------
  |  Branch (381:5): [True: 0, False: 5.13k]
  ------------------
  382|      0|    {
  383|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  384|      0|            n <= buffer_bytes(v_.template get<6>()));
  385|      0|        v_.template get<6>().consume(n);
  386|      0|        if(buffer_bytes(v_.template get<6>()) > 0)
  ------------------
  |  Branch (386:12): [True: 0, False: 0]
  ------------------
  387|      0|            break;
  388|      0|        v_.reset();
  389|      0|        s_ = do_complete;
  390|      0|        break;
  391|      0|    }
  392|       |
  393|      0|    case do_all_c:
  ------------------
  |  Branch (393:5): [True: 0, False: 5.13k]
  ------------------
  394|      0|    {
  395|      0|        BOOST_ASSERT(
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  396|      0|            n <= buffer_bytes(v_.template get<7>()));
  397|      0|        v_.template get<7>().consume(n);
  398|      0|        if(buffer_bytes(v_.template get<7>()) > 0)
  ------------------
  |  Branch (398:12): [True: 0, False: 0]
  ------------------
  399|      0|            break;
  400|      0|        header_done_ = true;
  401|      0|        v_.reset();
  402|      0|        s_ = do_complete;
  403|      0|        break;
  404|      0|    }
  405|       |
  406|      0|    case do_final_c + 1:
  ------------------
  |  Branch (406:5): [True: 0, False: 5.13k]
  ------------------
  407|      0|        BOOST_ASSERT(buffer_bytes(v_.template get<8>()));
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  408|      0|        v_.template get<8>().consume(n);
  409|      0|        if(buffer_bytes(v_.template get<8>()) > 0)
  ------------------
  |  Branch (409:12): [True: 0, False: 0]
  ------------------
  410|      0|            break;
  411|      0|        v_.reset();
  412|      0|        goto go_complete;
  413|       |
  414|       |    //----------------------------------------------------------------------
  415|       |
  416|      0|    default:
  ------------------
  |  Branch (416:5): [True: 0, False: 5.13k]
  ------------------
  417|      0|        BOOST_ASSERT(false);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  418|      0|    case do_complete:
  ------------------
  |  Branch (418:5): [True: 0, False: 5.13k]
  ------------------
  419|      0|        break;
  420|       |
  421|  5.13k|    go_complete:
  422|  5.13k|        s_ = do_complete;
  423|  5.13k|        break;
  424|  5.13k|    }
  425|  5.13k|}

_ZN5boost5beast4http13int_to_statusEj:
   22|  1.47k|{
   23|  1.47k|    switch(static_cast<status>(v))
   24|  1.47k|    {
   25|       |    // 1xx
   26|      0|    case status::continue_:
  ------------------
  |  Branch (26:5): [True: 0, False: 1.47k]
  ------------------
   27|      0|    case status::switching_protocols:
  ------------------
  |  Branch (27:5): [True: 0, False: 1.47k]
  ------------------
   28|      0|    case status::processing:
  ------------------
  |  Branch (28:5): [True: 0, False: 1.47k]
  ------------------
   29|      0|    case status::early_hints:
  ------------------
  |  Branch (29:5): [True: 0, False: 1.47k]
  ------------------
   30|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
   31|       |
   32|       |    // 2xx
   33|      0|    case status::ok:
  ------------------
  |  Branch (33:5): [True: 0, False: 1.47k]
  ------------------
   34|      0|    case status::created:
  ------------------
  |  Branch (34:5): [True: 0, False: 1.47k]
  ------------------
   35|      0|    case status::accepted:
  ------------------
  |  Branch (35:5): [True: 0, False: 1.47k]
  ------------------
   36|      0|    case status::non_authoritative_information:
  ------------------
  |  Branch (36:5): [True: 0, False: 1.47k]
  ------------------
   37|      0|    case status::no_content:
  ------------------
  |  Branch (37:5): [True: 0, False: 1.47k]
  ------------------
   38|      0|    case status::reset_content:
  ------------------
  |  Branch (38:5): [True: 0, False: 1.47k]
  ------------------
   39|      0|    case status::partial_content:
  ------------------
  |  Branch (39:5): [True: 0, False: 1.47k]
  ------------------
   40|      0|    case status::multi_status:
  ------------------
  |  Branch (40:5): [True: 0, False: 1.47k]
  ------------------
   41|      0|    case status::already_reported:
  ------------------
  |  Branch (41:5): [True: 0, False: 1.47k]
  ------------------
   42|      0|    case status::im_used:
  ------------------
  |  Branch (42:5): [True: 0, False: 1.47k]
  ------------------
   43|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
   44|       |
   45|       |    // 3xx
   46|      0|    case status::multiple_choices:
  ------------------
  |  Branch (46:5): [True: 0, False: 1.47k]
  ------------------
   47|      0|    case status::moved_permanently:
  ------------------
  |  Branch (47:5): [True: 0, False: 1.47k]
  ------------------
   48|      0|    case status::found:
  ------------------
  |  Branch (48:5): [True: 0, False: 1.47k]
  ------------------
   49|      0|    case status::see_other:
  ------------------
  |  Branch (49:5): [True: 0, False: 1.47k]
  ------------------
   50|      0|    case status::not_modified:
  ------------------
  |  Branch (50:5): [True: 0, False: 1.47k]
  ------------------
   51|      0|    case status::use_proxy:
  ------------------
  |  Branch (51:5): [True: 0, False: 1.47k]
  ------------------
   52|      0|    case status::temporary_redirect:
  ------------------
  |  Branch (52:5): [True: 0, False: 1.47k]
  ------------------
   53|      0|    case status::permanent_redirect:
  ------------------
  |  Branch (53:5): [True: 0, False: 1.47k]
  ------------------
   54|      0|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|      0|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
   55|       |
   56|       |    // 4xx
   57|  1.35k|    case status::bad_request:
  ------------------
  |  Branch (57:5): [True: 1.35k, False: 123]
  ------------------
   58|  1.35k|    case status::unauthorized:
  ------------------
  |  Branch (58:5): [True: 0, False: 1.47k]
  ------------------
   59|  1.35k|    case status::payment_required:
  ------------------
  |  Branch (59:5): [True: 0, False: 1.47k]
  ------------------
   60|  1.35k|    case status::forbidden:
  ------------------
  |  Branch (60:5): [True: 0, False: 1.47k]
  ------------------
   61|  1.35k|    case status::not_found:
  ------------------
  |  Branch (61:5): [True: 0, False: 1.47k]
  ------------------
   62|  1.35k|    case status::method_not_allowed:
  ------------------
  |  Branch (62:5): [True: 0, False: 1.47k]
  ------------------
   63|  1.35k|    case status::not_acceptable:
  ------------------
  |  Branch (63:5): [True: 0, False: 1.47k]
  ------------------
   64|  1.35k|    case status::proxy_authentication_required:
  ------------------
  |  Branch (64:5): [True: 0, False: 1.47k]
  ------------------
   65|  1.35k|    case status::request_timeout:
  ------------------
  |  Branch (65:5): [True: 0, False: 1.47k]
  ------------------
   66|  1.35k|    case status::conflict:
  ------------------
  |  Branch (66:5): [True: 0, False: 1.47k]
  ------------------
   67|  1.35k|    case status::gone:
  ------------------
  |  Branch (67:5): [True: 0, False: 1.47k]
  ------------------
   68|  1.35k|    case status::length_required:
  ------------------
  |  Branch (68:5): [True: 0, False: 1.47k]
  ------------------
   69|  1.35k|    case status::precondition_failed:
  ------------------
  |  Branch (69:5): [True: 0, False: 1.47k]
  ------------------
   70|  1.35k|    case status::payload_too_large:
  ------------------
  |  Branch (70:5): [True: 0, False: 1.47k]
  ------------------
   71|  1.35k|    case status::uri_too_long:
  ------------------
  |  Branch (71:5): [True: 0, False: 1.47k]
  ------------------
   72|  1.35k|    case status::unsupported_media_type:
  ------------------
  |  Branch (72:5): [True: 0, False: 1.47k]
  ------------------
   73|  1.35k|    case status::range_not_satisfiable:
  ------------------
  |  Branch (73:5): [True: 0, False: 1.47k]
  ------------------
   74|  1.35k|    case status::expectation_failed:
  ------------------
  |  Branch (74:5): [True: 0, False: 1.47k]
  ------------------
   75|  1.35k|    case status::i_am_a_teapot:
  ------------------
  |  Branch (75:5): [True: 0, False: 1.47k]
  ------------------
   76|  1.35k|    case status::misdirected_request:
  ------------------
  |  Branch (76:5): [True: 0, False: 1.47k]
  ------------------
   77|  1.35k|    case status::unprocessable_entity:
  ------------------
  |  Branch (77:5): [True: 0, False: 1.47k]
  ------------------
   78|  1.35k|    case status::locked:
  ------------------
  |  Branch (78:5): [True: 0, False: 1.47k]
  ------------------
   79|  1.35k|    case status::failed_dependency:
  ------------------
  |  Branch (79:5): [True: 0, False: 1.47k]
  ------------------
   80|  1.35k|    case status::too_early:
  ------------------
  |  Branch (80:5): [True: 0, False: 1.47k]
  ------------------
   81|  1.47k|    case status::upgrade_required:
  ------------------
  |  Branch (81:5): [True: 123, False: 1.35k]
  ------------------
   82|  1.47k|    case status::precondition_required:
  ------------------
  |  Branch (82:5): [True: 0, False: 1.47k]
  ------------------
   83|  1.47k|    case status::too_many_requests:
  ------------------
  |  Branch (83:5): [True: 0, False: 1.47k]
  ------------------
   84|  1.47k|    case status::request_header_fields_too_large:
  ------------------
  |  Branch (84:5): [True: 0, False: 1.47k]
  ------------------
   85|  1.47k|    case status::unavailable_for_legal_reasons:
  ------------------
  |  Branch (85:5): [True: 0, False: 1.47k]
  ------------------
   86|  1.47k|        BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  1.47k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
   87|       |
   88|       |    // 5xx
   89|  1.47k|    case status::internal_server_error:
  ------------------
  |  Branch (89:5): [True: 0, False: 1.47k]
  ------------------
   90|  1.47k|    case status::not_implemented:
  ------------------
  |  Branch (90:5): [True: 0, False: 1.47k]
  ------------------
   91|  1.47k|    case status::bad_gateway:
  ------------------
  |  Branch (91:5): [True: 0, False: 1.47k]
  ------------------
   92|  1.47k|    case status::service_unavailable:
  ------------------
  |  Branch (92:5): [True: 0, False: 1.47k]
  ------------------
   93|  1.47k|    case status::gateway_timeout:
  ------------------
  |  Branch (93:5): [True: 0, False: 1.47k]
  ------------------
   94|  1.47k|    case status::http_version_not_supported:
  ------------------
  |  Branch (94:5): [True: 0, False: 1.47k]
  ------------------
   95|  1.47k|    case status::variant_also_negotiates:
  ------------------
  |  Branch (95:5): [True: 0, False: 1.47k]
  ------------------
   96|  1.47k|    case status::insufficient_storage:
  ------------------
  |  Branch (96:5): [True: 0, False: 1.47k]
  ------------------
   97|  1.47k|    case status::loop_detected:
  ------------------
  |  Branch (97:5): [True: 0, False: 1.47k]
  ------------------
   98|  1.47k|    case status::not_extended:
  ------------------
  |  Branch (98:5): [True: 0, False: 1.47k]
  ------------------
   99|  1.47k|    case status::network_authentication_required:
  ------------------
  |  Branch (99:5): [True: 0, False: 1.47k]
  ------------------
  100|  1.47k|        return static_cast<status>(v);
  101|       |
  102|      0|    default:
  ------------------
  |  Branch (102:5): [True: 0, False: 1.47k]
  ------------------
  103|      0|        break;
  104|  1.47k|    }
  105|      0|    return status::unknown;
  106|  1.47k|}
_ZN5boost5beast4http15obsolete_reasonENS1_6statusE:
  132|  5.14k|{
  133|  5.14k|    switch(static_cast<status>(v))
  134|  5.14k|    {
  135|       |    // 1xx
  136|     11|    case status::continue_:                             return "Continue";
  ------------------
  |  Branch (136:5): [True: 11, False: 5.13k]
  ------------------
  137|  4.64k|    case status::switching_protocols:                   return "Switching Protocols";
  ------------------
  |  Branch (137:5): [True: 4.64k, False: 502]
  ------------------
  138|      0|    case status::processing:                            return "Processing";
  ------------------
  |  Branch (138:5): [True: 0, False: 5.14k]
  ------------------
  139|      0|    case status::early_hints:                           return "Early Hints";
  ------------------
  |  Branch (139:5): [True: 0, False: 5.14k]
  ------------------
  140|       |
  141|       |    // 2xx
  142|      0|    case status::ok:                                    return "OK";
  ------------------
  |  Branch (142:5): [True: 0, False: 5.14k]
  ------------------
  143|      0|    case status::created:                               return "Created";
  ------------------
  |  Branch (143:5): [True: 0, False: 5.14k]
  ------------------
  144|      0|    case status::accepted:                              return "Accepted";
  ------------------
  |  Branch (144:5): [True: 0, False: 5.14k]
  ------------------
  145|      0|    case status::non_authoritative_information:         return "Non-Authoritative Information";
  ------------------
  |  Branch (145:5): [True: 0, False: 5.14k]
  ------------------
  146|      0|    case status::no_content:                            return "No Content";
  ------------------
  |  Branch (146:5): [True: 0, False: 5.14k]
  ------------------
  147|      0|    case status::reset_content:                         return "Reset Content";
  ------------------
  |  Branch (147:5): [True: 0, False: 5.14k]
  ------------------
  148|      0|    case status::partial_content:                       return "Partial Content";
  ------------------
  |  Branch (148:5): [True: 0, False: 5.14k]
  ------------------
  149|      0|    case status::multi_status:                          return "Multi-Status";
  ------------------
  |  Branch (149:5): [True: 0, False: 5.14k]
  ------------------
  150|      0|    case status::already_reported:                      return "Already Reported";
  ------------------
  |  Branch (150:5): [True: 0, False: 5.14k]
  ------------------
  151|      0|    case status::im_used:                               return "IM Used";
  ------------------
  |  Branch (151:5): [True: 0, False: 5.14k]
  ------------------
  152|       |
  153|       |    // 3xx
  154|      0|    case status::multiple_choices:                      return "Multiple Choices";
  ------------------
  |  Branch (154:5): [True: 0, False: 5.14k]
  ------------------
  155|      0|    case status::moved_permanently:                     return "Moved Permanently";
  ------------------
  |  Branch (155:5): [True: 0, False: 5.14k]
  ------------------
  156|      0|    case status::found:                                 return "Found";
  ------------------
  |  Branch (156:5): [True: 0, False: 5.14k]
  ------------------
  157|      0|    case status::see_other:                             return "See Other";
  ------------------
  |  Branch (157:5): [True: 0, False: 5.14k]
  ------------------
  158|      0|    case status::not_modified:                          return "Not Modified";
  ------------------
  |  Branch (158:5): [True: 0, False: 5.14k]
  ------------------
  159|      0|    case status::use_proxy:                             return "Use Proxy";
  ------------------
  |  Branch (159:5): [True: 0, False: 5.14k]
  ------------------
  160|      0|    case status::temporary_redirect:                    return "Temporary Redirect";
  ------------------
  |  Branch (160:5): [True: 0, False: 5.14k]
  ------------------
  161|      0|    case status::permanent_redirect:                    return "Permanent Redirect";
  ------------------
  |  Branch (161:5): [True: 0, False: 5.14k]
  ------------------
  162|       |
  163|       |    // 4xx
  164|    450|    case status::bad_request:                           return "Bad Request";
  ------------------
  |  Branch (164:5): [True: 450, False: 4.69k]
  ------------------
  165|      0|    case status::unauthorized:                          return "Unauthorized";
  ------------------
  |  Branch (165:5): [True: 0, False: 5.14k]
  ------------------
  166|      0|    case status::payment_required:                      return "Payment Required";
  ------------------
  |  Branch (166:5): [True: 0, False: 5.14k]
  ------------------
  167|      0|    case status::forbidden:                             return "Forbidden";
  ------------------
  |  Branch (167:5): [True: 0, False: 5.14k]
  ------------------
  168|      0|    case status::not_found:                             return "Not Found";
  ------------------
  |  Branch (168:5): [True: 0, False: 5.14k]
  ------------------
  169|      0|    case status::method_not_allowed:                    return "Method Not Allowed";
  ------------------
  |  Branch (169:5): [True: 0, False: 5.14k]
  ------------------
  170|      0|    case status::not_acceptable:                        return "Not Acceptable";
  ------------------
  |  Branch (170:5): [True: 0, False: 5.14k]
  ------------------
  171|      0|    case status::proxy_authentication_required:         return "Proxy Authentication Required";
  ------------------
  |  Branch (171:5): [True: 0, False: 5.14k]
  ------------------
  172|      0|    case status::request_timeout:                       return "Request Timeout";
  ------------------
  |  Branch (172:5): [True: 0, False: 5.14k]
  ------------------
  173|      0|    case status::conflict:                              return "Conflict";
  ------------------
  |  Branch (173:5): [True: 0, False: 5.14k]
  ------------------
  174|      0|    case status::gone:                                  return "Gone";
  ------------------
  |  Branch (174:5): [True: 0, False: 5.14k]
  ------------------
  175|      0|    case status::length_required:                       return "Length Required";
  ------------------
  |  Branch (175:5): [True: 0, False: 5.14k]
  ------------------
  176|      0|    case status::precondition_failed:                   return "Precondition Failed";
  ------------------
  |  Branch (176:5): [True: 0, False: 5.14k]
  ------------------
  177|      0|    case status::payload_too_large:                     return "Payload Too Large";
  ------------------
  |  Branch (177:5): [True: 0, False: 5.14k]
  ------------------
  178|      0|    case status::uri_too_long:                          return "URI Too Long";
  ------------------
  |  Branch (178:5): [True: 0, False: 5.14k]
  ------------------
  179|      0|    case status::unsupported_media_type:                return "Unsupported Media Type";
  ------------------
  |  Branch (179:5): [True: 0, False: 5.14k]
  ------------------
  180|      0|    case status::range_not_satisfiable:                 return "Range Not Satisfiable";
  ------------------
  |  Branch (180:5): [True: 0, False: 5.14k]
  ------------------
  181|      0|    case status::expectation_failed:                    return "Expectation Failed";
  ------------------
  |  Branch (181:5): [True: 0, False: 5.14k]
  ------------------
  182|      0|    case status::i_am_a_teapot:                         return "I'm a teapot";
  ------------------
  |  Branch (182:5): [True: 0, False: 5.14k]
  ------------------
  183|      0|    case status::misdirected_request:                   return "Misdirected Request";
  ------------------
  |  Branch (183:5): [True: 0, False: 5.14k]
  ------------------
  184|      0|    case status::unprocessable_entity:                  return "Unprocessable Entity";
  ------------------
  |  Branch (184:5): [True: 0, False: 5.14k]
  ------------------
  185|      0|    case status::locked:                                return "Locked";
  ------------------
  |  Branch (185:5): [True: 0, False: 5.14k]
  ------------------
  186|      0|    case status::failed_dependency:                     return "Failed Dependency";
  ------------------
  |  Branch (186:5): [True: 0, False: 5.14k]
  ------------------
  187|      0|    case status::too_early:                             return "Too Early";
  ------------------
  |  Branch (187:5): [True: 0, False: 5.14k]
  ------------------
  188|     41|    case status::upgrade_required:                      return "Upgrade Required";
  ------------------
  |  Branch (188:5): [True: 41, False: 5.10k]
  ------------------
  189|      0|    case status::precondition_required:                 return "Precondition Required";
  ------------------
  |  Branch (189:5): [True: 0, False: 5.14k]
  ------------------
  190|      0|    case status::too_many_requests:                     return "Too Many Requests";
  ------------------
  |  Branch (190:5): [True: 0, False: 5.14k]
  ------------------
  191|      0|    case status::request_header_fields_too_large:       return "Request Header Fields Too Large";
  ------------------
  |  Branch (191:5): [True: 0, False: 5.14k]
  ------------------
  192|      0|    case status::unavailable_for_legal_reasons:         return "Unavailable For Legal Reasons";
  ------------------
  |  Branch (192:5): [True: 0, False: 5.14k]
  ------------------
  193|       |    // 5xx
  194|      0|    case status::internal_server_error:                 return "Internal Server Error";
  ------------------
  |  Branch (194:5): [True: 0, False: 5.14k]
  ------------------
  195|      0|    case status::not_implemented:                       return "Not Implemented";
  ------------------
  |  Branch (195:5): [True: 0, False: 5.14k]
  ------------------
  196|      0|    case status::bad_gateway:                           return "Bad Gateway";
  ------------------
  |  Branch (196:5): [True: 0, False: 5.14k]
  ------------------
  197|      0|    case status::service_unavailable:                   return "Service Unavailable";
  ------------------
  |  Branch (197:5): [True: 0, False: 5.14k]
  ------------------
  198|      0|    case status::gateway_timeout:                       return "Gateway Timeout";
  ------------------
  |  Branch (198:5): [True: 0, False: 5.14k]
  ------------------
  199|      0|    case status::http_version_not_supported:            return "HTTP Version Not Supported";
  ------------------
  |  Branch (199:5): [True: 0, False: 5.14k]
  ------------------
  200|      0|    case status::variant_also_negotiates:               return "Variant Also Negotiates";
  ------------------
  |  Branch (200:5): [True: 0, False: 5.14k]
  ------------------
  201|      0|    case status::insufficient_storage:                  return "Insufficient Storage";
  ------------------
  |  Branch (201:5): [True: 0, False: 5.14k]
  ------------------
  202|      0|    case status::loop_detected:                         return "Loop Detected";
  ------------------
  |  Branch (202:5): [True: 0, False: 5.14k]
  ------------------
  203|      0|    case status::not_extended:                          return "Not Extended";
  ------------------
  |  Branch (203:5): [True: 0, False: 5.14k]
  ------------------
  204|      0|    case status::network_authentication_required:       return "Network Authentication Required";
  ------------------
  |  Branch (204:5): [True: 0, False: 5.14k]
  ------------------
  205|       |
  206|      0|    default:
  ------------------
  |  Branch (206:5): [True: 0, False: 5.14k]
  ------------------
  207|      0|        break;
  208|  5.14k|    }
  209|      0|    return "<unknown-status>";
  210|  5.14k|}

_ZN5boost5beast4http14string_to_verbENS_4core17basic_string_viewIcEE:
   76|  10.8k|{
   77|       |/*
   78|       |    ACL
   79|       |    BIND
   80|       |    CHECKOUT
   81|       |    CONNECT
   82|       |    COPY
   83|       |    DELETE
   84|       |    GET
   85|       |    HEAD
   86|       |    LINK
   87|       |    LOCK
   88|       |    M-SEARCH
   89|       |    MERGE
   90|       |    MKACTIVITY
   91|       |    MKCALENDAR
   92|       |    MKCOL
   93|       |    MOVE
   94|       |    NOTIFY
   95|       |    OPTIONS
   96|       |    PATCH
   97|       |    POST
   98|       |    PROPFIND
   99|       |    PROPPATCH
  100|       |    PURGE
  101|       |    PUT
  102|       |    REBIND
  103|       |    REPORT
  104|       |    SEARCH
  105|       |    SUBSCRIBE
  106|       |    TRACE
  107|       |    UNBIND
  108|       |    UNLINK
  109|       |    UNLOCK
  110|       |    UNSUBSCRIBE
  111|       |*/
  112|  10.8k|    using namespace beast::detail::string_literals;
  113|  10.8k|    if(v.size() < 3)
  ------------------
  |  Branch (113:8): [True: 4.07k, False: 6.79k]
  ------------------
  114|  4.07k|        return verb::unknown;
  115|  6.79k|    auto c = v[0];
  116|  6.79k|    v.remove_prefix(1);
  117|  6.79k|    switch(c)
  118|  6.79k|    {
  119|     74|    case 'A':
  ------------------
  |  Branch (119:5): [True: 74, False: 6.72k]
  ------------------
  120|     74|        if(v == "CL"_sv)
  ------------------
  |  Branch (120:12): [True: 2, False: 72]
  ------------------
  121|      2|            return verb::acl;
  122|     72|        break;
  123|       |
  124|     93|    case 'B':
  ------------------
  |  Branch (124:5): [True: 93, False: 6.70k]
  ------------------
  125|     93|        if(v == "IND"_sv)
  ------------------
  |  Branch (125:12): [True: 1, False: 92]
  ------------------
  126|      1|            return verb::bind;
  127|     92|        break;
  128|       |
  129|    123|    case 'C':
  ------------------
  |  Branch (129:5): [True: 123, False: 6.67k]
  ------------------
  130|    123|        c = v[0];
  131|    123|        v.remove_prefix(1);
  132|    123|        switch(c)
  133|    123|        {
  134|     13|        case 'H':
  ------------------
  |  Branch (134:9): [True: 13, False: 110]
  ------------------
  135|     13|            if(v == "ECKOUT"_sv)
  ------------------
  |  Branch (135:16): [True: 1, False: 12]
  ------------------
  136|      1|                return verb::checkout;
  137|     12|            break;
  138|       |
  139|    108|        case 'O':
  ------------------
  |  Branch (139:9): [True: 108, False: 15]
  ------------------
  140|    108|            if(v == "NNECT"_sv)
  ------------------
  |  Branch (140:16): [True: 1, False: 107]
  ------------------
  141|      1|                return verb::connect;
  142|    107|            if(v == "PY"_sv)
  ------------------
  |  Branch (142:16): [True: 1, False: 106]
  ------------------
  143|      1|                return verb::copy;
  144|    106|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|    106|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  145|       |
  146|    108|        default:
  ------------------
  |  Branch (146:9): [True: 2, False: 121]
  ------------------
  147|    108|            break;
  148|    123|        }
  149|    120|        break;
  150|       |
  151|    120|    case 'D':
  ------------------
  |  Branch (151:5): [True: 12, False: 6.78k]
  ------------------
  152|     12|        if(v == "ELETE"_sv)
  ------------------
  |  Branch (152:12): [True: 2, False: 10]
  ------------------
  153|      2|            return verb::delete_;
  154|     10|        break;
  155|       |
  156|  5.26k|    case 'G':
  ------------------
  |  Branch (156:5): [True: 5.26k, False: 1.52k]
  ------------------
  157|  5.26k|        if(v == "ET"_sv)
  ------------------
  |  Branch (157:12): [True: 5.14k, False: 126]
  ------------------
  158|  5.14k|            return verb::get;
  159|    126|        break;
  160|       |
  161|    126|    case 'H':
  ------------------
  |  Branch (161:5): [True: 89, False: 6.70k]
  ------------------
  162|     89|        if(v == "EAD"_sv)
  ------------------
  |  Branch (162:12): [True: 1, False: 88]
  ------------------
  163|      1|            return verb::head;
  164|     88|        break;
  165|       |
  166|    126|    case 'L':
  ------------------
  |  Branch (166:5): [True: 126, False: 6.66k]
  ------------------
  167|    126|        if(v == "INK"_sv)
  ------------------
  |  Branch (167:12): [True: 1, False: 125]
  ------------------
  168|      1|            return verb::link;
  169|    125|        if(v == "OCK"_sv)
  ------------------
  |  Branch (169:12): [True: 1, False: 124]
  ------------------
  170|      1|            return verb::lock;
  171|    124|        break;
  172|       |
  173|    354|    case 'M':
  ------------------
  |  Branch (173:5): [True: 354, False: 6.44k]
  ------------------
  174|    354|        c = v[0];
  175|    354|        v.remove_prefix(1);
  176|    354|        switch(c)
  177|    354|        {
  178|     33|        case '-':
  ------------------
  |  Branch (178:9): [True: 33, False: 321]
  ------------------
  179|     33|            if(v == "SEARCH"_sv)
  ------------------
  |  Branch (179:16): [True: 1, False: 32]
  ------------------
  180|      1|                return verb::msearch;
  181|     32|            break;
  182|       |
  183|     79|        case 'E':
  ------------------
  |  Branch (183:9): [True: 79, False: 275]
  ------------------
  184|     79|            if(v == "RGE"_sv)
  ------------------
  |  Branch (184:16): [True: 1, False: 78]
  ------------------
  185|      1|                return verb::merge;
  186|     78|            break;
  187|       |
  188|    153|        case 'K':
  ------------------
  |  Branch (188:9): [True: 153, False: 201]
  ------------------
  189|    153|            if(v == "ACTIVITY"_sv)
  ------------------
  |  Branch (189:16): [True: 1, False: 152]
  ------------------
  190|      1|                return verb::mkactivity;
  191|    152|            if(v[0] == 'C')
  ------------------
  |  Branch (191:16): [True: 114, False: 38]
  ------------------
  192|    114|            {
  193|    114|                v.remove_prefix(1);
  194|    114|                if(v == "ALENDAR"_sv)
  ------------------
  |  Branch (194:20): [True: 1, False: 113]
  ------------------
  195|      1|                    return verb::mkcalendar;
  196|    113|                if(v == "OL"_sv)
  ------------------
  |  Branch (196:20): [True: 1, False: 112]
  ------------------
  197|      1|                    return verb::mkcol;
  198|    112|                break;
  199|    113|            }
  200|     38|            break;
  201|       |
  202|     87|        case 'O':
  ------------------
  |  Branch (202:9): [True: 87, False: 267]
  ------------------
  203|     87|            if(v == "VE"_sv)
  ------------------
  |  Branch (203:16): [True: 1, False: 86]
  ------------------
  204|      1|                return verb::move;
  205|     86|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|     86|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  206|       |
  207|     88|        default:
  ------------------
  |  Branch (207:9): [True: 2, False: 352]
  ------------------
  208|     88|            break;
  209|    354|        }
  210|    348|        break;
  211|       |
  212|    348|    case 'N':
  ------------------
  |  Branch (212:5): [True: 25, False: 6.76k]
  ------------------
  213|     25|        if(v == "OTIFY"_sv)
  ------------------
  |  Branch (213:12): [True: 1, False: 24]
  ------------------
  214|      1|            return verb::notify;
  215|     24|        break;
  216|       |
  217|     29|    case 'O':
  ------------------
  |  Branch (217:5): [True: 29, False: 6.76k]
  ------------------
  218|     29|        if(v == "PTIONS"_sv)
  ------------------
  |  Branch (218:12): [True: 1, False: 28]
  ------------------
  219|      1|            return verb::options;
  220|     28|        break;
  221|       |
  222|    338|    case 'P':
  ------------------
  |  Branch (222:5): [True: 338, False: 6.45k]
  ------------------
  223|    338|        c = v[0];
  224|    338|        v.remove_prefix(1);
  225|    338|        switch(c)
  226|    338|        {
  227|     83|        case 'A':
  ------------------
  |  Branch (227:9): [True: 83, False: 255]
  ------------------
  228|     83|            if(v == "TCH"_sv)
  ------------------
  |  Branch (228:16): [True: 1, False: 82]
  ------------------
  229|      1|                return verb::patch;
  230|     82|            break;
  231|       |
  232|     82|        case 'O':
  ------------------
  |  Branch (232:9): [True: 73, False: 265]
  ------------------
  233|     73|            if(v == "ST"_sv)
  ------------------
  |  Branch (233:16): [True: 1, False: 72]
  ------------------
  234|      1|                return verb::post;
  235|     72|            break;
  236|       |
  237|     72|        case 'R':
  ------------------
  |  Branch (237:9): [True: 46, False: 292]
  ------------------
  238|     46|            if(v == "OPFIND"_sv)
  ------------------
  |  Branch (238:16): [True: 1, False: 45]
  ------------------
  239|      1|                return verb::propfind;
  240|     45|            if(v == "OPPATCH"_sv)
  ------------------
  |  Branch (240:16): [True: 1, False: 44]
  ------------------
  241|      1|                return verb::proppatch;
  242|     44|            break;
  243|       |
  244|    132|        case 'U':
  ------------------
  |  Branch (244:9): [True: 132, False: 206]
  ------------------
  245|    132|            if(v == "RGE"_sv)
  ------------------
  |  Branch (245:16): [True: 1, False: 131]
  ------------------
  246|      1|                return verb::purge;
  247|    131|            if(v == "T"_sv)
  ------------------
  |  Branch (247:16): [True: 1, False: 130]
  ------------------
  248|      1|                return verb::put;
  249|    130|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|    130|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  250|       |
  251|    134|        default:
  ------------------
  |  Branch (251:9): [True: 4, False: 334]
  ------------------
  252|    134|            break;
  253|    338|        }
  254|    332|        break;
  255|       |
  256|    332|    case 'R':
  ------------------
  |  Branch (256:5): [True: 34, False: 6.76k]
  ------------------
  257|     34|        if(v[0] != 'E')
  ------------------
  |  Branch (257:12): [True: 22, False: 12]
  ------------------
  258|     22|            break;
  259|     12|        v.remove_prefix(1);
  260|     12|        if(v == "BIND"_sv)
  ------------------
  |  Branch (260:12): [True: 1, False: 11]
  ------------------
  261|      1|            return verb::rebind;
  262|     11|        if(v == "PORT"_sv)
  ------------------
  |  Branch (262:12): [True: 1, False: 10]
  ------------------
  263|      1|            return verb::report;
  264|     10|        break;
  265|       |
  266|     80|    case 'S':
  ------------------
  |  Branch (266:5): [True: 80, False: 6.71k]
  ------------------
  267|     80|        if(v == "EARCH"_sv)
  ------------------
  |  Branch (267:12): [True: 1, False: 79]
  ------------------
  268|      1|            return verb::search;
  269|     79|        if(v == "UBSCRIBE"_sv)
  ------------------
  |  Branch (269:12): [True: 1, False: 78]
  ------------------
  270|      1|            return verb::subscribe;
  271|     78|        break;
  272|       |
  273|     78|    case 'T':
  ------------------
  |  Branch (273:5): [True: 35, False: 6.75k]
  ------------------
  274|     35|        if(v == "RACE"_sv)
  ------------------
  |  Branch (274:12): [True: 1, False: 34]
  ------------------
  275|      1|            return verb::trace;
  276|     34|        break;
  277|       |
  278|     92|    case 'U':
  ------------------
  |  Branch (278:5): [True: 92, False: 6.70k]
  ------------------
  279|     92|        if(v[0] != 'N')
  ------------------
  |  Branch (279:12): [True: 20, False: 72]
  ------------------
  280|     20|            break;
  281|     72|        v.remove_prefix(1);
  282|     72|        if(v == "BIND"_sv)
  ------------------
  |  Branch (282:12): [True: 1, False: 71]
  ------------------
  283|      1|            return verb::unbind;
  284|     71|        if(v == "LINK"_sv)
  ------------------
  |  Branch (284:12): [True: 1, False: 70]
  ------------------
  285|      1|            return verb::unlink;
  286|     70|        if(v == "LOCK"_sv)
  ------------------
  |  Branch (286:12): [True: 1, False: 69]
  ------------------
  287|      1|            return verb::unlock;
  288|     69|        if(v == "SUBSCRIBE"_sv)
  ------------------
  |  Branch (288:12): [True: 1, False: 68]
  ------------------
  289|      1|            return verb::unsubscribe;
  290|     68|        break;
  291|       |
  292|     68|    default:
  ------------------
  |  Branch (292:5): [True: 24, False: 6.77k]
  ------------------
  293|     24|        break;
  294|  6.79k|    }
  295|       |
  296|  1.62k|    return verb::unknown;
  297|  6.79k|}

_ZN5boost5beast4http5writeINS0_4test12basic_streamINS_4asio15any_io_executorEEELb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEEENSA_9enable_ifIXntsr22is_mutable_body_writerIT1_EE5valueEmE4typeERT_RKNS1_7messageIXT0_ESF_T2_EERNS_6system10error_codeE:
  855|     11|{
  856|     11|    static_assert(is_sync_write_stream<SyncWriteStream>::value,
  857|     11|        "SyncWriteStream type requirements not met");
  858|     11|    static_assert(is_body<Body>::value,
  859|     11|        "Body type requirements not met");
  860|     11|    static_assert(is_body_writer<Body>::value,
  861|     11|        "BodyWriter type requirements not met");
  862|     11|    serializer<isRequest, Body, Fields> sr{msg};
  863|     11|    return write(stream, sr, ec);
  864|     11|}
_ZN5boost5beast4http5writeINS0_4test12basic_streamINS_4asio15any_io_executorEEELb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEEEmRT_RNS1_10serializerIXT0_ET1_T2_EERNS_6system10error_codeE:
  730|     11|{
  731|     11|    static_assert(is_sync_write_stream<SyncWriteStream>::value,
  732|     11|        "SyncWriteStream type requirements not met");
  733|     11|    std::size_t bytes_transferred = 0;
  734|     11|    sr.split(false);
  735|     11|    for(;;)
  736|     11|    {
  737|     11|        bytes_transferred +=
  738|     11|            write_some(stream, sr, ec);
  739|     11|        if(ec)
  ------------------
  |  Branch (739:12): [True: 0, False: 11]
  ------------------
  740|      0|            return bytes_transferred;
  741|     11|        if(sr.is_done())
  ------------------
  |  Branch (741:12): [True: 11, False: 0]
  ------------------
  742|     11|            break;
  743|     11|    }
  744|     11|    return bytes_transferred;
  745|     11|}
_ZN5boost5beast4http10write_someINS0_4test12basic_streamINS_4asio15any_io_executorEEELb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEEEmRT_RNS1_10serializerIXT0_ET1_T2_EERNS_6system10error_codeE:
  583|     11|{
  584|     11|    static_assert(is_sync_write_stream<SyncWriteStream>::value,
  585|     11|        "SyncWriteStream type requirements not met");
  586|     11|    static_assert(is_body<Body>::value,
  587|     11|        "Body type requirements not met");
  588|     11|    static_assert(is_body_writer<Body>::value,
  589|     11|        "BodyWriter type requirements not met");
  590|     11|    return detail::write_some_impl(stream, sr, ec);
  591|     11|}
_ZN5boost5beast4http6detail15write_some_implINS0_4test12basic_streamINS_4asio15any_io_executorEEELb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEEEmRT_RNS1_10serializerIXT0_ET1_T2_EERNS_6system10error_codeE:
  516|     11|{
  517|     11|    if(! sr.is_done())
  ------------------
  |  Branch (517:8): [True: 11, False: 0]
  ------------------
  518|     11|    {
  519|     11|        write_some_lambda<SyncWriteStream> f{stream};
  520|     11|        sr.next(ec, f);
  521|     11|        if(ec)
  ------------------
  |  Branch (521:12): [True: 0, False: 11]
  ------------------
  522|      0|            return f.bytes_transferred;
  523|     11|        if(f.invoked)
  ------------------
  |  Branch (523:12): [True: 11, False: 0]
  ------------------
  524|     11|            sr.consume(f.bytes_transferred);
  525|     11|        return f.bytes_transferred;
  526|     11|    }
  527|      0|    ec = {};
  528|      0|    return 0;
  529|     11|}
_ZN5boost5beast4http6detail17write_some_lambdaINS0_4test12basic_streamINS_4asio15any_io_executorEEEEC2ERS8_:
  467|  5.14k|        : stream_(stream)
  468|  5.14k|    {
  469|  5.14k|    }
_ZN5boost5beast4http6detail17write_some_lambdaINS0_4test12basic_streamINS_4asio15any_io_executorEEEEclINS0_6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINS0_16buffers_cat_viewIJNSC_INSF_IJNS6_12const_bufferESG_SG_NS1_12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS1_10chunk_crlfEEEEEESG_EEEEEEEEEEEvRNS_6system10error_codeERKT_:
  475|  5.13k|    {
  476|  5.13k|        invoked = true;
  477|  5.13k|        bytes_transferred =
  478|  5.13k|            stream_.write_some(buffers, ec);
  479|  5.13k|    }
_ZN5boost5beast4http6detail17write_some_lambdaINS0_4test12basic_streamINS_4asio15any_io_executorEEEEclINS0_6detail11buffers_refINS0_19buffers_prefix_viewIRKNS0_14buffers_suffixINSC_INS0_16buffers_cat_viewIJNS6_12const_bufferESG_SG_NS1_12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS1_10chunk_crlfEEEEEEEEEEEEEEvRNS_6system10error_codeERKT_:
  475|     11|    {
  476|     11|        invoked = true;
  477|     11|        bytes_transferred =
  478|     11|            stream_.write_some(buffers, ec);
  479|     11|    }
_ZN5boost5beast4http5writeINS0_4test12basic_streamINS_4asio15any_io_executorEEELb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS9_9allocatorIcEEEENS1_12basic_fieldsISD_EEEENS9_9enable_ifIXntsr22is_mutable_body_writerIT1_EE5valueEmE4typeERT_RKNS1_7messageIXT0_ESI_T2_EERNS_6system10error_codeE:
  855|  5.13k|{
  856|  5.13k|    static_assert(is_sync_write_stream<SyncWriteStream>::value,
  857|  5.13k|        "SyncWriteStream type requirements not met");
  858|  5.13k|    static_assert(is_body<Body>::value,
  859|  5.13k|        "Body type requirements not met");
  860|  5.13k|    static_assert(is_body_writer<Body>::value,
  861|  5.13k|        "BodyWriter type requirements not met");
  862|  5.13k|    serializer<isRequest, Body, Fields> sr{msg};
  863|  5.13k|    return write(stream, sr, ec);
  864|  5.13k|}
_ZN5boost5beast4http5writeINS0_4test12basic_streamINS_4asio15any_io_executorEEELb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS9_9allocatorIcEEEENS1_12basic_fieldsISD_EEEEmRT_RNS1_10serializerIXT0_ET1_T2_EERNS_6system10error_codeE:
  730|  5.13k|{
  731|  5.13k|    static_assert(is_sync_write_stream<SyncWriteStream>::value,
  732|  5.13k|        "SyncWriteStream type requirements not met");
  733|  5.13k|    std::size_t bytes_transferred = 0;
  734|  5.13k|    sr.split(false);
  735|  5.13k|    for(;;)
  736|  5.13k|    {
  737|  5.13k|        bytes_transferred +=
  738|  5.13k|            write_some(stream, sr, ec);
  739|  5.13k|        if(ec)
  ------------------
  |  Branch (739:12): [True: 0, False: 5.13k]
  ------------------
  740|      0|            return bytes_transferred;
  741|  5.13k|        if(sr.is_done())
  ------------------
  |  Branch (741:12): [True: 5.13k, False: 0]
  ------------------
  742|  5.13k|            break;
  743|  5.13k|    }
  744|  5.13k|    return bytes_transferred;
  745|  5.13k|}
_ZN5boost5beast4http10write_someINS0_4test12basic_streamINS_4asio15any_io_executorEEELb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS9_9allocatorIcEEEENS1_12basic_fieldsISD_EEEEmRT_RNS1_10serializerIXT0_ET1_T2_EERNS_6system10error_codeE:
  583|  5.13k|{
  584|  5.13k|    static_assert(is_sync_write_stream<SyncWriteStream>::value,
  585|  5.13k|        "SyncWriteStream type requirements not met");
  586|  5.13k|    static_assert(is_body<Body>::value,
  587|  5.13k|        "Body type requirements not met");
  588|  5.13k|    static_assert(is_body_writer<Body>::value,
  589|  5.13k|        "BodyWriter type requirements not met");
  590|  5.13k|    return detail::write_some_impl(stream, sr, ec);
  591|  5.13k|}
_ZN5boost5beast4http6detail15write_some_implINS0_4test12basic_streamINS_4asio15any_io_executorEEELb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENSA_9allocatorIcEEEENS1_12basic_fieldsISE_EEEEmRT_RNS1_10serializerIXT0_ET1_T2_EERNS_6system10error_codeE:
  516|  5.13k|{
  517|  5.13k|    if(! sr.is_done())
  ------------------
  |  Branch (517:8): [True: 5.13k, False: 0]
  ------------------
  518|  5.13k|    {
  519|  5.13k|        write_some_lambda<SyncWriteStream> f{stream};
  520|  5.13k|        sr.next(ec, f);
  521|  5.13k|        if(ec)
  ------------------
  |  Branch (521:12): [True: 0, False: 5.13k]
  ------------------
  522|      0|            return f.bytes_transferred;
  523|  5.13k|        if(f.invoked)
  ------------------
  |  Branch (523:12): [True: 5.13k, False: 0]
  ------------------
  524|  5.13k|            sr.consume(f.bytes_transferred);
  525|  5.13k|        return f.bytes_transferred;
  526|  5.13k|    }
  527|      0|    ec = {};
  528|      0|    return 0;
  529|  5.13k|}

_ZN5boost5beast4http7messageILb1ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEEC2Ev:
  513|  8.21k|    message() = default;
_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEEC2Ev:
   70|  8.21k|    header() = default;
_ZN5boost5beast4http7messageILb1ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE4baseEv:
  718|  8.21k|    {
  719|  8.21k|        return *this;
  720|  8.21k|    }
_ZNR5boost5beast4http7messageILb1ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE4bodyEv:
  877|  8.21k|    {
  878|  8.21k|        return this->boost::empty_value<
  879|  8.21k|            typename Body::value_type>::get();
  880|  8.21k|    }
_ZN5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7versionEj:
  114|  8.02k|    {
  115|  8.02k|        BOOST_ASSERT(value > 0 && value < 100);
  ------------------
  |  |   66|  8.02k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  116|  8.02k|        version_ = value;
  117|  8.02k|    }
_ZNK5boost5beast4http6headerILb1ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7versionEv:
   96|  10.2k|    {
   97|  10.2k|        return version_;
   98|  10.2k|    }
_ZN5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEEC2EOSC_:
  516|    450|    message(message&&) = default;
_ZN5boost5beast4http6headerILb0ENS1_12basic_fieldsINSt3__19allocatorIcEEEEEC2EOS8_:
  273|    450|    header(header&&) = default;
_ZN5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEEC2Ev:
  513|  5.13k|    message() = default;
_ZN5boost5beast4http6headerILb0ENS1_12basic_fieldsINSt3__19allocatorIcEEEEEC2Ev:
  270|  5.14k|    header() = default;
_ZNR5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE4bodyEv:
  877|    491|    {
  878|    491|        return this->boost::empty_value<
  879|    491|            typename Body::value_type>::get();
  880|    491|    }
_ZN5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE15prepare_payloadEv:
  866|    491|    {
  867|    491|        prepare_payload(typename header_type::is_request{});
  868|    491|    }
_ZNK5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE12payload_sizeENS4_17integral_constantIbLb1EEE:
  959|    491|    {
  960|    491|        return Body::size(this->body());
  961|    491|    }
_ZNKR5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE4bodyEv:
  902|  5.62k|    {
  903|  5.62k|        return this->boost::empty_value<
  904|  5.62k|            typename Body::value_type>::get();
  905|  5.62k|    }
_ZN5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEEC2Ev:
  513|     11|    message() = default;
_ZN5boost5beast4http6headerILb0ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7versionEj:
  336|  5.14k|    {
  337|  5.14k|        BOOST_ASSERT(value > 0 && value < 100);
  ------------------
  |  |   66|  5.14k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  338|  5.14k|        version_ = value;
  339|  5.14k|    }
_ZNK5boost5beast4http6headerILb0ENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7versionEv:
  318|  5.15k|    {
  319|  5.15k|        return version_;
  320|  5.15k|    }
_ZN5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE15prepare_payloadEv:
  866|     11|    {
  867|     11|        prepare_payload(typename header_type::is_request{});
  868|     11|    }
_ZNK5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE12payload_sizeENS5_17integral_constantIbLb1EEE:
  959|     11|    {
  960|     11|        return Body::size(this->body());
  961|     11|    }
_ZNKR5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE4bodyEv:
  902|     22|    {
  903|     22|        return this->boost::empty_value<
  904|     22|            typename Body::value_type>::get();
  905|     22|    }
_ZNK5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE4baseEv:
  711|     11|    {
  712|     11|        return *this;
  713|     11|    }
_ZNK5boost5beast4http7messageILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7chunkedEv:
  725|     11|    {
  726|     11|        return this->get_chunked_impl();
  727|     11|    }
_ZNK5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE4baseEv:
  711|  5.13k|    {
  712|  5.13k|        return *this;
  713|  5.13k|    }
_ZNK5boost5beast4http7messageILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE7chunkedEv:
  725|  5.13k|    {
  726|  5.13k|        return this->get_chunked_impl();
  727|  5.13k|    }

_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE15on_request_implENS1_4verbENS_4core17basic_string_viewIcEESB_iRNS_6system10error_codeE:
  385|  8.02k|    {
  386|  8.02k|        this->on_request_impl(
  387|  8.02k|            method, method_str, target, version, ec,
  388|  8.02k|            std::integral_constant<bool, isRequest>{});
  389|  8.02k|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE15on_request_implENS1_4verbENS_4core17basic_string_viewIcEESB_iRNS_6system10error_codeENS4_17integral_constantIbLb1EEE:
  348|  8.02k|    {
  349|       |        // If this assert goes off, it means you tried to re-use a
  350|       |        // parser after it was done reading a message. This is not
  351|       |        // allowed, you need to create a new parser for each message.
  352|       |        // The easiest way to do that is to store the parser in
  353|       |        // an optional object.
  354|       |
  355|  8.02k|        BOOST_ASSERT(! used_);
  ------------------
  |  |   66|  8.02k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  356|  8.02k|        if(used_)
  ------------------
  |  Branch (356:12): [True: 0, False: 8.02k]
  ------------------
  357|      0|        {
  358|      0|            BOOST_BEAST_ASSIGN_EC(ec, error::stale_parser);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  359|      0|            return;
  360|      0|        }
  361|  8.02k|        used_ = true;
  362|       |
  363|  8.02k|        m_.target(target);
  364|  8.02k|        if(method != verb::unknown)
  ------------------
  |  Branch (364:12): [True: 5.17k, False: 2.84k]
  ------------------
  365|  5.17k|            m_.method(method);
  366|  2.84k|        else
  367|  2.84k|            m_.method_string(method_str);
  368|  8.02k|        m_.version(version);
  369|  8.02k|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE13on_field_implENS1_5fieldENS_4core17basic_string_viewIcEESB_RNS_6system10error_codeE:
  443|  65.3k|    {
  444|  65.3k|        m_.insert(name, name_string, value, ec);
  445|  65.3k|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE14on_header_implERNS_6system10error_codeE:
  449|  5.69k|    {
  450|  5.69k|        ec = {};
  451|  5.69k|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE17on_body_init_implERKNS_8optionalImEERNS_6system10error_codeE:
  457|    561|    {
  458|    561|        rd_.init(content_length, ec);
  459|    561|        rd_inited_ = true;
  460|    561|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE20on_chunk_header_implEmNS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  476|    113|    {
  477|    113|        if(cb_h_)
  ------------------
  |  Branch (477:12): [True: 0, False: 113]
  ------------------
  478|      0|            return cb_h_(size, extensions, ec);
  479|    113|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE18on_chunk_body_implEmNS_4core17basic_string_viewIcEERNS_6system10error_codeE:
  486|     36|    {
  487|     36|        if(cb_b_)
  ------------------
  |  Branch (487:12): [True: 0, False: 36]
  ------------------
  488|      0|            return cb_b_(remain, body, ec);
  489|     36|        return rd_.put(net::buffer(
  490|     36|            body.data(), body.size()), ec);
  491|     36|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE14on_finish_implERNS_6system10error_codeE:
  496|  5.13k|    {
  497|  5.13k|        rd_.finish(ec);
  498|  5.13k|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEE3getEv:
  188|  5.13k|    {
  189|  5.13k|        return m_;
  190|  5.13k|    }
_ZN5boost5beast4http6parserILb1ENS1_10empty_bodyENSt3__19allocatorIcEEED2Ev:
   92|  8.21k|    ~parser() = default;

_ZN5boost5beast4http10token_listC2ENS_4core17basic_string_viewIcEE:
  258|  18.1k|        : s_(s)
  259|  18.1k|    {
  260|  18.1k|    }
_ZN5boost5beast4http8ext_listC2ENS_4core17basic_string_viewIcEE:
  170|  9.28k|        : s_(s)
  171|  9.28k|    {
  172|  9.28k|    }
_ZN5boost5beast4http10param_listC2Ev:
   75|  18.5k|    param_list() = default;
_ZN5boost5beast4http10param_listC2ENS_4core17basic_string_viewIcEE:
   84|  3.01k|        : s_(s)
   85|  3.01k|    {
   86|  3.01k|    }

_ZN5boost5beast4http10serializerILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE5splitEb:
  294|     11|    {
  295|     11|        split_ = v;
  296|     11|    }
_ZNK5boost5beast4http10serializerILb0ENS1_10empty_bodyENS1_12basic_fieldsINSt3__19allocatorIcEEEEE7is_doneEv:
  317|     22|    {
  318|     22|        return s_ == do_complete;
  319|     22|    }
_ZN5boost5beast4http10serializerILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE5splitEb:
  294|  5.13k|    {
  295|  5.13k|        split_ = v;
  296|  5.13k|    }
_ZNK5boost5beast4http10serializerILb0ENS1_17basic_string_bodyIcNSt3__111char_traitsIcEENS4_9allocatorIcEEEENS1_12basic_fieldsIS8_EEE7is_doneEv:
  317|  10.2k|    {
  318|  10.2k|        return s_ == do_complete;
  319|  10.2k|    }

_ZN5boost5beast4http17basic_string_bodyIcNSt3__111char_traitsIcEENS3_9allocatorIcEEE4sizeERKNS3_12basic_stringIcS5_S7_EE:
   74|    491|    {
   75|    491|        return body.size();
   76|    491|    }
_ZN5boost5beast4http17basic_string_bodyIcNSt3__111char_traitsIcEENS3_9allocatorIcEEE6writerC2ILb0ENS1_12basic_fieldsIS7_EEEERKNS1_6headerIXT_ET0_EERKNS3_12basic_stringIcS5_S7_EE:
  164|  5.13k|            : body_(b)
  165|  5.13k|        {
  166|  5.13k|        }
_ZN5boost5beast4http17basic_string_bodyIcNSt3__111char_traitsIcEENS3_9allocatorIcEEE6writer4initERNS_6system10error_codeE:
  170|  5.13k|        {
  171|  5.13k|            ec = {};
  172|  5.13k|        }
_ZN5boost5beast4http17basic_string_bodyIcNSt3__111char_traitsIcEENS3_9allocatorIcEEE6writer3getERNS_6system10error_codeE:
  176|  5.13k|        {
  177|  5.13k|            ec = {};
  178|  5.13k|            return {{const_buffers_type{
  179|  5.13k|                body_.data(), body_.size()}, false}};
  180|  5.13k|        }

_ZN5boost5beast9websocket6detail9decoratorD2Ev:
  152|  16.4k|    {
  153|  16.4k|        vtable_->destroy(storage_);
  154|  16.4k|    }
_ZN5boost5beast9websocket6detail9decoratorC2Ev:
  147|  8.21k|    decorator() = default;
_ZN5boost5beast9websocket6detail9decorator6vtable11get_defaultEv:
  102|  16.4k|        {
  103|  16.4k|            static const vtable impl{
  104|  16.4k|                &move_fn,
  105|  16.4k|                &destroy_fn,
  106|  16.4k|                &invoke_req_fn,
  107|  16.4k|                &invoke_res_fn
  108|  16.4k|            };
  109|  16.4k|            return &impl;
  110|  16.4k|        }
_ZN5boost5beast9websocket6detail9decorator6vtable10destroy_fnERNS3_7storageE:
   88|  16.4k|        {
   89|  16.4k|        }
websocket_server.cpp:_ZN5boost5beast9websocket6detail9decoratorC2IZ22LLVMFuzzerTestOneInputE3$_0vEEOT_:
  170|  8.21k|      : vtable_(vtable_impl<
  171|  8.21k|          typename std::decay<F>::type>::
  172|  8.21k|        construct(storage_, std::forward<F>(f)))
  173|  8.21k|    {
  174|  8.21k|    }
websocket_server.cpp:_ZN5boost5beast9websocket6detail9decorator11vtable_implIZ22LLVMFuzzerTestOneInputE3$_0Lb1EE9constructIS5_EEPKNS3_6vtableERNS3_7storageEOT_:
  206|  8.21k|    {
  207|  8.21k|        ::new (static_cast<void*>(&dst.buf_)) F(
  208|  8.21k|            std::forward<Arg>(arg));
  209|  8.21k|        return get();
  210|  8.21k|    }
websocket_server.cpp:_ZN5boost5beast9websocket6detail9decorator11vtable_implIZ22LLVMFuzzerTestOneInputE3$_0Lb1EE3getEv:
  246|  8.21k|    {
  247|  8.21k|        static constexpr vtable impl{
  248|  8.21k|            &move,
  249|  8.21k|            &destroy,
  250|  8.21k|            &invoke_req,
  251|  8.21k|            &invoke_res};
  252|  8.21k|        return &impl;
  253|  8.21k|    }
websocket_server.cpp:_ZN5boost5beast9websocket6detail9decorator11vtable_implIZ22LLVMFuzzerTestOneInputE3$_0Lb1EE4moveERNS3_7storageES8_:
  215|  8.21k|    {
  216|  8.21k|        auto& f = *beast::detail::launder_cast<F*>(&src.buf_);
  217|  8.21k|        ::new (&dst.buf_) F(std::move(f));
  218|  8.21k|    }
websocket_server.cpp:_ZN5boost5beast9websocket6detail9decorator11vtable_implIZ22LLVMFuzzerTestOneInputE3$_0Lb1EE7destroyERNS3_7storageE:
  223|  8.21k|    {
  224|  8.21k|        beast::detail::launder_cast<F*>(&dst.buf_)->~F();
  225|  8.21k|    }
websocket_server.cpp:_ZN5boost5beast9websocket6detail9decorator11vtable_implIZ22LLVMFuzzerTestOneInputE3$_0Lb1EE10invoke_resERNS3_7storageERNS0_4http7messageILb0ENS9_17basic_string_bodyIcNSt3__111char_traitsIcEENSC_9allocatorIcEEEENS9_12basic_fieldsISG_EEEE:
  238|  5.13k|    {
  239|  5.13k|        maybe_invoke<F, response_type>{}(
  240|  5.13k|            *beast::detail::launder_cast<F*>(&dst.buf_), res);
  241|  5.13k|    }
websocket_server.cpp:_ZN5boost5beast9websocket6detail9decorator12maybe_invokeIZ22LLVMFuzzerTestOneInputE3$_0NS0_4http7messageILb0ENS6_17basic_string_bodyIcNSt3__111char_traitsIcEENS9_9allocatorIcEEEENS6_12basic_fieldsISD_EEEEvEclERS5_RSH_:
  141|  5.13k|        {
  142|  5.13k|            t(u);
  143|  5.13k|        }
_ZN5boost5beast9websocket6detail9decoratoraSEOS3_:
  178|  8.21k|    {
  179|  8.21k|        vtable_->destroy(storage_);
  180|  8.21k|        vtable_ = boost::exchange(
  181|  8.21k|            other.vtable_, vtable::get_default());
  182|  8.21k|        vtable_->move(storage_, other.storage_);
  183|  8.21k|        return *this;
  184|  8.21k|    }
_ZN5boost5beast9websocket6detail9decoratorclERNS0_4http7messageILb0ENS4_17basic_string_bodyIcNSt3__111char_traitsIcEENS7_9allocatorIcEEEENS4_12basic_fieldsISB_EEEE:
  194|  5.13k|    {
  195|  5.13k|        vtable_->invoke_res(storage_, res);
  196|  5.13k|    }

_ZN5boost5beast9websocket6detail11is_reservedENS2_6opcodeE:
   72|   560k|{
   73|   560k|    return
   74|   560k|        (op >= opcode::rsv3  && op <= opcode::rsv7) ||
  ------------------
  |  Branch (74:10): [True: 560k, False: 0]
  |  Branch (74:33): [True: 36, False: 560k]
  ------------------
   75|   560k|        (op >= opcode::crsvb && op <= opcode::crsvf);
  ------------------
  |  Branch (75:10): [True: 25, False: 560k]
  |  Branch (75:33): [True: 25, False: 0]
  ------------------
   76|   560k|}
_ZN5boost5beast9websocket6detail5writeINS0_23flat_static_buffer_baseEEEvRT_RKNS2_12frame_headerE:
  135|   336k|{
  136|   336k|    std::size_t n;
  137|   336k|    std::uint8_t b[14];
  138|   336k|    b[0] = (fh.fin ? 0x80 : 0x00) | static_cast<std::uint8_t>(fh.op);
  ------------------
  |  Branch (138:13): [True: 322k, False: 14.0k]
  ------------------
  139|   336k|    if(fh.rsv1)
  ------------------
  |  Branch (139:8): [True: 1.13k, False: 335k]
  ------------------
  140|  1.13k|        b[0] |= 0x40;
  141|   336k|    if(fh.rsv2)
  ------------------
  |  Branch (141:8): [True: 0, False: 336k]
  ------------------
  142|      0|        b[0] |= 0x20;
  143|   336k|    if(fh.rsv3)
  ------------------
  |  Branch (143:8): [True: 0, False: 336k]
  ------------------
  144|      0|        b[0] |= 0x10;
  145|   336k|    b[1] = fh.mask ? 0x80 : 0x00;
  ------------------
  |  Branch (145:12): [True: 0, False: 336k]
  ------------------
  146|   336k|    if(fh.len <= 125)
  ------------------
  |  Branch (146:8): [True: 321k, False: 14.9k]
  ------------------
  147|   321k|    {
  148|   321k|        b[1] |= fh.len;
  149|   321k|        n = 2;
  150|   321k|    }
  151|  14.9k|    else if(fh.len <= 65535)
  ------------------
  |  Branch (151:13): [True: 14.9k, False: 0]
  ------------------
  152|  14.9k|    {
  153|  14.9k|        b[1] |= 126;
  154|  14.9k|        auto len_be = endian::native_to_big(
  155|  14.9k|            static_cast<std::uint16_t>(fh.len));
  156|  14.9k|        std::memcpy(&b[2], &len_be, sizeof(len_be));
  157|  14.9k|        n = 4;
  158|  14.9k|    }
  159|      0|    else
  160|      0|    {
  161|      0|        b[1] |= 127;
  162|      0|        auto len_be = endian::native_to_big(
  163|      0|            static_cast<std::uint64_t>(fh.len));
  164|      0|        std::memcpy(&b[2], &len_be, sizeof(len_be));
  165|      0|        n = 10;
  166|      0|    }
  167|   336k|    if(fh.mask)
  ------------------
  |  Branch (167:8): [True: 0, False: 336k]
  ------------------
  168|      0|    {
  169|      0|        auto key_le = endian::native_to_little(
  170|      0|            static_cast<std::uint32_t>(fh.key));
  171|      0|        std::memcpy(&b[n], &key_le, sizeof(key_le));
  172|      0|        n += 4;
  173|      0|    }
  174|   336k|    db.commit(net::buffer_copy(
  175|   336k|        db.prepare(n), net::buffer(b)));
  176|   336k|}
_ZN5boost5beast9websocket6detail10is_controlENS2_6opcodeE:
   88|  2.89M|{
   89|  2.89M|    return op >= opcode::close;
   90|  2.89M|}
_ZN5boost5beast9websocket6detail9read_pingINS0_19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEEEEEvRNS_14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEEERKT_:
  184|   557k|{
  185|   557k|    BOOST_ASSERT(buffer_bytes(bs) <= data.max_size());
  ------------------
  |  |   66|   557k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  186|   557k|    data.resize(buffer_bytes(bs));
  187|   557k|    net::buffer_copy(net::mutable_buffer{
  188|   557k|        data.data(), data.size()}, bs);
  189|   557k|}
_ZN5boost5beast9websocket6detail10read_closeINS0_19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEEEEEvRNS1_12close_reasonERKT_RNS_6system10error_codeE:
  200|    138|{
  201|    138|    auto const n = buffer_bytes(bs);
  202|    138|    BOOST_ASSERT(n <= 125);
  ------------------
  |  |   66|    138|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  203|    138|    if(n == 0)
  ------------------
  |  Branch (203:8): [True: 10, False: 128]
  ------------------
  204|     10|    {
  205|     10|        cr = close_reason{};
  206|     10|        ec = {};
  207|     10|        return;
  208|     10|    }
  209|    128|    if(n == 1)
  ------------------
  |  Branch (209:8): [True: 4, False: 124]
  ------------------
  210|      4|    {
  211|       |        // invalid payload size == 1
  212|      4|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_close_size);
  ------------------
  |  |  111|      4|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      4|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      4|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      4|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      4|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  213|      4|        return;
  214|      4|    }
  215|       |
  216|    124|    std::uint16_t code_be;
  217|    124|    cr.reason.resize(n - 2);
  218|    124|    std::array<net::mutable_buffer, 2> out_bufs{{
  219|    124|        net::mutable_buffer(&code_be, sizeof(code_be)),
  220|    124|        net::mutable_buffer(&cr.reason[0], n - 2)}};
  221|       |
  222|    124|    net::buffer_copy(out_bufs, bs);
  223|       |
  224|    124|    cr.code = endian::big_to_native(code_be);
  225|    124|    if(! is_valid_close_code(cr.code))
  ------------------
  |  Branch (225:8): [True: 32, False: 92]
  ------------------
  226|     32|    {
  227|       |        // invalid close code
  228|     32|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_close_code);
  ------------------
  |  |  111|     32|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     32|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     32|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     32|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     32|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  229|     32|        return;
  230|     32|    }
  231|       |
  232|     92|    if(n > 2 && !check_utf8(
  ------------------
  |  Branch (232:8): [True: 64, False: 28]
  |  Branch (232:17): [True: 53, False: 11]
  ------------------
  233|     64|        cr.reason.data(), cr.reason.size()))
  234|     53|    {
  235|       |        // not valid utf-8
  236|     53|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_close_payload);
  ------------------
  |  |  111|     53|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     53|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     53|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     53|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     53|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  237|     53|        return;
  238|     53|    }
  239|     39|    ec = {};
  240|     39|}
_ZN5boost5beast9websocket6detail19is_valid_close_codeEt:
   95|    124|{
   96|    124|    switch(v)
  ------------------
  |  Branch (96:12): [True: 115, False: 9]
  ------------------
   97|    124|    {
   98|      1|    case close_code::normal:            // 1000
  ------------------
  |  Branch (98:5): [True: 1, False: 123]
  ------------------
   99|      2|    case close_code::going_away:        // 1001
  ------------------
  |  Branch (99:5): [True: 1, False: 123]
  ------------------
  100|      3|    case close_code::protocol_error:    // 1002
  ------------------
  |  Branch (100:5): [True: 1, False: 123]
  ------------------
  101|      4|    case close_code::unknown_data:      // 1003
  ------------------
  |  Branch (101:5): [True: 1, False: 123]
  ------------------
  102|      5|    case close_code::bad_payload:       // 1007
  ------------------
  |  Branch (102:5): [True: 1, False: 123]
  ------------------
  103|      6|    case close_code::policy_error:      // 1008
  ------------------
  |  Branch (103:5): [True: 1, False: 123]
  ------------------
  104|      7|    case close_code::too_big:           // 1009
  ------------------
  |  Branch (104:5): [True: 1, False: 123]
  ------------------
  105|      8|    case close_code::needs_extension:   // 1010
  ------------------
  |  Branch (105:5): [True: 1, False: 123]
  ------------------
  106|      8|    case close_code::internal_error:    // 1011
  ------------------
  |  Branch (106:5): [True: 0, False: 124]
  ------------------
  107|      8|    case close_code::service_restart:   // 1012
  ------------------
  |  Branch (107:5): [True: 0, False: 124]
  ------------------
  108|      9|    case close_code::try_again_later:   // 1013
  ------------------
  |  Branch (108:5): [True: 1, False: 123]
  ------------------
  109|      9|        return true;
  110|       |
  111|       |    // explicitly reserved
  112|      0|    case close_code::reserved1:         // 1004
  ------------------
  |  Branch (112:5): [True: 0, False: 124]
  ------------------
  113|      0|    case close_code::no_status:         // 1005
  ------------------
  |  Branch (113:5): [True: 0, False: 124]
  ------------------
  114|      0|    case close_code::abnormal:          // 1006
  ------------------
  |  Branch (114:5): [True: 0, False: 124]
  ------------------
  115|      0|    case close_code::reserved2:         // 1014
  ------------------
  |  Branch (115:5): [True: 0, False: 124]
  ------------------
  116|      0|    case close_code::reserved3:         // 1015
  ------------------
  |  Branch (116:5): [True: 0, False: 124]
  ------------------
  117|      0|        return false;
  118|    124|    }
  119|       |    // reserved
  120|    115|    if(v >= 1016 && v <= 2999)
  ------------------
  |  Branch (120:8): [True: 96, False: 19]
  |  Branch (120:21): [True: 13, False: 83]
  ------------------
  121|     13|        return false;
  122|       |    // not used
  123|    102|    if(v <= 999)
  ------------------
  |  Branch (123:8): [True: 19, False: 83]
  ------------------
  124|     19|        return false;
  125|     83|    return true;
  126|    102|}

_ZN5boost5beast9websocket6detail18make_sec_ws_acceptERNS_14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEEENS_4core17basic_string_viewIcEE:
   42|  4.64k|{
   43|  4.64k|    BOOST_ASSERT(key.size() <= sec_ws_key_type::static_capacity);
  ------------------
  |  |   66|  4.64k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   44|  4.64k|    using namespace beast::detail::string_literals;
   45|  4.64k|    auto const guid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"_sv;
   46|  4.64k|    beast::detail::sha1_context ctx;
   47|  4.64k|    beast::detail::init(ctx);
   48|  4.64k|    beast::detail::update(ctx, key.data(), key.size());
   49|  4.64k|    beast::detail::update(ctx, guid.data(), guid.size());
   50|  4.64k|    char digest[beast::detail::sha1_context::digest_size];
   51|  4.64k|    beast::detail::finish(ctx, &digest[0]);
   52|  4.64k|    accept.resize(accept.max_size());
   53|  4.64k|    accept.resize(beast::detail::base64::encode(
   54|  4.64k|        accept.data(), &digest[0], sizeof(digest)));
   55|  4.64k|}

_ZN5boost5beast9websocket6detail9impl_baseILb1EE14set_option_pmdERKNS1_18permessage_deflateE:
  215|  8.21k|    {
  216|  8.21k|        if( o.server_max_window_bits > 15 ||
  ------------------
  |  Branch (216:13): [True: 0, False: 8.21k]
  ------------------
  217|  8.21k|            o.server_max_window_bits < 9)
  ------------------
  |  Branch (217:13): [True: 0, False: 8.21k]
  ------------------
  218|      0|            BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  219|  8.21k|                "invalid server_max_window_bits"});
  220|  8.21k|        if( o.client_max_window_bits > 15 ||
  ------------------
  |  Branch (220:13): [True: 0, False: 8.21k]
  ------------------
  221|  8.21k|            o.client_max_window_bits < 9)
  ------------------
  |  Branch (221:13): [True: 0, False: 8.21k]
  ------------------
  222|      0|            BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  223|  8.21k|                "invalid client_max_window_bits"});
  224|  8.21k|        if( o.compLevel < 0 ||
  ------------------
  |  Branch (224:13): [True: 0, False: 8.21k]
  ------------------
  225|  8.21k|            o.compLevel > 9)
  ------------------
  |  Branch (225:13): [True: 0, False: 8.21k]
  ------------------
  226|      0|            BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  227|  8.21k|                "invalid compLevel"});
  228|  8.21k|        if( o.memLevel < 1 ||
  ------------------
  |  Branch (228:13): [True: 0, False: 8.21k]
  ------------------
  229|  8.21k|            o.memLevel > 9)
  ------------------
  |  Branch (229:13): [True: 0, False: 8.21k]
  ------------------
  230|      0|            BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  231|  8.21k|                "invalid memLevel"});
  232|  8.21k|        pmd_opts_ = o;
  233|  8.21k|    }
_ZN5boost5beast9websocket6detail9impl_baseILb1EE13do_pmd_configINSt3__19allocatorIcEEEEvRKNS0_4http12basic_fieldsIT_EE:
  209|  4.64k|    {
  210|  4.64k|        detail::pmd_read(pmd_config_, h);
  211|  4.64k|    }
_ZN5boost5beast9websocket6detail9impl_baseILb1EE8open_pmdENS0_9role_typeE:
  263|  4.64k|    {
  264|  4.64k|        if(((role == role_type::client &&
  ------------------
  |  Branch (264:14): [True: 0, False: 4.64k]
  ------------------
  265|  4.64k|                pmd_opts_.client_enable) ||
  ------------------
  |  Branch (265:17): [True: 0, False: 0]
  ------------------
  266|  4.64k|            (role == role_type::server &&
  ------------------
  |  Branch (266:14): [True: 4.64k, False: 0]
  ------------------
  267|  4.64k|                pmd_opts_.server_enable)) &&
  ------------------
  |  Branch (267:17): [True: 3.37k, False: 1.26k]
  ------------------
  268|  4.64k|            pmd_config_.accept)
  ------------------
  |  Branch (268:13): [True: 2.56k, False: 808]
  ------------------
  269|  2.56k|        {
  270|  2.56k|            detail::pmd_normalize(pmd_config_);
  271|  2.56k|            pmd_.reset(::new pmd_type);
  272|  2.56k|            if(role == role_type::client)
  ------------------
  |  Branch (272:16): [True: 0, False: 2.56k]
  ------------------
  273|      0|            {
  274|      0|                pmd_->zi.reset(
  275|      0|                    pmd_config_.server_max_window_bits);
  276|      0|                pmd_->zo.reset(
  277|      0|                    pmd_opts_.compLevel,
  278|      0|                    pmd_config_.client_max_window_bits,
  279|      0|                    pmd_opts_.memLevel,
  280|      0|                    zlib::Strategy::normal);
  281|      0|            }
  282|  2.56k|            else
  283|  2.56k|            {
  284|  2.56k|                pmd_->zi.reset(
  285|  2.56k|                    pmd_config_.client_max_window_bits);
  286|  2.56k|                pmd_->zo.reset(
  287|  2.56k|                    pmd_opts_.compLevel,
  288|  2.56k|                    pmd_config_.server_max_window_bits,
  289|  2.56k|                    pmd_opts_.memLevel,
  290|  2.56k|                    zlib::Strategy::normal);
  291|  2.56k|            }
  292|  2.56k|        }
  293|  4.64k|    }
_ZNK5boost5beast9websocket6detail9impl_baseILb1EE18read_size_hint_pmdEmbmmRKNS2_12frame_headerE:
  317|   717k|    {
  318|   717k|        using beast::detail::clamp;
  319|   717k|        std::size_t result;
  320|   717k|        BOOST_ASSERT(initial_size > 0);
  ------------------
  |  |   66|   717k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  321|   717k|        if(! pmd_ || (! rd_done && ! pmd_->rd_set))
  ------------------
  |  Branch (321:12): [True: 357k, False: 359k]
  |  Branch (321:23): [True: 357k, False: 2.56k]
  |  Branch (321:36): [True: 14.3k, False: 342k]
  ------------------
  322|   372k|        {
  323|       |            // current message is uncompressed
  324|       |
  325|   372k|            if(rd_done)
  ------------------
  |  Branch (325:16): [True: 2.07k, False: 369k]
  ------------------
  326|  2.07k|            {
  327|       |                // first message frame
  328|  2.07k|                result = initial_size;
  329|  2.07k|                goto done;
  330|  2.07k|            }
  331|   369k|            else if(rd_fh.fin)
  ------------------
  |  Branch (331:21): [True: 399, False: 369k]
  ------------------
  332|    399|            {
  333|       |                // last message frame
  334|    399|                BOOST_ASSERT(rd_remain > 0);
  ------------------
  |  |   66|    399|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  335|    399|                result = clamp(rd_remain);
  336|    399|                goto done;
  337|    399|            }
  338|   372k|        }
  339|   715k|        result = (std::max)(
  340|   715k|            initial_size, clamp(rd_remain));
  341|   717k|    done:
  342|   717k|        BOOST_ASSERT(result != 0);
  ------------------
  |  |   66|   717k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  343|       |        // Ensure offered size does not exceed rd_msg_max
  344|   717k|        if(rd_msg_max)
  ------------------
  |  Branch (344:12): [True: 717k, False: 0]
  ------------------
  345|   717k|            result = clamp(result, rd_msg_max);
  346|   717k|        return result;
  347|   717k|    }
_ZN5boost5beast9websocket6detail9impl_baseILb1EE11rd_deflatedEb:
   69|  3.92k|    {
   70|  3.92k|        if(pmd_)
  ------------------
  |  Branch (70:12): [True: 2.54k, False: 1.38k]
  ------------------
   71|  2.54k|        {
   72|  2.54k|            pmd_->rd_set = rsv1;
   73|  2.54k|            return true;
   74|  2.54k|        }
   75|  1.38k|        return ! rsv1; // pmd not negotiated
   76|  3.92k|    }
_ZN5boost5beast9websocket6detail9impl_baseILb1EE9close_pmdEv:
  296|    905|    {
  297|    905|        pmd_.reset();
  298|    905|    }
_ZNK5boost5beast9websocket6detail9impl_baseILb1EE11rd_deflatedEv:
   61|  1.12M|    {
   62|  1.12M|        return pmd_ && pmd_->rd_set;
  ------------------
  |  Branch (62:16): [True: 412k, False: 709k]
  |  Branch (62:24): [True: 384k, False: 28.4k]
  ------------------
   63|  1.12M|    }
_ZN5boost5beast9websocket6detail9impl_baseILb1EE7inflateERNS0_4zlib8z_paramsENS5_5FlushERNS_6system10error_codeE:
  171|  65.0M|    {
  172|  65.0M|        pmd_->zi.write(zs, flush, ec);
  173|  65.0M|    }
_ZN5boost5beast9websocket6detail9impl_baseILb1EE24do_context_takeover_readENS0_9role_typeE:
  177|    974|    {
  178|    974|        if((role == role_type::client &&
  ------------------
  |  Branch (178:13): [True: 0, False: 974]
  ------------------
  179|    974|                pmd_config_.server_no_context_takeover) ||
  ------------------
  |  Branch (179:17): [True: 0, False: 0]
  ------------------
  180|    974|           (role == role_type::server &&
  ------------------
  |  Branch (180:13): [True: 974, False: 0]
  ------------------
  181|    974|                pmd_config_.client_no_context_takeover))
  ------------------
  |  Branch (181:17): [True: 0, False: 974]
  ------------------
  182|      0|        {
  183|      0|            pmd_->zi.clear();
  184|      0|        }
  185|    974|    }
_ZNK5boost5beast9websocket6detail9impl_baseILb1EE11pmd_enabledEv:
  301|  2.48k|    {
  302|  2.48k|        return pmd_ != nullptr;
  303|  2.48k|    }
_ZNK5boost5beast9websocket6detail9impl_baseILb1EE15should_compressEm:
  306|  1.13k|    {
  307|  1.13k|        return n_bytes >= pmd_opts_.msg_size_threshold;
  308|  1.13k|    }
_ZN5boost5beast9websocket6detail9impl_baseILb1EE7deflateINS_4asio14mutable_bufferEEEbRS7_RNS0_14buffers_suffixIT_EEbRmRNS_6system10error_codeE:
   89|  13.3k|    {
   90|  13.3k|        BOOST_ASSERT(out.size() >= 6);
  ------------------
  |  |   66|  13.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   91|  13.3k|        auto& zo = this->pmd_->zo;
   92|  13.3k|        zlib::z_params zs;
   93|  13.3k|        zs.avail_in = 0;
   94|  13.3k|        zs.next_in = nullptr;
   95|  13.3k|        zs.avail_out = out.size();
   96|  13.3k|        zs.next_out = out.data();
   97|  13.3k|        for(auto in : beast::buffers_range_ref(cb))
  ------------------
  |  Branch (97:21): [True: 12.5k, False: 1.79k]
  ------------------
   98|  12.5k|        {
   99|  12.5k|            zs.avail_in = in.size();
  100|  12.5k|            if(zs.avail_in == 0)
  ------------------
  |  Branch (100:16): [True: 34, False: 12.4k]
  ------------------
  101|     34|                continue;
  102|  12.4k|            zs.next_in = in.data();
  103|  12.4k|            zo.write(zs, zlib::Flush::none, ec);
  104|  12.4k|            if(ec)
  ------------------
  |  Branch (104:16): [True: 0, False: 12.4k]
  ------------------
  105|      0|            {
  106|      0|                if(ec != zlib::error::need_buffers)
  ------------------
  |  Branch (106:20): [True: 0, False: 0]
  ------------------
  107|      0|                    return false;
  108|      0|                BOOST_ASSERT(zs.avail_out == 0);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  109|      0|                BOOST_ASSERT(zs.total_out == out.size());
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  110|      0|                ec = {};
  111|      0|                break;
  112|      0|            }
  113|  12.4k|            if(zs.avail_out == 0)
  ------------------
  |  Branch (113:16): [True: 11.5k, False: 949]
  ------------------
  114|  11.5k|            {
  115|  11.5k|                BOOST_ASSERT(zs.total_out == out.size());
  ------------------
  |  |   66|  11.5k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  116|  11.5k|                break;
  117|  11.5k|            }
  118|    949|            BOOST_ASSERT(zs.avail_in == 0);
  ------------------
  |  |   66|    949|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  119|    949|        }
  120|  13.3k|        total_in = zs.total_in;
  121|  13.3k|        cb.consume(zs.total_in);
  122|  13.3k|        if(zs.avail_out > 0 && fin)
  ------------------
  |  Branch (122:12): [True: 1.79k, False: 11.5k]
  |  Branch (122:32): [True: 1.79k, False: 0]
  ------------------
  123|  1.79k|        {
  124|  1.79k|            auto const remain = buffer_bytes(cb);
  125|  1.79k|            if(remain == 0)
  ------------------
  |  Branch (125:16): [True: 1.79k, False: 0]
  ------------------
  126|  1.79k|            {
  127|       |                // Inspired by Mark Adler
  128|       |                // https://github.com/madler/zlib/issues/149
  129|       |                //
  130|       |                // VFALCO We could do this flush twice depending
  131|       |                //        on how much space is in the output.
  132|  1.79k|                zo.write(zs, zlib::Flush::block, ec);
  133|  1.79k|                BOOST_ASSERT(! ec || ec == zlib::error::need_buffers);
  ------------------
  |  |   66|  1.79k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  134|  1.79k|                if(ec == zlib::error::need_buffers)
  ------------------
  |  Branch (134:20): [True: 8, False: 1.78k]
  ------------------
  135|      8|                    ec = {};
  136|  1.79k|                if(ec)
  ------------------
  |  Branch (136:20): [True: 0, False: 1.79k]
  ------------------
  137|      0|                    return false;
  138|  1.79k|                if(zs.avail_out >= 6)
  ------------------
  |  Branch (138:20): [True: 1.13k, False: 653]
  ------------------
  139|  1.13k|                {
  140|  1.13k|                    zo.write(zs, zlib::Flush::sync, ec);
  141|  1.13k|                    BOOST_ASSERT(! ec);
  ------------------
  |  |   66|  1.13k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  142|       |                    // remove flush marker
  143|  1.13k|                    zs.total_out -= 4;
  144|  1.13k|                    out = net::buffer(out.data(), zs.total_out);
  145|  1.13k|                    return false;
  146|  1.13k|                }
  147|  1.79k|            }
  148|  1.79k|        }
  149|  12.1k|        ec = {};
  150|  12.1k|        out = net::buffer(out.data(), zs.total_out);
  151|  12.1k|        return true;
  152|  13.3k|    }
_ZN5boost5beast9websocket6detail9impl_baseILb1EE25do_context_takeover_writeENS0_9role_typeE:
  156|  1.13k|    {
  157|  1.13k|        if((role == role_type::client &&
  ------------------
  |  Branch (157:13): [True: 0, False: 1.13k]
  ------------------
  158|  1.13k|            this->pmd_config_.client_no_context_takeover) ||
  ------------------
  |  Branch (158:13): [True: 0, False: 0]
  ------------------
  159|  1.13k|           (role == role_type::server &&
  ------------------
  |  Branch (159:13): [True: 1.13k, False: 0]
  ------------------
  160|  1.13k|            this->pmd_config_.server_no_context_takeover))
  ------------------
  |  Branch (160:13): [True: 0, False: 1.13k]
  ------------------
  161|      0|        {
  162|      0|            this->pmd_->zo.reset();
  163|      0|        }
  164|  1.13k|    }

_ZN5boost5beast9websocket6detail12mask_inplaceINS0_19buffers_prefix_viewINS0_6detail12buffers_pairILb1EEEEEEEvRKT_RNSt3__15arrayIhLm4EEE:
   46|   969k|{
   47|   969k|    for(net::mutable_buffer b :
  ------------------
  |  Branch (47:31): [True: 971k, False: 969k]
  ------------------
   48|   969k|            beast::buffers_range_ref(buffers))
   49|   971k|        detail::mask_inplace(b, key);
   50|   969k|}
_ZN5boost5beast9websocket6detail12mask_inplaceINS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEEEvRKT_RNSt3__15arrayIhLm4EEE:
   46|  2.64k|{
   47|  2.64k|    for(net::mutable_buffer b :
  ------------------
  |  Branch (47:31): [True: 2.64k, False: 2.64k]
  ------------------
   48|  2.64k|            beast::buffers_range_ref(buffers))
   49|  2.64k|        detail::mask_inplace(b, key);
   50|  2.64k|}

_ZN5boost5beast9websocket6detail11prepare_keyERNSt3__15arrayIhLm4EEEj:
   22|   963k|{
   23|   963k|    prepared[0] = (key >>  0) & 0xff;
   24|   963k|    prepared[1] = (key >>  8) & 0xff;
   25|   963k|    prepared[2] = (key >> 16) & 0xff;
   26|   963k|    prepared[3] = (key >> 24) & 0xff;
   27|   963k|}
_ZN5boost5beast9websocket6detail12mask_inplaceERKNS_4asio14mutable_bufferERNSt3__15arrayIhLm4EEE:
   42|   974k|{
   43|   974k|    auto n = b.size();
   44|   974k|    auto const mask = key; // avoid aliasing
   45|   974k|    auto p = static_cast<unsigned char*>(b.data());
   46|  11.2M|    while(n >= 4)
  ------------------
  |  Branch (46:11): [True: 10.2M, False: 974k]
  ------------------
   47|  10.2M|    {
   48|  51.3M|        for(int i = 0; i < 4; ++i)
  ------------------
  |  Branch (48:24): [True: 41.0M, False: 10.2M]
  ------------------
   49|  41.0M|            p[i] ^= mask[i];
   50|  10.2M|        p += 4;
   51|  10.2M|        n -= 4;
   52|  10.2M|    }
   53|   974k|    if(n > 0)
  ------------------
  |  Branch (53:8): [True: 936k, False: 37.8k]
  ------------------
   54|   936k|    {
   55|  2.42M|        for(std::size_t i = 0; i < n; ++i)
  ------------------
  |  Branch (55:32): [True: 1.49M, False: 936k]
  ------------------
   56|  1.49M|            p[i] ^= mask[i];
   57|   936k|        rol(key, n);
   58|   936k|    }
   59|   974k|}
_ZN5boost5beast9websocket6detail3rolERNSt3__15arrayIhLm4EEEm:
   32|   936k|{
   33|   936k|    auto v0 = v;
   34|  4.68M|    for(std::size_t i = 0; i < v.size(); ++i )
  ------------------
  |  Branch (34:28): [True: 3.74M, False: 936k]
  ------------------
   35|  3.74M|        v[i] = v0[(i + n) % v.size()];
   36|   936k|}

_ZN5boost5beast9websocket6detail8pmd_readINSt3__19allocatorIcEEEEvRNS2_9pmd_offerERKNS0_4http12basic_fieldsIT_EE:
   71|  9.28k|{
   72|  9.28k|    http::ext_list list{
   73|  9.28k|        fields["Sec-WebSocket-Extensions"]};
   74|  9.28k|    detail::pmd_read_impl(offer, list);
   75|  9.28k|}
_ZN5boost5beast9websocket6detail13pmd_negotiateINSt3__19allocatorIcEEEEvRNS0_4http12basic_fieldsIT_EERNS2_9pmd_offerERKSC_RKNS1_18permessage_deflateE:
   97|  4.64k|{
   98|  4.64k|    if(! (offer.accept && o.server_enable))
  ------------------
  |  Branch (98:11): [True: 2.66k, False: 1.97k]
  |  Branch (98:27): [True: 2.56k, False: 98]
  ------------------
   99|  2.07k|    {
  100|  2.07k|        config.accept = false;
  101|  2.07k|        return;
  102|  2.07k|    }
  103|  2.56k|    config.accept = true;
  104|       |
  105|  2.56k|    auto s = detail::pmd_negotiate_impl(config, offer, o);
  106|  2.56k|    if(config.accept)
  ------------------
  |  Branch (106:8): [True: 2.56k, False: 0]
  ------------------
  107|  2.56k|        fields.set(http::field::sec_websocket_extensions, to_string_view(s));
  108|  2.56k|}

_ZN5boost5beast9websocket6detail13pmd_read_implERNS2_9pmd_offerERKNS0_4http8ext_listE:
   46|  9.28k|{
   47|  9.28k|    offer.accept = false;
   48|  9.28k|    offer.server_max_window_bits= 0;
   49|  9.28k|    offer.client_max_window_bits = 0;
   50|  9.28k|    offer.server_no_context_takeover = false;
   51|  9.28k|    offer.client_no_context_takeover = false;
   52|       |
   53|  9.28k|    for(auto const& ext : list)
  ------------------
  |  Branch (53:25): [True: 6.38k, False: 3.93k]
  ------------------
   54|  6.38k|    {
   55|  6.38k|        if(beast::iequals(ext.first, "permessage-deflate"))
  ------------------
  |  Branch (55:12): [True: 5.35k, False: 1.03k]
  ------------------
   56|  5.35k|        {
   57|  5.35k|            for(auto const& param : ext.second)
  ------------------
  |  Branch (57:35): [True: 121, False: 5.23k]
  ------------------
   58|    121|            {
   59|    121|                if(beast::iequals(param.first,
  ------------------
  |  Branch (59:20): [True: 0, False: 121]
  ------------------
   60|    121|                    "server_max_window_bits"))
   61|      0|                {
   62|      0|                    if(offer.server_max_window_bits != 0)
  ------------------
  |  Branch (62:24): [True: 0, False: 0]
  ------------------
   63|      0|                    {
   64|       |                        // The negotiation offer contains multiple
   65|       |                        // extension parameters with the same name.
   66|       |                        //
   67|      0|                        return; // MUST decline
   68|      0|                    }
   69|      0|                    if(param.second.empty())
  ------------------
  |  Branch (69:24): [True: 0, False: 0]
  ------------------
   70|      0|                    {
   71|       |                        // The negotiation offer extension
   72|       |                        // parameter is missing the value.
   73|       |                        //
   74|      0|                        return; // MUST decline
   75|      0|                    }
   76|      0|                    offer.server_max_window_bits =
   77|      0|                        parse_bits(param.second);
   78|      0|                    if( offer.server_max_window_bits < 8 ||
  ------------------
  |  Branch (78:25): [True: 0, False: 0]
  ------------------
   79|      0|                        offer.server_max_window_bits > 15)
  ------------------
  |  Branch (79:25): [True: 0, False: 0]
  ------------------
   80|      0|                    {
   81|       |                        // The negotiation offer contains an
   82|       |                        // extension parameter with an invalid value.
   83|       |                        //
   84|      0|                        return; // MUST decline
   85|      0|                    }
   86|      0|                }
   87|    121|                else if(beast::iequals(param.first,
  ------------------
  |  Branch (87:25): [True: 0, False: 121]
  ------------------
   88|    121|                    "client_max_window_bits"))
   89|      0|                {
   90|      0|                    if(offer.client_max_window_bits != 0)
  ------------------
  |  Branch (90:24): [True: 0, False: 0]
  ------------------
   91|      0|                    {
   92|       |                        // The negotiation offer contains multiple
   93|       |                        // extension parameters with the same name.
   94|       |                        //
   95|      0|                        return; // MUST decline
   96|      0|                    }
   97|      0|                    if(! param.second.empty())
  ------------------
  |  Branch (97:24): [True: 0, False: 0]
  ------------------
   98|      0|                    {
   99|      0|                        offer.client_max_window_bits =
  100|      0|                            parse_bits(param.second);
  101|      0|                        if( offer.client_max_window_bits < 8 ||
  ------------------
  |  Branch (101:29): [True: 0, False: 0]
  ------------------
  102|      0|                            offer.client_max_window_bits > 15)
  ------------------
  |  Branch (102:29): [True: 0, False: 0]
  ------------------
  103|      0|                        {
  104|       |                            // The negotiation offer contains an
  105|       |                            // extension parameter with an invalid value.
  106|       |                            //
  107|      0|                            return; // MUST decline
  108|      0|                        }
  109|      0|                    }
  110|      0|                    else
  111|      0|                    {
  112|      0|                        offer.client_max_window_bits = -1;
  113|      0|                    }
  114|      0|                }
  115|    121|                else if(beast::iequals(param.first,
  ------------------
  |  Branch (115:25): [True: 0, False: 121]
  ------------------
  116|    121|                    "server_no_context_takeover"))
  117|      0|                {
  118|      0|                    if(offer.server_no_context_takeover)
  ------------------
  |  Branch (118:24): [True: 0, False: 0]
  ------------------
  119|      0|                    {
  120|       |                        // The negotiation offer contains multiple
  121|       |                        // extension parameters with the same name.
  122|       |                        //
  123|      0|                        return; // MUST decline
  124|      0|                    }
  125|      0|                    if(! param.second.empty())
  ------------------
  |  Branch (125:24): [True: 0, False: 0]
  ------------------
  126|      0|                    {
  127|       |                        // The negotiation offer contains an
  128|       |                        // extension parameter with an invalid value.
  129|       |                        //
  130|      0|                        return; // MUST decline
  131|      0|                    }
  132|      0|                    offer.server_no_context_takeover = true;
  133|      0|                }
  134|    121|                else if(beast::iequals(param.first,
  ------------------
  |  Branch (134:25): [True: 0, False: 121]
  ------------------
  135|    121|                    "client_no_context_takeover"))
  136|      0|                {
  137|      0|                    if(offer.client_no_context_takeover)
  ------------------
  |  Branch (137:24): [True: 0, False: 0]
  ------------------
  138|      0|                    {
  139|       |                        // The negotiation offer contains multiple
  140|       |                        // extension parameters with the same name.
  141|       |                        //
  142|      0|                        return; // MUST decline
  143|      0|                    }
  144|      0|                    if(! param.second.empty())
  ------------------
  |  Branch (144:24): [True: 0, False: 0]
  ------------------
  145|      0|                    {
  146|       |                        // The negotiation offer contains an
  147|       |                        // extension parameter with an invalid value.
  148|       |                        //
  149|      0|                        return; // MUST decline
  150|      0|                    }
  151|      0|                    offer.client_no_context_takeover = true;
  152|      0|                }
  153|    121|                else
  154|    121|                {
  155|       |                    // The negotiation offer contains an extension
  156|       |                    // parameter not defined for use in an offer.
  157|       |                    //
  158|    121|                    return; // MUST decline
  159|    121|                }
  160|    121|            }
  161|  5.23k|            offer.accept = true;
  162|  5.23k|            return;
  163|  5.35k|        }
  164|  6.38k|    }
  165|  9.28k|}
_ZN5boost5beast9websocket6detail18pmd_negotiate_implERNS2_9pmd_offerERKS3_RKNS1_18permessage_deflateE:
  214|  2.56k|{
  215|  2.56k|    static_string<512> s = "permessage-deflate";
  216|       |
  217|  2.56k|    config.server_no_context_takeover =
  218|  2.56k|        offer.server_no_context_takeover ||
  ------------------
  |  Branch (218:9): [True: 0, False: 2.56k]
  ------------------
  219|  2.56k|            o.server_no_context_takeover;
  ------------------
  |  Branch (219:13): [True: 0, False: 2.56k]
  ------------------
  220|  2.56k|    if(config.server_no_context_takeover)
  ------------------
  |  Branch (220:8): [True: 0, False: 2.56k]
  ------------------
  221|      0|        s += "; server_no_context_takeover";
  222|       |
  223|  2.56k|    config.client_no_context_takeover =
  224|  2.56k|        o.client_no_context_takeover ||
  ------------------
  |  Branch (224:9): [True: 0, False: 2.56k]
  ------------------
  225|  2.56k|            offer.client_no_context_takeover;
  ------------------
  |  Branch (225:13): [True: 0, False: 2.56k]
  ------------------
  226|  2.56k|    if(config.client_no_context_takeover)
  ------------------
  |  Branch (226:8): [True: 0, False: 2.56k]
  ------------------
  227|      0|        s += "; client_no_context_takeover";
  228|       |
  229|  2.56k|    if(offer.server_max_window_bits != 0)
  ------------------
  |  Branch (229:8): [True: 0, False: 2.56k]
  ------------------
  230|      0|        config.server_max_window_bits = (std::min)(
  231|      0|            offer.server_max_window_bits,
  232|      0|                o.server_max_window_bits);
  233|  2.56k|    else
  234|  2.56k|        config.server_max_window_bits =
  235|  2.56k|            o.server_max_window_bits;
  236|  2.56k|    if(config.server_max_window_bits < 15)
  ------------------
  |  Branch (236:8): [True: 0, False: 2.56k]
  ------------------
  237|      0|    {
  238|       |        // ZLib's deflateInit silently treats 8 as
  239|       |        // 9 due to a bug, so prevent 8 from being used.
  240|       |        //
  241|      0|        if(config.server_max_window_bits < 9)
  ------------------
  |  Branch (241:12): [True: 0, False: 0]
  ------------------
  242|      0|            config.server_max_window_bits = 9;
  243|       |
  244|      0|        s += "; server_max_window_bits=";
  245|      0|        s += to_static_string(
  246|      0|            config.server_max_window_bits);
  247|      0|    }
  248|       |
  249|  2.56k|    switch(offer.client_max_window_bits)
  250|  2.56k|    {
  251|      0|    case -1:
  ------------------
  |  Branch (251:5): [True: 0, False: 2.56k]
  ------------------
  252|       |        // extension parameter is present with no value
  253|      0|        config.client_max_window_bits =
  254|      0|            o.client_max_window_bits;
  255|      0|        if(config.client_max_window_bits < 15)
  ------------------
  |  Branch (255:12): [True: 0, False: 0]
  ------------------
  256|      0|        {
  257|      0|            s += "; client_max_window_bits=";
  258|      0|            s += to_static_string(
  259|      0|                config.client_max_window_bits);
  260|      0|        }
  261|      0|        break;
  262|       |
  263|  2.56k|    case 0:
  ------------------
  |  Branch (263:5): [True: 2.56k, False: 0]
  ------------------
  264|       |        /*  extension parameter is absent.
  265|       |
  266|       |            If a received extension negotiation offer doesn't have the
  267|       |            "client_max_window_bits" extension parameter, the corresponding
  268|       |            extension negotiation response to the offer MUST NOT include the
  269|       |            "client_max_window_bits" extension parameter.
  270|       |        */
  271|  2.56k|        if(o.client_max_window_bits == 15)
  ------------------
  |  Branch (271:12): [True: 2.56k, False: 0]
  ------------------
  272|  2.56k|            config.client_max_window_bits = 15;
  273|      0|        else
  274|      0|            config.accept = false;
  275|  2.56k|        break;
  276|       |
  277|      0|    default:
  ------------------
  |  Branch (277:5): [True: 0, False: 2.56k]
  ------------------
  278|       |        // extension parameter has value in [8..15]
  279|      0|        config.client_max_window_bits = (std::min)(
  280|      0|            o.client_max_window_bits,
  281|      0|                offer.client_max_window_bits);
  282|      0|        s += "; client_max_window_bits=";
  283|      0|        s += to_static_string(
  284|      0|            config.client_max_window_bits);
  285|      0|        break;
  286|  2.56k|    }
  287|       |
  288|  2.56k|    return s;
  289|  2.56k|}
_ZN5boost5beast9websocket6detail13pmd_normalizeERNS2_9pmd_offerE:
  293|  2.56k|{
  294|  2.56k|    if(offer.accept)
  ------------------
  |  Branch (294:8): [True: 2.56k, False: 0]
  ------------------
  295|  2.56k|    {
  296|  2.56k|        if( offer.server_max_window_bits == 0)
  ------------------
  |  Branch (296:13): [True: 2.56k, False: 0]
  ------------------
  297|  2.56k|            offer.server_max_window_bits = 15;
  298|       |
  299|  2.56k|        if( offer.client_max_window_bits ==  0 ||
  ------------------
  |  Branch (299:13): [True: 2.56k, False: 0]
  ------------------
  300|  2.56k|            offer.client_max_window_bits == -1)
  ------------------
  |  Branch (300:13): [True: 0, False: 0]
  ------------------
  301|  2.56k|            offer.client_max_window_bits = 15;
  302|  2.56k|    }
  303|  2.56k|}

_ZN5boost5beast9websocket6detail7serviceC2ERNS_4asio17execution_contextE:
   64|  8.21k|        : beast::detail::service_base<service>(ctx)
   65|  8.21k|    {
   66|  8.21k|    }
_ZN5boost5beast9websocket6detail7service9impl_typeD2Ev:
   37|  8.21k|        virtual ~impl_type() = default;

_ZN5boost5beast9websocket6detail7service9impl_typeC2ERNS_4asio17execution_contextE:
   23|  8.21k|    : svc_(net::use_service<service>(ctx))
   24|  8.21k|{
   25|  8.21k|    std::lock_guard<std::mutex> g(svc_.m_);
   26|  8.21k|    index_ = svc_.v_.size();
   27|  8.21k|    svc_.v_.push_back(this);
   28|  8.21k|}
_ZN5boost5beast9websocket6detail7service8shutdownEv:
   47|  16.4k|{
   48|  16.4k|    std::vector<boost::weak_ptr<impl_type>> v;
   49|  16.4k|    {
   50|  16.4k|        std::lock_guard<std::mutex> g(m_);
   51|  16.4k|        v.reserve(v_.size());
   52|  16.4k|        for(auto p : v_)
  ------------------
  |  Branch (52:20): [True: 0, False: 16.4k]
  ------------------
   53|      0|            v.emplace_back(p->weak_from_this());
   54|  16.4k|    }
   55|  16.4k|    for(auto wp : v)
  ------------------
  |  Branch (55:17): [True: 0, False: 16.4k]
  ------------------
   56|      0|        if(auto sp = wp.lock())
  ------------------
  |  Branch (56:17): [True: 0, False: 0]
  ------------------
   57|      0|            sp->shutdown();
   58|  16.4k|}
_ZN5boost5beast9websocket6detail7service9impl_type6removeEv:
   34|  8.21k|{
   35|  8.21k|    std::lock_guard<std::mutex> g(svc_.m_);
   36|  8.21k|    auto& other = *svc_.v_.back();
   37|  8.21k|    other.index_ = index_;
   38|  8.21k|    svc_.v_[index_] = &other;
   39|  8.21k|    svc_.v_.pop_back();
   40|  8.21k|}

_ZN5boost5beast9websocket6detail10soft_mutexC2Ev:
   27|  16.4k|    soft_mutex() = default;
_ZN5boost5beast9websocket6detail10soft_mutex5resetEv:
   46|  25.7k|    {
   47|  25.7k|        id_ = 0;
   48|  25.7k|    }

_ZN5boost5beast9websocket6detail12utf8_checker5writeINS0_19buffers_prefix_viewINS_4asio14mutable_bufferEEEEEbRKT_:
   70|   245k|{
   71|   245k|    static_assert(
   72|   245k|        net::is_const_buffer_sequence<ConstBufferSequence>::value,
   73|   245k|        "ConstBufferSequence type requirements not met");
   74|   245k|    for(auto b : beast::buffers_range_ref(buffers))
  ------------------
  |  Branch (74:16): [True: 245k, False: 245k]
  ------------------
   75|   245k|        if(! write(static_cast<
  ------------------
  |  Branch (75:12): [True: 334, False: 245k]
  ------------------
   76|   245k|            std::uint8_t const*>(b.data()),
   77|   245k|                b.size()))
   78|    334|            return false;
   79|   245k|    return true;
   80|   245k|}

_ZN5boost5beast9websocket6detail10check_utf8EPKcm:
  319|     64|{
  320|     64|    utf8_checker c;
  321|     64|    if(! c.write(reinterpret_cast<const uint8_t*>(p), n))
  ------------------
  |  Branch (321:8): [True: 49, False: 15]
  ------------------
  322|     49|        return false;
  323|     15|    return c.finish();
  324|     64|}
_ZN5boost5beast9websocket6detail12utf8_checker5writeEPKhm:
   42|   245k|{
   43|   245k|    auto const valid =
   44|   245k|        [](std::uint8_t const*& p)
   45|   245k|        {
   46|   245k|            if(p[0] < 128)
   47|   245k|            {
   48|   245k|                ++p;
   49|   245k|                return true;
   50|   245k|            }
   51|   245k|            if((p[0] & 0xe0) == 0xc0)
   52|   245k|            {
   53|   245k|                if( (p[1] & 0xc0) != 0x80 ||
   54|   245k|                    (p[0] & 0x1e) == 0)  // overlong
   55|   245k|                    return false;
   56|   245k|                p += 2;
   57|   245k|                return true;
   58|   245k|            }
   59|   245k|            if((p[0] & 0xf0) == 0xe0)
   60|   245k|            {
   61|   245k|                if(    (p[1] & 0xc0) != 0x80
   62|   245k|                    || (p[2] & 0xc0) != 0x80
   63|   245k|                    || (p[0] == 0xe0 && (p[1] & 0x20) == 0) // overlong
   64|   245k|                    || (p[0] == 0xed && (p[1] & 0x20) == 0x20) // surrogate
   65|       |                    //|| (p[0] == 0xef && p[1] == 0xbf && (p[2] & 0xfe) == 0xbe) // U+FFFE or U+FFFF
   66|   245k|                    )
   67|   245k|                    return false;
   68|   245k|                p += 3;
   69|   245k|                return true;
   70|   245k|            }
   71|   245k|            if((p[0] & 0xf8) == 0xf0)
   72|   245k|            {
   73|   245k|                if(    (p[0] & 0x07) >= 0x05 // invalid F5...FF characters
   74|   245k|                    || (p[1] & 0xc0) != 0x80
   75|   245k|                    || (p[2] & 0xc0) != 0x80
   76|   245k|                    || (p[3] & 0xc0) != 0x80
   77|   245k|                    || (p[0] == 0xf0 && (p[1] & 0x30) == 0) // overlong
   78|   245k|                    || (p[0] == 0xf4 && p[1] > 0x8f) || p[0] > 0xf4 // > U+10FFFF
   79|   245k|                    )
   80|   245k|                    return false;
   81|   245k|                p += 4;
   82|   245k|                return true;
   83|   245k|            }
   84|   245k|            return false;
   85|   245k|        };
   86|   245k|    auto const fail_fast =
   87|   245k|        [&]()
   88|   245k|        {
   89|   245k|            if(cp_[0] < 128)
   90|   245k|            {
   91|   245k|                return false;
   92|   245k|            }
   93|       |
   94|   245k|            const auto& p = cp_; // alias, only to keep this code similar to valid() above
   95|   245k|            const auto known_only = p_ - cp_;
   96|   245k|            if (known_only == 1)
   97|   245k|            {
   98|   245k|                if((p[0] & 0xe0) == 0xc0)
   99|   245k|                {
  100|   245k|                    return ((p[0] & 0x1e) == 0);  // overlong
  101|   245k|                }
  102|   245k|                if((p[0] & 0xf0) == 0xe0)
  103|   245k|                {
  104|   245k|                    return false;
  105|   245k|                }
  106|   245k|                if((p[0] & 0xf8) == 0xf0)
  107|   245k|                {
  108|   245k|                    return ((p[0] & 0x07) >= 0x05);  // invalid F5...FF characters
  109|   245k|                }
  110|   245k|            }
  111|   245k|            else if (known_only == 2)
  112|   245k|            {
  113|   245k|                if((p[0] & 0xe0) == 0xc0)
  114|   245k|                {
  115|   245k|                    return ((p[1] & 0xc0) != 0x80 ||
  116|   245k|                            (p[0] & 0x1e) == 0);  // overlong
  117|   245k|                }
  118|   245k|                if((p[0] & 0xf0) == 0xe0)
  119|   245k|                {
  120|   245k|                    return (  (p[1] & 0xc0) != 0x80
  121|   245k|                           || (p[0] == 0xe0 && (p[1] & 0x20) == 0) // overlong
  122|   245k|                           || (p[0] == 0xed && (p[1] & 0x20) == 0x20)); // surrogate
  123|   245k|                }
  124|   245k|                if((p[0] & 0xf8) == 0xf0)
  125|   245k|                {
  126|   245k|                    return (  (p[0] & 0x07) >= 0x05 // invalid F5...FF characters
  127|   245k|                           || (p[1] & 0xc0) != 0x80
  128|   245k|                           || (p[0] == 0xf0 && (p[1] & 0x30) == 0) // overlong
  129|   245k|                           || (p[0] == 0xf4 && p[1] > 0x8f) || p[0] > 0xf4); // > U+10FFFF
  130|   245k|                }
  131|   245k|            }
  132|   245k|            else if (known_only == 3)
  133|   245k|            {
  134|   245k|                if((p[0] & 0xe0) == 0xc0)
  135|   245k|                {
  136|   245k|                    return (  (p[1] & 0xc0) != 0x80
  137|   245k|                           || (p[0] & 0x1e) == 0);  // overlong
  138|   245k|                }
  139|   245k|                if((p[0] & 0xf0) == 0xe0)
  140|   245k|                {
  141|   245k|                    return (  (p[1] & 0xc0) != 0x80
  142|   245k|                           || (p[2] & 0xc0) != 0x80
  143|   245k|                           || (p[0] == 0xe0 && (p[1] & 0x20) == 0) // overlong
  144|   245k|                           || (p[0] == 0xed && (p[1] & 0x20) == 0x20)); // surrogate
  145|       |                           //|| (p[0] == 0xef && p[1] == 0xbf && (p[2] & 0xfe) == 0xbe) // U+FFFE or U+FFFF
  146|   245k|                }
  147|   245k|                if((p[0] & 0xf8) == 0xf0)
  148|   245k|                {
  149|   245k|                    return (  (p[0] & 0x07) >= 0x05 // invalid F5...FF characters
  150|   245k|                           || (p[1] & 0xc0) != 0x80
  151|   245k|                           || (p[2] & 0xc0) != 0x80
  152|   245k|                           || (p[0] == 0xf0 && (p[1] & 0x30) == 0) // overlong
  153|   245k|                           || (p[0] == 0xf4 && p[1] > 0x8f) || p[0] > 0xf4); // > U+10FFFF
  154|   245k|                }
  155|   245k|            }
  156|   245k|            return true;
  157|   245k|        };
  158|   245k|    auto const needed =
  159|   245k|        [](std::uint8_t const v)
  160|   245k|        {
  161|   245k|            if(v < 128)
  162|   245k|                return 1;
  163|   245k|            if(v < 192)
  164|   245k|                return 0;
  165|   245k|            if(v < 224)
  166|   245k|                return 2;
  167|   245k|            if(v < 240)
  168|   245k|                return 3;
  169|   245k|            if(v < 248)
  170|   245k|                return 4;
  171|   245k|            return 0;
  172|   245k|        };
  173|       |
  174|   245k|    auto const end = in + size;
  175|       |
  176|       |    // Finish up any incomplete code point
  177|   245k|    if(need_ > 0)
  ------------------
  |  Branch (177:8): [True: 4.12k, False: 241k]
  ------------------
  178|  4.12k|    {
  179|       |        // Calculate what we have
  180|  4.12k|        auto n = (std::min)(size, need_);
  181|  4.12k|        size -= n;
  182|  4.12k|        need_ -= n;
  183|       |
  184|       |        // Add characters to the code point
  185|  11.7k|        while(n--)
  ------------------
  |  Branch (185:15): [True: 7.66k, False: 4.12k]
  ------------------
  186|  7.66k|            *p_++ = *in++;
  187|  4.12k|        BOOST_ASSERT(p_ <= cp_ + 4);
  ------------------
  |  |   66|  4.12k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  188|       |
  189|       |        // Still incomplete?
  190|  4.12k|        if(need_ > 0)
  ------------------
  |  Branch (190:12): [True: 147, False: 3.97k]
  ------------------
  191|    147|        {
  192|       |            // Incomplete code point
  193|    147|            BOOST_ASSERT(in == end);
  ------------------
  |  |   66|    147|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  194|       |
  195|       |            // Do partial validation on the incomplete
  196|       |            // code point, this is called "Fail fast"
  197|       |            // in Autobahn|Testsuite parlance.
  198|    147|            return ! fail_fast();
  199|    147|        }
  200|       |
  201|       |        // Complete code point, validate it
  202|  3.97k|        std::uint8_t const* p = &cp_[0];
  203|  3.97k|        if(! valid(p))
  ------------------
  |  Branch (203:12): [True: 31, False: 3.94k]
  ------------------
  204|     31|            return false;
  205|  3.94k|        p_ = cp_;
  206|  3.94k|    }
  207|       |
  208|   245k|    if(size <= sizeof(std::size_t))
  ------------------
  |  Branch (208:8): [True: 8.18k, False: 237k]
  ------------------
  209|  8.18k|        goto slow;
  210|       |
  211|       |    // Align `in` to sizeof(std::size_t) boundary
  212|   237k|    {
  213|   237k|        auto const in0 = in;
  214|   237k|        auto last = reinterpret_cast<std::uint8_t const*>(
  215|   237k|            ((reinterpret_cast<std::uintptr_t>(in) + sizeof(std::size_t) - 1) /
  216|   237k|                sizeof(std::size_t)) * sizeof(std::size_t));
  217|       |
  218|       |        // Check one character at a time for low-ASCII
  219|  1.03M|        while(in < last)
  ------------------
  |  Branch (219:15): [True: 804k, False: 234k]
  ------------------
  220|   804k|        {
  221|   804k|            if(*in & 0x80)
  ------------------
  |  Branch (221:16): [True: 2.71k, False: 802k]
  ------------------
  222|  2.71k|            {
  223|       |                // Not low-ASCII so switch to slow loop
  224|  2.71k|                size = size - (in - in0);
  225|  2.71k|                goto slow;
  226|  2.71k|            }
  227|   802k|            ++in;
  228|   802k|        }
  229|   234k|        size = size - (in - in0);
  230|   234k|    }
  231|       |
  232|       |    // Fast loop: Process 4 or 8 low-ASCII characters at a time
  233|      0|    {
  234|   234k|        auto const in0 = in;
  235|   234k|        auto last = in + size - 7;
  236|   234k|        auto constexpr mask = static_cast<
  237|   234k|            std::size_t>(0x8080808080808080 & ~std::size_t{0});
  238|   550k|        while(in < last)
  ------------------
  |  Branch (238:15): [True: 322k, False: 228k]
  ------------------
  239|   322k|        {
  240|       |#if 0
  241|       |            std::size_t temp;
  242|       |            std::memcpy(&temp, in, sizeof(temp));
  243|       |            if((temp & mask) != 0)
  244|       |#else
  245|       |            // Technically UB but works on all known platforms
  246|   322k|            if((*reinterpret_cast<std::size_t const*>(in) & mask) != 0)
  ------------------
  |  Branch (246:16): [True: 5.73k, False: 316k]
  ------------------
  247|  5.73k|#endif
  248|  5.73k|            {
  249|  5.73k|                size = size - (in - in0);
  250|  5.73k|                goto slow;
  251|  5.73k|            }
  252|   316k|            in += sizeof(std::size_t);
  253|   316k|        }
  254|       |        // There's at least one more full code point left
  255|   228k|        last += 4;
  256|   511k|        while(in < last)
  ------------------
  |  Branch (256:15): [True: 282k, False: 228k]
  ------------------
  257|   282k|            if(! valid(in))
  ------------------
  |  Branch (257:16): [True: 33, False: 282k]
  ------------------
  258|     33|                return false;
  259|   228k|        goto tail;
  260|   228k|    }
  261|       |
  262|   228k|slow:
  263|       |    // Slow loop: Full validation on one code point at a time
  264|  16.6k|    {
  265|  16.6k|        auto last = in + size - 3;
  266|  24.5M|        while(in < last)
  ------------------
  |  Branch (266:15): [True: 24.5M, False: 16.4k]
  ------------------
  267|  24.5M|            if(! valid(in))
  ------------------
  |  Branch (267:16): [True: 196, False: 24.5M]
  ------------------
  268|    196|                return false;
  269|  16.6k|    }
  270|       |
  271|   245k|tail:
  272|       |    // Handle the remaining bytes. The last
  273|       |    // characters could split a code point so
  274|       |    // we save the partial code point for later.
  275|       |    //
  276|       |    // On entry to the loop, `in` points to the
  277|       |    // beginning of a code point.
  278|       |    //
  279|   245k|    for(;;)
  280|   764k|    {
  281|       |        // Number of chars left
  282|   764k|        auto n = end - in;
  283|   764k|        if(! n)
  ------------------
  |  Branch (283:12): [True: 240k, False: 523k]
  ------------------
  284|   240k|            break;
  285|       |
  286|       |        // Chars we need to finish this code point
  287|   523k|        auto const need = needed(*in);
  288|   523k|        if(need == 0)
  ------------------
  |  Branch (288:12): [True: 56, False: 523k]
  ------------------
  289|     56|            return false;
  290|   523k|        if(need <= n)
  ------------------
  |  Branch (290:12): [True: 519k, False: 4.18k]
  ------------------
  291|   519k|        {
  292|       |            // Check a whole code point
  293|   519k|            if(! valid(in))
  ------------------
  |  Branch (293:16): [True: 20, False: 519k]
  ------------------
  294|     20|                return false;
  295|   519k|        }
  296|  4.18k|        else
  297|  4.18k|        {
  298|       |            // Calculate how many chars we need
  299|       |            // to finish this partial code point
  300|  4.18k|            need_ = need - n;
  301|       |
  302|       |            // Save the partial code point
  303|  10.2k|            while(n--)
  ------------------
  |  Branch (303:19): [True: 6.05k, False: 4.18k]
  ------------------
  304|  6.05k|                *p_++ = *in++;
  305|  4.18k|            BOOST_ASSERT(in == end);
  ------------------
  |  |   66|  4.18k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  306|  4.18k|            BOOST_ASSERT(p_ <= cp_ + 4);
  ------------------
  |  |   66|  4.18k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  307|       |
  308|       |            // Do partial validation on the incomplete
  309|       |            // code point, this is called "Fail fast"
  310|       |            // in Autobahn|Testsuite parlance.
  311|  4.18k|            return ! fail_fast();
  312|  4.18k|        }
  313|   523k|    }
  314|   240k|    return true;
  315|   245k|}
_ZZN5boost5beast9websocket6detail12utf8_checker5writeEPKhmENKUlvE_clEv:
   88|  4.32k|        {
   89|  4.32k|            if(cp_[0] < 128)
  ------------------
  |  Branch (89:16): [True: 0, False: 4.32k]
  ------------------
   90|      0|            {
   91|      0|                return false;
   92|      0|            }
   93|       |
   94|  4.32k|            const auto& p = cp_; // alias, only to keep this code similar to valid() above
   95|  4.32k|            const auto known_only = p_ - cp_;
   96|  4.32k|            if (known_only == 1)
  ------------------
  |  Branch (96:17): [True: 2.61k, False: 1.71k]
  ------------------
   97|  2.61k|            {
   98|  2.61k|                if((p[0] & 0xe0) == 0xc0)
  ------------------
  |  Branch (98:20): [True: 877, False: 1.74k]
  ------------------
   99|    877|                {
  100|    877|                    return ((p[0] & 0x1e) == 0);  // overlong
  101|    877|                }
  102|  1.74k|                if((p[0] & 0xf0) == 0xe0)
  ------------------
  |  Branch (102:20): [True: 303, False: 1.43k]
  ------------------
  103|    303|                {
  104|    303|                    return false;
  105|    303|                }
  106|  1.43k|                if((p[0] & 0xf8) == 0xf0)
  ------------------
  |  Branch (106:20): [True: 1.43k, False: 0]
  ------------------
  107|  1.43k|                {
  108|  1.43k|                    return ((p[0] & 0x07) >= 0x05);  // invalid F5...FF characters
  109|  1.43k|                }
  110|  1.43k|            }
  111|  1.71k|            else if (known_only == 2)
  ------------------
  |  Branch (111:22): [True: 1.31k, False: 399]
  ------------------
  112|  1.31k|            {
  113|  1.31k|                if((p[0] & 0xe0) == 0xc0)
  ------------------
  |  Branch (113:20): [True: 0, False: 1.31k]
  ------------------
  114|      0|                {
  115|      0|                    return ((p[1] & 0xc0) != 0x80 ||
  ------------------
  |  Branch (115:29): [True: 0, False: 0]
  ------------------
  116|      0|                            (p[0] & 0x1e) == 0);  // overlong
  ------------------
  |  Branch (116:29): [True: 0, False: 0]
  ------------------
  117|      0|                }
  118|  1.31k|                if((p[0] & 0xf0) == 0xe0)
  ------------------
  |  Branch (118:20): [True: 640, False: 672]
  ------------------
  119|    640|                {
  120|    640|                    return (  (p[1] & 0xc0) != 0x80
  ------------------
  |  Branch (120:31): [True: 9, False: 631]
  ------------------
  121|    640|                           || (p[0] == 0xe0 && (p[1] & 0x20) == 0) // overlong
  ------------------
  |  Branch (121:32): [True: 6, False: 625]
  |  Branch (121:48): [True: 2, False: 4]
  ------------------
  122|    640|                           || (p[0] == 0xed && (p[1] & 0x20) == 0x20)); // surrogate
  ------------------
  |  Branch (122:32): [True: 518, False: 111]
  |  Branch (122:48): [True: 2, False: 516]
  ------------------
  123|    640|                }
  124|    672|                if((p[0] & 0xf8) == 0xf0)
  ------------------
  |  Branch (124:20): [True: 672, False: 0]
  ------------------
  125|    672|                {
  126|    672|                    return (  (p[0] & 0x07) >= 0x05 // invalid F5...FF characters
  ------------------
  |  Branch (126:31): [True: 2, False: 670]
  ------------------
  127|    672|                           || (p[1] & 0xc0) != 0x80
  ------------------
  |  Branch (127:31): [True: 4, False: 666]
  ------------------
  128|    672|                           || (p[0] == 0xf0 && (p[1] & 0x30) == 0) // overlong
  ------------------
  |  Branch (128:32): [True: 123, False: 543]
  |  Branch (128:48): [True: 1, False: 122]
  ------------------
  129|    672|                           || (p[0] == 0xf4 && p[1] > 0x8f) || p[0] > 0xf4); // > U+10FFFF
  ------------------
  |  Branch (129:32): [True: 16, False: 649]
  |  Branch (129:48): [True: 1, False: 15]
  |  Branch (129:64): [True: 0, False: 664]
  ------------------
  130|    672|                }
  131|    672|            }
  132|    399|            else if (known_only == 3)
  ------------------
  |  Branch (132:22): [True: 399, False: 0]
  ------------------
  133|    399|            {
  134|    399|                if((p[0] & 0xe0) == 0xc0)
  ------------------
  |  Branch (134:20): [True: 0, False: 399]
  ------------------
  135|      0|                {
  136|      0|                    return (  (p[1] & 0xc0) != 0x80
  ------------------
  |  Branch (136:31): [True: 0, False: 0]
  ------------------
  137|      0|                           || (p[0] & 0x1e) == 0);  // overlong
  ------------------
  |  Branch (137:31): [True: 0, False: 0]
  ------------------
  138|      0|                }
  139|    399|                if((p[0] & 0xf0) == 0xe0)
  ------------------
  |  Branch (139:20): [True: 0, False: 399]
  ------------------
  140|      0|                {
  141|      0|                    return (  (p[1] & 0xc0) != 0x80
  ------------------
  |  Branch (141:31): [True: 0, False: 0]
  ------------------
  142|      0|                           || (p[2] & 0xc0) != 0x80
  ------------------
  |  Branch (142:31): [True: 0, False: 0]
  ------------------
  143|      0|                           || (p[0] == 0xe0 && (p[1] & 0x20) == 0) // overlong
  ------------------
  |  Branch (143:32): [True: 0, False: 0]
  |  Branch (143:48): [True: 0, False: 0]
  ------------------
  144|      0|                           || (p[0] == 0xed && (p[1] & 0x20) == 0x20)); // surrogate
  ------------------
  |  Branch (144:32): [True: 0, False: 0]
  |  Branch (144:48): [True: 0, False: 0]
  ------------------
  145|       |                           //|| (p[0] == 0xef && p[1] == 0xbf && (p[2] & 0xfe) == 0xbe) // U+FFFE or U+FFFF
  146|      0|                }
  147|    399|                if((p[0] & 0xf8) == 0xf0)
  ------------------
  |  Branch (147:20): [True: 399, False: 0]
  ------------------
  148|    399|                {
  149|    399|                    return (  (p[0] & 0x07) >= 0x05 // invalid F5...FF characters
  ------------------
  |  Branch (149:31): [True: 2, False: 397]
  ------------------
  150|    399|                           || (p[1] & 0xc0) != 0x80
  ------------------
  |  Branch (150:31): [True: 7, False: 390]
  ------------------
  151|    399|                           || (p[2] & 0xc0) != 0x80
  ------------------
  |  Branch (151:31): [True: 4, False: 386]
  ------------------
  152|    399|                           || (p[0] == 0xf0 && (p[1] & 0x30) == 0) // overlong
  ------------------
  |  Branch (152:32): [True: 116, False: 270]
  |  Branch (152:48): [True: 1, False: 115]
  ------------------
  153|    399|                           || (p[0] == 0xf4 && p[1] > 0x8f) || p[0] > 0xf4); // > U+10FFFF
  ------------------
  |  Branch (153:32): [True: 244, False: 141]
  |  Branch (153:48): [True: 3, False: 241]
  |  Branch (153:64): [True: 0, False: 382]
  ------------------
  154|    399|                }
  155|    399|            }
  156|      0|            return true;
  157|  4.32k|        };
_ZZN5boost5beast9websocket6detail12utf8_checker5writeEPKhmENKUlRS5_E_clES6_:
   45|  25.3M|        {
   46|  25.3M|            if(p[0] < 128)
  ------------------
  |  Branch (46:16): [True: 24.1M, False: 1.15M]
  ------------------
   47|  24.1M|            {
   48|  24.1M|                ++p;
   49|  24.1M|                return true;
   50|  24.1M|            }
   51|  1.15M|            if((p[0] & 0xe0) == 0xc0)
  ------------------
  |  Branch (51:16): [True: 1.13M, False: 23.2k]
  ------------------
   52|  1.13M|            {
   53|  1.13M|                if( (p[1] & 0xc0) != 0x80 ||
  ------------------
  |  Branch (53:21): [True: 56, False: 1.13M]
  ------------------
   54|  1.13M|                    (p[0] & 0x1e) == 0)  // overlong
  ------------------
  |  Branch (54:21): [True: 6, False: 1.13M]
  ------------------
   55|     62|                    return false;
   56|  1.13M|                p += 2;
   57|  1.13M|                return true;
   58|  1.13M|            }
   59|  23.2k|            if((p[0] & 0xf0) == 0xe0)
  ------------------
  |  Branch (59:16): [True: 14.1k, False: 9.14k]
  ------------------
   60|  14.1k|            {
   61|  14.1k|                if(    (p[1] & 0xc0) != 0x80
  ------------------
  |  Branch (61:24): [True: 36, False: 14.0k]
  ------------------
   62|  14.1k|                    || (p[2] & 0xc0) != 0x80
  ------------------
  |  Branch (62:24): [True: 17, False: 14.0k]
  ------------------
   63|  14.1k|                    || (p[0] == 0xe0 && (p[1] & 0x20) == 0) // overlong
  ------------------
  |  Branch (63:25): [True: 370, False: 13.6k]
  |  Branch (63:41): [True: 8, False: 362]
  ------------------
   64|  14.1k|                    || (p[0] == 0xed && (p[1] & 0x20) == 0x20) // surrogate
  ------------------
  |  Branch (64:25): [True: 7.94k, False: 6.11k]
  |  Branch (64:41): [True: 5, False: 7.93k]
  ------------------
   65|       |                    //|| (p[0] == 0xef && p[1] == 0xbf && (p[2] & 0xfe) == 0xbe) // U+FFFE or U+FFFF
   66|  14.1k|                    )
   67|     66|                    return false;
   68|  14.0k|                p += 3;
   69|  14.0k|                return true;
   70|  14.1k|            }
   71|  9.14k|            if((p[0] & 0xf8) == 0xf0)
  ------------------
  |  Branch (71:16): [True: 9.05k, False: 91]
  ------------------
   72|  9.05k|            {
   73|  9.05k|                if(    (p[0] & 0x07) >= 0x05 // invalid F5...FF characters
  ------------------
  |  Branch (73:24): [True: 5, False: 9.04k]
  ------------------
   74|  9.05k|                    || (p[1] & 0xc0) != 0x80
  ------------------
  |  Branch (74:24): [True: 15, False: 9.03k]
  ------------------
   75|  9.05k|                    || (p[2] & 0xc0) != 0x80
  ------------------
  |  Branch (75:24): [True: 15, False: 9.01k]
  ------------------
   76|  9.05k|                    || (p[3] & 0xc0) != 0x80
  ------------------
  |  Branch (76:24): [True: 16, False: 9.00k]
  ------------------
   77|  9.05k|                    || (p[0] == 0xf0 && (p[1] & 0x30) == 0) // overlong
  ------------------
  |  Branch (77:25): [True: 6.53k, False: 2.46k]
  |  Branch (77:41): [True: 4, False: 6.53k]
  ------------------
   78|  9.05k|                    || (p[0] == 0xf4 && p[1] > 0x8f) || p[0] > 0xf4 // > U+10FFFF
  ------------------
  |  Branch (78:25): [True: 1.29k, False: 7.69k]
  |  Branch (78:41): [True: 6, False: 1.29k]
  |  Branch (78:57): [True: 0, False: 8.99k]
  ------------------
   79|  9.05k|                    )
   80|     61|                    return false;
   81|  8.99k|                p += 4;
   82|  8.99k|                return true;
   83|  9.05k|            }
   84|     91|            return false;
   85|  9.14k|        };
_ZZN5boost5beast9websocket6detail12utf8_checker5writeEPKhmENKUlhE_clEh:
  160|   523k|        {
  161|   523k|            if(v < 128)
  ------------------
  |  Branch (161:16): [True: 508k, False: 15.3k]
  ------------------
  162|   508k|                return 1;
  163|  15.3k|            if(v < 192)
  ------------------
  |  Branch (163:16): [True: 47, False: 15.3k]
  ------------------
  164|     47|                return 0;
  165|  15.3k|            if(v < 224)
  ------------------
  |  Branch (165:16): [True: 2.12k, False: 13.2k]
  ------------------
  166|  2.12k|                return 2;
  167|  13.2k|            if(v < 240)
  ------------------
  |  Branch (167:16): [True: 10.8k, False: 2.39k]
  ------------------
  168|  10.8k|                return 3;
  169|  2.39k|            if(v < 248)
  ------------------
  |  Branch (169:16): [True: 2.38k, False: 9]
  ------------------
  170|  2.38k|                return 4;
  171|      9|            return 0;
  172|  2.39k|        };
_ZN5boost5beast9websocket6detail12utf8_checker6finishEv:
   33|     53|{
   34|     53|    auto const success = need_ == 0;
   35|     53|    reset();
   36|     53|    return success;
   37|     53|}
_ZN5boost5beast9websocket6detail12utf8_checker5resetEv:
   25|     53|{
   26|     53|    need_ = 0;
   27|     53|    p_ = cp_;
   28|     53|}

_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE6acceptERNS_6system10error_codeE:
  544|  8.21k|{
  545|  8.21k|    static_assert(is_sync_stream<next_layer_type>::value,
  546|  8.21k|        "SyncStream type requirements not met");
  547|  8.21k|    do_accept(
  548|  8.21k|        net::const_buffer{},
  549|  8.21k|        &default_decorate_res, ec);
  550|  8.21k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9do_acceptINS5_12const_bufferEPFvRNS0_4http7messageILb0ENSB_17basic_string_bodyIcNSt3__111char_traitsIcEENSE_9allocatorIcEEEENSB_12basic_fieldsISI_EEEEEEEvRKT_RKT0_RNS_6system10error_codeE:
  504|  8.21k|{
  505|  8.21k|    impl_->reset();
  506|  8.21k|    auto const mb =
  507|  8.21k|        beast::detail::dynamic_buffer_prepare(
  508|  8.21k|        impl_->rd_buf, buffer_bytes(buffers), ec,
  509|  8.21k|            error::buffer_overflow);
  510|  8.21k|    if(ec)
  ------------------
  |  Branch (510:8): [True: 0, False: 8.21k]
  ------------------
  511|      0|        return;
  512|  8.21k|    impl_->rd_buf.commit(net::buffer_copy(*mb, buffers));
  513|       |
  514|  8.21k|    http::request_parser<http::empty_body> p;
  515|  8.21k|    http::read(next_layer(), impl_->rd_buf, p, ec);
  516|  8.21k|    if(ec == http::error::end_of_stream)
  ------------------
  |  Branch (516:8): [True: 0, False: 8.21k]
  ------------------
  517|      0|    {
  518|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::closed);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  519|      0|    }
  520|  8.21k|    if(ec)
  ------------------
  |  Branch (520:8): [True: 3.08k, False: 5.13k]
  ------------------
  521|  3.08k|        return;
  522|  5.13k|    do_accept(p.get(), decorator, ec);
  523|  5.13k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9do_acceptINS0_4http10empty_bodyENSt3__19allocatorIcEEPFvRNSA_7messageILb0ENSA_17basic_string_bodyIcNSC_11char_traitsIcEESE_EENSA_12basic_fieldsISE_EEEEEEEvRKNSF_ILb1ET_NSK_IT0_EEEERKT1_RNS_6system10error_codeE:
  463|  5.13k|{
  464|  5.13k|    impl_->change_status(status::handshake);
  465|       |
  466|  5.13k|    error_code result;
  467|  5.13k|    auto const res = impl_->build_response(req, decorator, result);
  468|       |
  469|  5.13k|    auto itr = req.find(http::field::expect);
  470|  5.13k|    if (itr != req.end() && iequals(itr->value(), "100-continue")) // do
  ------------------
  |  Branch (470:9): [True: 37, False: 5.09k]
  |  Branch (470:9): [True: 11, False: 5.12k]
  |  Branch (470:29): [True: 11, False: 26]
  ------------------
  471|     11|    {
  472|     11|        http::response<http::empty_body> res_100;
  473|     11|        res_100.version(res.version());
  474|     11|        res_100.set(http::field::server, res[http::field::server]);
  475|     11|        res_100.result(http::status::continue_);
  476|     11|        res_100.prepare_payload();
  477|     11|        http::write(impl_->stream(), res_100, ec);
  478|     11|        if (ec)
  ------------------
  |  Branch (478:13): [True: 0, False: 11]
  ------------------
  479|      0|            return;
  480|     11|    }
  481|       |
  482|  5.13k|    http::write(impl_->stream(), res, ec);
  483|  5.13k|    if(ec)
  ------------------
  |  Branch (483:8): [True: 0, False: 5.13k]
  ------------------
  484|      0|        return;
  485|  5.13k|    BOOST_BEAST_ASSIGN_EC(ec, result);
  ------------------
  |  |  111|  5.13k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  5.13k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  5.13k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  5.13k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  5.13k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  486|  5.13k|    if(ec)
  ------------------
  |  Branch (486:8): [True: 491, False: 4.64k]
  ------------------
  487|    491|    {
  488|       |        // VFALCO TODO Respect keep alive setting, perform
  489|       |        //             teardown if Connection: close.
  490|    491|        return;
  491|    491|    }
  492|  4.64k|    impl_->do_pmd_config(res);
  493|  4.64k|    impl_->open(role_type::server);
  494|  4.64k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type14build_responseINS0_4http10empty_bodyENSt3__19allocatorIcEEPFvRNSB_7messageILb0ENSB_17basic_string_bodyIcNSD_11char_traitsIcEESF_EENSB_12basic_fieldsISF_EEEEEEESN_RKNSG_ILb1ET_NSL_IT0_EEEERKT1_RNS_6system10error_codeE:
   74|  5.13k|{
   75|  5.13k|    auto const decorate =
   76|  5.13k|        [this, &decorator](response_type& res)
   77|  5.13k|        {
   78|  5.13k|            decorator_opt(res);
   79|  5.13k|            decorator(res);
   80|  5.13k|            if(! res.count(http::field::server))
   81|  5.13k|                res.set(http::field::server,
   82|  5.13k|                    string_view(BOOST_BEAST_VERSION_STRING));
   83|  5.13k|        };
   84|  5.13k|    auto err =
   85|  5.13k|        [&](error e)
   86|  5.13k|        {
   87|  5.13k|            result = e;
   88|  5.13k|            response_type res;
   89|  5.13k|            res.version(req.version());
   90|  5.13k|            res.result(http::status::bad_request);
   91|  5.13k|            res.body() = result.message();
   92|  5.13k|            res.prepare_payload();
   93|  5.13k|            decorate(res);
   94|  5.13k|            return res;
   95|  5.13k|        };
   96|  5.13k|    if(req.version() != 11)
  ------------------
  |  Branch (96:8): [True: 54, False: 5.08k]
  ------------------
   97|     54|        return err(error::bad_http_version);
   98|  5.08k|    if(req.method() != http::verb::get)
  ------------------
  |  Branch (98:8): [True: 61, False: 5.01k]
  ------------------
   99|     61|        return err(error::bad_method);
  100|  5.01k|    if(! req.count(http::field::host))
  ------------------
  |  Branch (100:8): [True: 37, False: 4.98k]
  ------------------
  101|     37|        return err(error::no_host);
  102|  4.98k|    {
  103|  4.98k|        auto const it = req.find(http::field::connection);
  104|  4.98k|        if(it == req.end())
  ------------------
  |  Branch (104:12): [True: 123, False: 4.85k]
  ------------------
  105|    123|            return err(error::no_connection);
  106|  4.85k|        if(! http::token_list{it->value()}.exists("upgrade"))
  ------------------
  |  Branch (106:12): [True: 126, False: 4.73k]
  ------------------
  107|    126|            return err(error::no_connection_upgrade);
  108|  4.85k|    }
  109|  4.73k|    {
  110|  4.73k|        auto const it = req.find(http::field::upgrade);
  111|  4.73k|        if(it == req.end())
  ------------------
  |  Branch (111:12): [True: 9, False: 4.72k]
  ------------------
  112|      9|            return err(error::no_upgrade);
  113|  4.72k|        if(! http::token_list{it->value()}.exists("websocket"))
  ------------------
  |  Branch (113:12): [True: 21, False: 4.70k]
  ------------------
  114|     21|            return err(error::no_upgrade_websocket);
  115|  4.72k|    }
  116|  4.70k|    string_view key;
  117|  4.70k|    {
  118|  4.70k|        auto const it = req.find(http::field::sec_websocket_key);
  119|  4.70k|        if(it == req.end())
  ------------------
  |  Branch (119:12): [True: 7, False: 4.69k]
  ------------------
  120|      7|            return err(error::no_sec_key);
  121|  4.69k|        key = it->value();
  122|  4.69k|        if(key.size() > detail::sec_ws_key_type::static_capacity)
  ------------------
  |  Branch (122:12): [True: 2, False: 4.69k]
  ------------------
  123|      2|            return err(error::bad_sec_key);
  124|  4.69k|    }
  125|  4.69k|    {
  126|  4.69k|        auto const it = req.find(http::field::sec_websocket_version);
  127|  4.69k|        if(it == req.end())
  ------------------
  |  Branch (127:12): [True: 10, False: 4.68k]
  ------------------
  128|     10|            return err(error::no_sec_version);
  129|  4.68k|        if(it->value() != "13")
  ------------------
  |  Branch (129:12): [True: 41, False: 4.64k]
  ------------------
  130|     41|        {
  131|     41|            response_type res;
  132|     41|            res.result(http::status::upgrade_required);
  133|     41|            res.version(req.version());
  134|     41|            res.set(http::field::sec_websocket_version, "13");
  135|     41|            result = error::bad_sec_version;
  136|     41|            res.body() = result.message();
  137|     41|            res.prepare_payload();
  138|     41|            decorate(res);
  139|     41|            return res;
  140|     41|        }
  141|  4.68k|    }
  142|       |
  143|  4.64k|    response_type res;
  144|  4.64k|    res.result(http::status::switching_protocols);
  145|  4.64k|    res.version(req.version());
  146|  4.64k|    res.set(http::field::upgrade, "websocket");
  147|  4.64k|    res.set(http::field::connection, "Upgrade");
  148|  4.64k|    {
  149|  4.64k|        detail::sec_ws_accept_type acc;
  150|  4.64k|        detail::make_sec_ws_accept(acc, key);
  151|  4.64k|        res.set(http::field::sec_websocket_accept, to_string_view(acc));
  152|  4.64k|    }
  153|  4.64k|    this->build_response_pmd(res, req);
  154|  4.64k|    decorate(res);
  155|  4.64k|    result = {};
  156|  4.64k|    return res;
  157|  4.68k|}
_ZZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type14build_responseINS0_4http10empty_bodyENSt3__19allocatorIcEEPFvRNSB_7messageILb0ENSB_17basic_string_bodyIcNSD_11char_traitsIcEESF_EENSB_12basic_fieldsISF_EEEEEEESN_RKNSG_ILb1ET_NSL_IT0_EEEERKT1_RNS_6system10error_codeEENKUlNS1_5errorEE_clES13_:
   86|    450|        {
   87|    450|            result = e;
   88|    450|            response_type res;
   89|    450|            res.version(req.version());
   90|    450|            res.result(http::status::bad_request);
   91|    450|            res.body() = result.message();
   92|    450|            res.prepare_payload();
   93|    450|            decorate(res);
   94|    450|            return res;
   95|    450|        };
_ZZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type14build_responseINS0_4http10empty_bodyENSt3__19allocatorIcEEPFvRNSB_7messageILb0ENSB_17basic_string_bodyIcNSD_11char_traitsIcEESF_EENSB_12basic_fieldsISF_EEEEEEESN_RKNSG_ILb1ET_NSL_IT0_EEEERKT1_RNS_6system10error_codeEENKUlSO_E_clESO_:
   77|  5.13k|        {
   78|  5.13k|            decorator_opt(res);
   79|  5.13k|            decorator(res);
   80|  5.13k|            if(! res.count(http::field::server))
  ------------------
  |  Branch (80:16): [True: 0, False: 5.13k]
  ------------------
   81|      0|                res.set(http::field::server,
   82|      0|                    string_view(BOOST_BEAST_VERSION_STRING));
  ------------------
  |  |   26|      0|#define BOOST_BEAST_VERSION_STRING "Boost.Beast/" BOOST_STRINGIZE(BOOST_BEAST_VERSION)
  ------------------
   83|  5.13k|        };
_ZN5boost5beast9websocket6detail9impl_baseILb1EE18build_response_pmdINS0_4http10empty_bodyENSt3__19allocatorIcEEEEvRNS6_7messageILb0ENS6_17basic_string_bodyIcNS8_11char_traitsIcEESA_EENS6_12basic_fieldsISA_EEEERKNSB_ILb1ET_NSG_IT0_EEEE:
   46|  4.64k|{
   47|  4.64k|    pmd_offer offer;
   48|  4.64k|    pmd_offer unused;
   49|  4.64k|    pmd_read(offer, req);
   50|  4.64k|    pmd_negotiate(res, unused, offer, pmd_opts_);
   51|  4.64k|}

_ZN5boost5beast9websocket15make_error_codeENS1_5errorE:
  161|  2.70k|{
  162|  2.70k|    static detail::error_codes const cat{};
  163|  2.70k|    return error_code{static_cast<
  164|  2.70k|        std::underlying_type<error>::type>(e), cat};
  165|  2.70k|}
_ZN5boost5beast9websocket6detail11error_codesC2Ev:
   24|      1|    error_codes() : error_category(0x065d7edd7687edafu )  {}
_ZNK5boost5beast9websocket6detail11error_codes7messageEi:
   77|    491|    {
   78|    491|        return message(ev, nullptr, 0);
   79|    491|    }
_ZNK5boost5beast9websocket6detail11error_codes7messageEiPcm:
   35|    491|    {
   36|    491|        switch(static_cast<error>(ev))
   37|    491|        {
   38|      0|        default:
  ------------------
  |  Branch (38:9): [True: 0, False: 491]
  ------------------
   39|      0|        case error::closed:                 return "The WebSocket stream was gracefully closed at both endpoints";
  ------------------
  |  Branch (39:9): [True: 0, False: 491]
  ------------------
   40|      0|        case error::buffer_overflow:        return "The WebSocket operation caused a dynamic buffer overflow";
  ------------------
  |  Branch (40:9): [True: 0, False: 491]
  ------------------
   41|      0|        case error::partial_deflate_block:  return "The WebSocket stream produced an incomplete deflate block";
  ------------------
  |  Branch (41:9): [True: 0, False: 491]
  ------------------
   42|      0|        case error::message_too_big:        return "The WebSocket message exceeded the locally configured limit";
  ------------------
  |  Branch (42:9): [True: 0, False: 491]
  ------------------
   43|       |
   44|     54|        case error::bad_http_version:       return "The WebSocket handshake was not HTTP/1.1";
  ------------------
  |  Branch (44:9): [True: 54, False: 437]
  ------------------
   45|     61|        case error::bad_method:             return "The WebSocket handshake method was not GET";
  ------------------
  |  Branch (45:9): [True: 61, False: 430]
  ------------------
   46|     37|        case error::no_host:                return "The WebSocket handshake Host field is missing";
  ------------------
  |  Branch (46:9): [True: 37, False: 454]
  ------------------
   47|    123|        case error::no_connection:          return "The WebSocket handshake Connection field is missing";
  ------------------
  |  Branch (47:9): [True: 123, False: 368]
  ------------------
   48|    126|        case error::no_connection_upgrade:  return "The WebSocket handshake Connection field is missing the upgrade token";
  ------------------
  |  Branch (48:9): [True: 126, False: 365]
  ------------------
   49|      9|        case error::no_upgrade:             return "The WebSocket handshake Upgrade field is missing";
  ------------------
  |  Branch (49:9): [True: 9, False: 482]
  ------------------
   50|     21|        case error::no_upgrade_websocket:   return "The WebSocket handshake Upgrade field is missing the websocket token";
  ------------------
  |  Branch (50:9): [True: 21, False: 470]
  ------------------
   51|      7|        case error::no_sec_key:             return "The WebSocket handshake Sec-WebSocket-Key field is missing";
  ------------------
  |  Branch (51:9): [True: 7, False: 484]
  ------------------
   52|      2|        case error::bad_sec_key:            return "The WebSocket handshake Sec-WebSocket-Key field is invalid";
  ------------------
  |  Branch (52:9): [True: 2, False: 489]
  ------------------
   53|     10|        case error::no_sec_version:         return "The WebSocket handshake Sec-WebSocket-Version field is missing";
  ------------------
  |  Branch (53:9): [True: 10, False: 481]
  ------------------
   54|     41|        case error::bad_sec_version:        return "The WebSocket handshake Sec-WebSocket-Version field is invalid";
  ------------------
  |  Branch (54:9): [True: 41, False: 450]
  ------------------
   55|      0|        case error::no_sec_accept:          return "The WebSocket handshake Sec-WebSocket-Accept field is missing";
  ------------------
  |  Branch (55:9): [True: 0, False: 491]
  ------------------
   56|      0|        case error::bad_sec_accept:         return "The WebSocket handshake Sec-WebSocket-Accept field is invalid";
  ------------------
  |  Branch (56:9): [True: 0, False: 491]
  ------------------
   57|      0|        case error::upgrade_declined:       return "The WebSocket handshake was declined by the remote peer";
  ------------------
  |  Branch (57:9): [True: 0, False: 491]
  ------------------
   58|       |
   59|      0|        case error::bad_opcode:             return "The WebSocket frame contained an illegal opcode";
  ------------------
  |  Branch (59:9): [True: 0, False: 491]
  ------------------
   60|      0|        case error::bad_data_frame:         return "The WebSocket data frame was unexpected";
  ------------------
  |  Branch (60:9): [True: 0, False: 491]
  ------------------
   61|      0|        case error::bad_continuation:       return "The WebSocket continuation frame was unexpected";
  ------------------
  |  Branch (61:9): [True: 0, False: 491]
  ------------------
   62|      0|        case error::bad_reserved_bits:      return "The WebSocket frame contained illegal reserved bits";
  ------------------
  |  Branch (62:9): [True: 0, False: 491]
  ------------------
   63|      0|        case error::bad_control_fragment:   return "The WebSocket control frame was fragmented";
  ------------------
  |  Branch (63:9): [True: 0, False: 491]
  ------------------
   64|      0|        case error::bad_control_size:       return "The WebSocket control frame size was invalid";
  ------------------
  |  Branch (64:9): [True: 0, False: 491]
  ------------------
   65|      0|        case error::bad_unmasked_frame:     return "The WebSocket frame was unmasked";
  ------------------
  |  Branch (65:9): [True: 0, False: 491]
  ------------------
   66|      0|        case error::bad_masked_frame:       return "The WebSocket frame was masked";
  ------------------
  |  Branch (66:9): [True: 0, False: 491]
  ------------------
   67|      0|        case error::bad_size:               return "The WebSocket frame size was not canonical";
  ------------------
  |  Branch (67:9): [True: 0, False: 491]
  ------------------
   68|      0|        case error::bad_frame_payload:      return "The WebSocket frame payload was not valid utf8";
  ------------------
  |  Branch (68:9): [True: 0, False: 491]
  ------------------
   69|      0|        case error::bad_close_code:         return "The WebSocket close frame reason code was invalid";
  ------------------
  |  Branch (69:9): [True: 0, False: 491]
  ------------------
   70|      0|        case error::bad_close_size:         return "The WebSocket close frame payload size was invalid";
  ------------------
  |  Branch (70:9): [True: 0, False: 491]
  ------------------
   71|      0|        case error::bad_close_payload:      return "The WebSocket close frame payload was not valid utf8";
  ------------------
  |  Branch (71:9): [True: 0, False: 491]
  ------------------
   72|    491|        }
   73|    491|    }

_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE4readINS0_17basic_flat_bufferINSt3__19allocatorIcEEEEEEmRT_RNS_6system10error_codeE:
  930|  4.64k|{
  931|  4.64k|    static_assert(is_sync_stream<next_layer_type>::value,
  932|  4.64k|        "SyncStream type requirements not met");
  933|  4.64k|    static_assert(
  934|  4.64k|        net::is_dynamic_buffer<DynamicBuffer>::value,
  935|  4.64k|        "DynamicBuffer type requirements not met");
  936|  4.64k|    std::size_t bytes_written = 0;
  937|  4.64k|    do
  938|   717k|    {
  939|   717k|        bytes_written += read_some(buffer, 0, ec);
  940|   717k|        if(ec)
  ------------------
  |  Branch (940:12): [True: 3.39k, False: 714k]
  ------------------
  941|  3.39k|            return bytes_written;
  942|   717k|    }
  943|   714k|    while(! is_message_done());
  ------------------
  |  Branch (943:11): [True: 712k, False: 1.24k]
  ------------------
  944|  1.24k|    return bytes_written;
  945|  4.64k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9read_someINS0_17basic_flat_bufferINSt3__19allocatorIcEEEEEEmRT_mRNS_6system10error_codeE:
  999|   717k|{
 1000|   717k|    static_assert(is_sync_stream<next_layer_type>::value,
 1001|   717k|        "SyncStream type requirements not met");
 1002|   717k|    static_assert(
 1003|   717k|        net::is_dynamic_buffer<DynamicBuffer>::value,
 1004|   717k|        "DynamicBuffer type requirements not met");
 1005|   717k|    using beast::detail::clamp;
 1006|   717k|    if(! limit)
  ------------------
  |  Branch (1006:8): [True: 717k, False: 0]
  ------------------
 1007|   717k|        limit = (std::numeric_limits<std::size_t>::max)();
 1008|   717k|    auto const size =
 1009|   717k|        clamp(impl_->read_size_hint_db(buffer), limit);
 1010|   717k|    BOOST_ASSERT(size > 0);
  ------------------
  |  |   66|   717k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1011|   717k|    auto mb = beast::detail::dynamic_buffer_prepare(
 1012|   717k|        buffer, size, ec, error::buffer_overflow);
 1013|   717k|    if(impl_->check_stop_now(ec))
  ------------------
  |  Branch (1013:8): [True: 0, False: 717k]
  ------------------
 1014|      0|        return 0;
 1015|   717k|    auto const bytes_written = read_some(*mb, ec);
 1016|   717k|    buffer.commit(bytes_written);
 1017|   717k|    return bytes_written;
 1018|   717k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9read_someINS5_14mutable_bufferEEEmRKT_RNS_6system10error_codeE:
 1072|   717k|{
 1073|   717k|    static_assert(is_sync_stream<next_layer_type>::value,
 1074|   717k|        "SyncStream type requirements not met");
 1075|   717k|    static_assert(net::is_mutable_buffer_sequence<
 1076|   717k|            MutableBufferSequence>::value,
 1077|   717k|        "MutableBufferSequence type requirements not met");
 1078|   717k|    using beast::detail::clamp;
 1079|   717k|    auto& impl = *impl_;
 1080|   717k|    close_code code{};
 1081|   717k|    std::size_t bytes_written = 0;
 1082|   717k|    ec = {};
 1083|       |    // Make sure the stream is open
 1084|   717k|    if(impl.check_stop_now(ec))
  ------------------
  |  Branch (1084:8): [True: 0, False: 717k]
  ------------------
 1085|      0|        return bytes_written;
 1086|  1.27M|loop:
 1087|       |    // See if we need to read a frame header. This
 1088|       |    // condition is structured to give the decompressor
 1089|       |    // a chance to emit the final empty deflate block
 1090|       |    //
 1091|  1.27M|    if(impl.rd_remain == 0 && (
  ------------------
  |  Branch (1091:8): [True: 1.22M, False: 53.0k]
  ------------------
 1092|  1.22M|        ! impl.rd_fh.fin || impl.rd_done))
  ------------------
  |  Branch (1092:9): [True: 964k, False: 258k]
  |  Branch (1092:29): [True: 0, False: 258k]
  ------------------
 1093|   964k|    {
 1094|       |        // Read frame header
 1095|   964k|        error_code result;
 1096|   972k|        while(! impl.parse_fh(impl.rd_fh, impl.rd_buf, result))
  ------------------
  |  Branch (1096:15): [True: 9.51k, False: 963k]
  ------------------
 1097|  9.51k|        {
 1098|  9.51k|            if(result)
  ------------------
  |  Branch (1098:16): [True: 407, False: 9.10k]
  ------------------
 1099|    407|            {
 1100|       |                // _Fail the WebSocket Connection_
 1101|    407|                if(result == error::message_too_big)
  ------------------
  |  Branch (1101:20): [True: 198, False: 209]
  ------------------
 1102|    198|                    code = close_code::too_big;
 1103|    209|                else
 1104|    209|                    code = close_code::protocol_error;
 1105|    407|                do_fail(code, result, ec);
 1106|    407|                return bytes_written;
 1107|    407|            }
 1108|  9.10k|            auto const bytes_transferred =
 1109|  9.10k|                impl.stream().read_some(
 1110|  9.10k|                    impl.rd_buf.prepare(read_size(
 1111|  9.10k|                        impl.rd_buf, impl.rd_buf.max_size())),
 1112|  9.10k|                    ec);
 1113|  9.10k|            impl.rd_buf.commit(bytes_transferred);
 1114|  9.10k|            if(impl.check_stop_now(ec))
  ------------------
  |  Branch (1114:16): [True: 695, False: 8.41k]
  ------------------
 1115|    695|                return bytes_written;
 1116|  9.10k|        }
 1117|       |        // Immediately apply the mask to the portion
 1118|       |        // of the buffer holding payload data.
 1119|   963k|        if(impl.rd_fh.len > 0 && impl.rd_fh.mask)
  ------------------
  |  Branch (1119:12): [True: 960k, False: 2.40k]
  |  Branch (1119:34): [True: 960k, False: 0]
  ------------------
 1120|   960k|            detail::mask_inplace(buffers_prefix(
 1121|   960k|                clamp(impl.rd_fh.len), impl.rd_buf.data()),
 1122|   960k|                    impl.rd_key);
 1123|   963k|        if(detail::is_control(impl.rd_fh.op))
  ------------------
  |  Branch (1123:12): [True: 557k, False: 405k]
  ------------------
 1124|   557k|        {
 1125|       |            // Get control frame payload
 1126|   557k|            auto const b = buffers_prefix(
 1127|   557k|                clamp(impl.rd_fh.len), impl.rd_buf.data());
 1128|   557k|            auto const len = buffer_bytes(b);
 1129|   557k|            BOOST_ASSERT(len == impl.rd_fh.len);
  ------------------
  |  |   66|   557k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1130|       |
 1131|       |            // Clear this otherwise the next
 1132|       |            // frame will be considered final.
 1133|   557k|            impl.rd_fh.fin = false;
 1134|       |
 1135|       |            // Handle ping frame
 1136|   557k|            if(impl.rd_fh.op == detail::opcode::ping)
  ------------------
  |  Branch (1136:16): [True: 320k, False: 237k]
  ------------------
 1137|   320k|            {
 1138|   320k|                ping_data payload;
 1139|   320k|                detail::read_ping(payload, b);
 1140|   320k|                impl.rd_buf.consume(len);
 1141|   320k|                if(impl.wr_close)
  ------------------
  |  Branch (1141:20): [True: 0, False: 320k]
  ------------------
 1142|      0|                {
 1143|       |                    // Ignore ping when closing
 1144|      0|                    goto loop;
 1145|      0|                }
 1146|   320k|                if(impl.ctrl_cb)
  ------------------
  |  Branch (1146:20): [True: 0, False: 320k]
  ------------------
 1147|      0|                    impl.ctrl_cb(frame_type::ping, to_string_view(payload));
 1148|   320k|                detail::frame_buffer fb;
 1149|   320k|                impl.template write_ping<flat_static_buffer_base>(fb,
 1150|   320k|                    detail::opcode::pong, payload);
 1151|   320k|                net::write(impl.stream(), fb.data(), ec);
 1152|   320k|                if(impl.check_stop_now(ec))
  ------------------
  |  Branch (1152:20): [True: 0, False: 320k]
  ------------------
 1153|      0|                    return bytes_written;
 1154|   320k|                goto loop;
 1155|   320k|            }
 1156|       |            // Handle pong frame
 1157|   237k|            if(impl.rd_fh.op == detail::opcode::pong)
  ------------------
  |  Branch (1157:16): [True: 237k, False: 138]
  ------------------
 1158|   237k|            {
 1159|   237k|                ping_data payload;
 1160|   237k|                detail::read_ping(payload, b);
 1161|   237k|                impl.rd_buf.consume(len);
 1162|   237k|                if(impl.ctrl_cb)
  ------------------
  |  Branch (1162:20): [True: 0, False: 237k]
  ------------------
 1163|      0|                    impl.ctrl_cb(frame_type::pong, to_string_view(payload));
 1164|   237k|                goto loop;
 1165|   237k|            }
 1166|       |            // Handle close frame
 1167|    138|            BOOST_ASSERT(impl.rd_fh.op == detail::opcode::close);
  ------------------
  |  |   66|    138|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1168|    138|            {
 1169|    138|                BOOST_ASSERT(! impl.rd_close);
  ------------------
  |  |   66|    138|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1170|    138|                impl.rd_close = true;
 1171|    138|                close_reason cr;
 1172|    138|                detail::read_close(cr, b, result);
 1173|    138|                if(result)
  ------------------
  |  Branch (1173:20): [True: 89, False: 49]
  ------------------
 1174|     89|                {
 1175|       |                    // _Fail the WebSocket Connection_
 1176|     89|                    do_fail(close_code::protocol_error,
 1177|     89|                        result, ec);
 1178|     89|                    return bytes_written;
 1179|     89|                }
 1180|     49|                impl.cr = cr;
 1181|     49|                impl.rd_buf.consume(len);
 1182|     49|                if(impl.ctrl_cb)
  ------------------
  |  Branch (1182:20): [True: 0, False: 49]
  ------------------
 1183|      0|                    impl.ctrl_cb(frame_type::close, to_string_view(impl.cr.reason));
 1184|     49|                BOOST_ASSERT(! impl.wr_close);
  ------------------
  |  |   66|     49|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1185|       |                // _Start the WebSocket Closing Handshake_
 1186|     49|                do_fail(
 1187|     49|                    cr.code == close_code::none ?
  ------------------
  |  Branch (1187:21): [True: 10, False: 39]
  ------------------
 1188|     10|                        close_code::normal :
 1189|     49|                        static_cast<close_code>(cr.code),
 1190|     49|                    error::closed, ec);
 1191|     49|                return bytes_written;
 1192|     49|            }
 1193|     49|        }
 1194|   405k|        if(impl.rd_fh.len == 0 && ! impl.rd_fh.fin)
  ------------------
  |  Branch (1194:12): [True: 832, False: 404k]
  |  Branch (1194:35): [True: 815, False: 17]
  ------------------
 1195|    815|        {
 1196|       |            // Empty non-final frame
 1197|    815|            goto loop;
 1198|    815|        }
 1199|   404k|        impl.rd_done = false;
 1200|   404k|    }
 1201|   311k|    else
 1202|   311k|    {
 1203|   311k|        ec = {};
 1204|   311k|    }
 1205|   716k|    if(! impl.rd_deflated())
  ------------------
  |  Branch (1205:8): [True: 371k, False: 345k]
  ------------------
 1206|   371k|    {
 1207|   371k|        if(impl.rd_remain > 0)
  ------------------
  |  Branch (1207:12): [True: 371k, False: 14]
  ------------------
 1208|   371k|        {
 1209|   371k|            if(impl.rd_buf.size() == 0 && impl.rd_buf.max_size() >
  ------------------
  |  Branch (1209:16): [True: 6.23k, False: 364k]
  |  Branch (1209:16): [True: 3.30k, False: 367k]
  |  Branch (1209:43): [True: 3.30k, False: 2.93k]
  ------------------
 1210|  6.23k|                (std::min)(clamp(impl.rd_remain),
 1211|  6.23k|                    buffer_bytes(buffers)))
 1212|  3.30k|            {
 1213|       |                // Fill the read buffer first, otherwise we
 1214|       |                // get fewer bytes at the cost of one I/O.
 1215|  3.30k|                impl.rd_buf.commit(impl.stream().read_some(
 1216|  3.30k|                    impl.rd_buf.prepare(read_size(impl.rd_buf,
 1217|  3.30k|                        impl.rd_buf.max_size())), ec));
 1218|  3.30k|                if(impl.check_stop_now(ec))
  ------------------
  |  Branch (1218:20): [True: 327, False: 2.97k]
  ------------------
 1219|    327|                    return bytes_written;
 1220|  2.97k|                if(impl.rd_fh.mask)
  ------------------
  |  Branch (1220:20): [True: 2.97k, False: 0]
  ------------------
 1221|  2.97k|                    detail::mask_inplace(
 1222|  2.97k|                        buffers_prefix(clamp(impl.rd_remain),
 1223|  2.97k|                            impl.rd_buf.data()), impl.rd_key);
 1224|  2.97k|            }
 1225|   370k|            if(impl.rd_buf.size() > 0)
  ------------------
  |  Branch (1225:16): [True: 367k, False: 2.93k]
  ------------------
 1226|   367k|            {
 1227|       |                // Copy from the read buffer.
 1228|       |                // The mask was already applied.
 1229|   367k|                auto const bytes_transferred = net::buffer_copy(
 1230|   367k|                    buffers, impl.rd_buf.data(),
 1231|   367k|                        clamp(impl.rd_remain));
 1232|   367k|                auto const mb = buffers_prefix(
 1233|   367k|                    bytes_transferred, buffers);
 1234|   367k|                impl.rd_remain -= bytes_transferred;
 1235|   367k|                if(impl.rd_op == detail::opcode::text)
  ------------------
  |  Branch (1235:20): [True: 241k, False: 126k]
  ------------------
 1236|   241k|                {
 1237|   241k|                    if(! impl.rd_utf8.write(mb) ||
  ------------------
  |  Branch (1237:24): [True: 241, False: 241k]
  ------------------
 1238|   241k|                        (impl.rd_remain == 0 && impl.rd_fh.fin &&
  ------------------
  |  Branch (1238:26): [True: 239k, False: 1.74k]
  |  Branch (1238:49): [True: 23, False: 239k]
  ------------------
 1239|   241k|                            ! impl.rd_utf8.finish()))
  ------------------
  |  Branch (1239:29): [True: 5, False: 18]
  ------------------
 1240|    246|                    {
 1241|       |                        // _Fail the WebSocket Connection_
 1242|    246|                        do_fail(close_code::bad_payload,
 1243|    246|                            error::bad_frame_payload, ec);
 1244|    246|                        return bytes_written;
 1245|    246|                    }
 1246|   241k|                }
 1247|   367k|                bytes_written += bytes_transferred;
 1248|   367k|                impl.rd_size += bytes_transferred;
 1249|   367k|                impl.rd_buf.consume(bytes_transferred);
 1250|   367k|            }
 1251|  2.93k|            else
 1252|  2.93k|            {
 1253|       |                // Read into caller's buffer
 1254|  2.93k|                BOOST_ASSERT(impl.rd_remain > 0);
  ------------------
  |  |   66|  2.93k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1255|  2.93k|                BOOST_ASSERT(buffer_bytes(buffers) > 0);
  ------------------
  |  |   66|  2.93k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1256|  2.93k|                BOOST_ASSERT(buffer_bytes(buffers_prefix(
  ------------------
  |  |   66|  2.93k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1257|  2.93k|                    clamp(impl.rd_remain), buffers)) > 0);
 1258|  2.93k|                auto const bytes_transferred =
 1259|  2.93k|                    impl.stream().read_some(buffers_prefix(
 1260|  2.93k|                        clamp(impl.rd_remain), buffers), ec);
 1261|       |                // VFALCO What if some bytes were written?
 1262|  2.93k|                if(impl.check_stop_now(ec))
  ------------------
  |  Branch (1262:20): [True: 291, False: 2.64k]
  ------------------
 1263|    291|                    return bytes_written;
 1264|  2.64k|                BOOST_ASSERT(bytes_transferred > 0);
  ------------------
  |  |   66|  2.64k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1265|  2.64k|                auto const mb = buffers_prefix(
 1266|  2.64k|                    bytes_transferred, buffers);
 1267|  2.64k|                impl.rd_remain -= bytes_transferred;
 1268|  2.64k|                if(impl.rd_fh.mask)
  ------------------
  |  Branch (1268:20): [True: 2.64k, False: 0]
  ------------------
 1269|  2.64k|                    detail::mask_inplace(mb, impl.rd_key);
 1270|  2.64k|                if(impl.rd_op == detail::opcode::text)
  ------------------
  |  Branch (1270:20): [True: 52, False: 2.59k]
  ------------------
 1271|     52|                {
 1272|     52|                    if(! impl.rd_utf8.write(mb) ||
  ------------------
  |  Branch (1272:24): [True: 18, False: 34]
  ------------------
 1273|     52|                        (impl.rd_remain == 0 && impl.rd_fh.fin &&
  ------------------
  |  Branch (1273:26): [True: 8, False: 26]
  |  Branch (1273:49): [True: 3, False: 5]
  ------------------
 1274|     34|                            ! impl.rd_utf8.finish()))
  ------------------
  |  Branch (1274:29): [True: 1, False: 2]
  ------------------
 1275|     19|                    {
 1276|       |                        // _Fail the WebSocket Connection_
 1277|     19|                        do_fail(close_code::bad_payload,
 1278|     19|                            error::bad_frame_payload, ec);
 1279|     19|                        return bytes_written;
 1280|     19|                    }
 1281|     52|                }
 1282|  2.62k|                bytes_written += bytes_transferred;
 1283|  2.62k|                impl.rd_size += bytes_transferred;
 1284|  2.62k|            }
 1285|   370k|        }
 1286|   370k|        BOOST_ASSERT( ! impl.rd_done );
  ------------------
  |  |   66|   370k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1287|   370k|        if( impl.rd_remain == 0 && impl.rd_fh.fin )
  ------------------
  |  Branch (1287:13): [True: 364k, False: 5.60k]
  |  Branch (1287:36): [True: 277, False: 364k]
  ------------------
 1288|    277|            impl.rd_done = true;
 1289|   370k|    }
 1290|   345k|    else
 1291|   345k|    {
 1292|       |        // Read compressed message frame payload:
 1293|       |        // inflate even if rd_fh_.len == 0, otherwise we
 1294|       |        // never emit the end-of-stream deflate block.
 1295|       |        //
 1296|   345k|        bool did_read = false;
 1297|   345k|        buffers_suffix<MutableBufferSequence> cb(buffers);
 1298|  65.3M|        while(buffer_bytes(cb) > 0)
  ------------------
  |  Branch (1298:15): [True: 65.0M, False: 302k]
  ------------------
 1299|  65.0M|        {
 1300|  65.0M|            zlib::z_params zs;
 1301|  65.0M|            {
 1302|  65.0M|                auto const out = beast::buffers_front(cb);
 1303|  65.0M|                zs.next_out = out.data();
 1304|  65.0M|                zs.avail_out = out.size();
 1305|  65.0M|                BOOST_ASSERT(zs.avail_out > 0);
  ------------------
  |  |   66|  65.0M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1306|  65.0M|            }
 1307|       |            // boolean to track the end of the message.
 1308|  65.0M|            bool fin = false;
 1309|  65.0M|            if(impl.rd_remain > 0)
  ------------------
  |  Branch (1309:16): [True: 93.4k, False: 64.9M]
  ------------------
 1310|  93.4k|            {
 1311|  93.4k|                if(impl.rd_buf.size() > 0)
  ------------------
  |  Branch (1311:20): [True: 82.5k, False: 10.8k]
  ------------------
 1312|  82.5k|                {
 1313|       |                    // use what's there
 1314|  82.5k|                    auto const in = buffers_prefix(
 1315|  82.5k|                        clamp(impl.rd_remain), beast::buffers_front(
 1316|  82.5k|                            impl.rd_buf.data()));
 1317|  82.5k|                    zs.avail_in = in.size();
 1318|  82.5k|                    zs.next_in = in.data();
 1319|  82.5k|                }
 1320|  10.8k|                else if(! did_read)
  ------------------
  |  Branch (1320:25): [True: 6.94k, False: 3.92k]
  ------------------
 1321|  6.94k|                {
 1322|       |                    // read new
 1323|  6.94k|                    auto const bytes_transferred =
 1324|  6.94k|                        impl.stream().read_some(
 1325|  6.94k|                            impl.rd_buf.prepare(read_size(
 1326|  6.94k|                                impl.rd_buf, impl.rd_buf.max_size())),
 1327|  6.94k|                            ec);
 1328|  6.94k|                    if(impl.check_stop_now(ec))
  ------------------
  |  Branch (1328:24): [True: 795, False: 6.14k]
  ------------------
 1329|    795|                        return bytes_written;
 1330|  6.14k|                    BOOST_ASSERT(bytes_transferred > 0);
  ------------------
  |  |   66|  6.14k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1331|  6.14k|                    impl.rd_buf.commit(bytes_transferred);
 1332|  6.14k|                    if(impl.rd_fh.mask)
  ------------------
  |  Branch (1332:24): [True: 6.14k, False: 0]
  ------------------
 1333|  6.14k|                        detail::mask_inplace(
 1334|  6.14k|                            buffers_prefix(clamp(impl.rd_remain),
 1335|  6.14k|                                impl.rd_buf.data()), impl.rd_key);
 1336|  6.14k|                    auto const in = buffers_prefix(
 1337|  6.14k|                        clamp(impl.rd_remain), buffers_front(
 1338|  6.14k|                            impl.rd_buf.data()));
 1339|  6.14k|                    zs.avail_in = in.size();
 1340|  6.14k|                    zs.next_in = in.data();
 1341|  6.14k|                    did_read = true;
 1342|  6.14k|                }
 1343|  3.92k|                else
 1344|  3.92k|                {
 1345|  3.92k|                    break;
 1346|  3.92k|                }
 1347|  93.4k|            }
 1348|  64.9M|            else if(impl.rd_fh.fin)
  ------------------
  |  Branch (1348:21): [True: 64.9M, False: 36.9k]
  ------------------
 1349|  64.9M|            {
 1350|       |                // append the empty block codes
 1351|  64.9M|                static std::uint8_t constexpr
 1352|  64.9M|                    empty_block[4] = { 0x00, 0x00, 0xff, 0xff };
 1353|  64.9M|                zs.next_in = empty_block;
 1354|  64.9M|                zs.avail_in = sizeof(empty_block);
 1355|  64.9M|                fin = true;
 1356|  64.9M|            }
 1357|  36.9k|            else
 1358|  36.9k|            {
 1359|  36.9k|                break;
 1360|  36.9k|            }
 1361|  65.0M|            impl.inflate(zs, zlib::Flush::sync, ec);
 1362|  65.0M|            if(impl.check_stop_now(ec))
  ------------------
  |  Branch (1362:16): [True: 386, False: 65.0M]
  ------------------
 1363|    386|                return bytes_written;
 1364|  65.0M|            if (fin && zs.total_out == 0) {
  ------------------
  |  Branch (1364:17): [True: 64.9M, False: 88.4k]
  |  Branch (1364:24): [True: 974, False: 64.9M]
  ------------------
 1365|    974|                impl.do_context_takeover_read(impl.role);
 1366|    974|                impl.rd_done = true;
 1367|    974|                break;
 1368|    974|            }
 1369|  65.0M|            if(impl.rd_msg_max && beast::detail::sum_exceeds(
  ------------------
  |  Branch (1369:16): [True: 65.0M, False: 0]
  |  Branch (1369:35): [True: 19, False: 65.0M]
  ------------------
 1370|  65.0M|                impl.rd_size, zs.total_out, impl.rd_msg_max))
 1371|     19|            {
 1372|     19|                do_fail(close_code::too_big,
 1373|     19|                    error::message_too_big, ec);
 1374|     19|                return bytes_written;
 1375|     19|            }
 1376|  65.0M|            cb.consume(zs.total_out);
 1377|  65.0M|            impl.rd_size += zs.total_out;
 1378|  65.0M|            if (! fin) {
  ------------------
  |  Branch (1378:17): [True: 88.4k, False: 64.9M]
  ------------------
 1379|  88.4k|                impl.rd_remain -= zs.total_in;
 1380|  88.4k|                impl.rd_buf.consume(zs.total_in);
 1381|  88.4k|            }
 1382|  65.0M|            bytes_written += zs.total_out;
 1383|  65.0M|        }
 1384|   343k|        if(impl.rd_op == detail::opcode::text)
  ------------------
  |  Branch (1384:12): [True: 3.66k, False: 340k]
  ------------------
 1385|  3.66k|        {
 1386|       |            // check utf8
 1387|  3.66k|            if(! impl.rd_utf8.write(beast::buffers_prefix(
  ------------------
  |  Branch (1387:16): [True: 75, False: 3.58k]
  |  Branch (1387:16): [True: 76, False: 3.58k]
  ------------------
 1388|  3.66k|                bytes_written, buffers)) || (
 1389|  3.58k|                    impl.rd_done && ! impl.rd_utf8.finish()))
  ------------------
  |  Branch (1389:21): [True: 12, False: 3.57k]
  |  Branch (1389:37): [True: 1, False: 11]
  ------------------
 1390|     76|            {
 1391|       |                // _Fail the WebSocket Connection_
 1392|     76|                do_fail(close_code::bad_payload,
 1393|     76|                    error::bad_frame_payload, ec);
 1394|     76|                return bytes_written;
 1395|     76|            }
 1396|  3.66k|        }
 1397|   343k|    }
 1398|   714k|    return bytes_written;
 1399|   716k|}

_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EEC2IJRNS5_10io_contextENS_4core17basic_string_viewIcEEEEEDpOT_:
   54|  8.21k|    : impl_(boost::make_shared<impl_type>(
   55|  8.21k|        std::forward<Args>(args)...))
   56|  8.21k|{
   57|  8.21k|    BOOST_ASSERT(impl_->rd_buf.max_size() >=
  ------------------
  |  |   66|  8.21k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   58|  8.21k|        max_control_frame_size);
   59|  8.21k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EED2Ev:
   45|  8.21k|{
   46|  8.21k|    if(impl_)
  ------------------
  |  Branch (46:8): [True: 8.21k, False: 0]
  ------------------
   47|  8.21k|        impl_->remove();
   48|  8.21k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE10set_optionENS1_11stream_base9decoratorE:
  164|  8.21k|{
  165|  8.21k|    impl_->decorator_opt = std::move(opt.d_);
  166|  8.21k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE10set_optionERKNS1_18permessage_deflateE:
  204|  8.21k|{
  205|  8.21k|    impl_->set_option_pmd(o);
  206|  8.21k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE10next_layerEv:
   84|  24.6k|{
   85|  24.6k|    return impl_->stream();
   86|  24.6k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE7do_failEtNS_6system10error_codeERSA_:
  354|    905|{
  355|    905|    BOOST_ASSERT(ev);
  ------------------
  |  |   66|    905|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  356|    905|    impl_->change_status(status::closing);
  357|    905|    if(code != close_code::none && ! impl_->wr_close)
  ------------------
  |  Branch (357:8): [True: 905, False: 0]
  |  Branch (357:36): [True: 905, False: 0]
  ------------------
  358|    905|    {
  359|    905|        impl_->wr_close = true;
  360|    905|        detail::frame_buffer fb;
  361|    905|        impl_->template write_close<
  362|    905|            flat_static_buffer_base>(fb, code);
  363|    905|        net::write(impl_->stream(), fb.data(), ec);
  364|    905|        if(impl_->check_stop_now(ec))
  ------------------
  |  Branch (364:12): [True: 0, False: 905]
  ------------------
  365|      0|            return;
  366|    905|    }
  367|    905|    using beast::websocket::teardown;
  368|    905|    teardown(impl_->role, impl_->stream(), ec);
  369|    905|    if(ec == net::error::eof)
  ------------------
  |  Branch (369:8): [True: 0, False: 905]
  ------------------
  370|      0|    {
  371|       |        // Rationale:
  372|       |        // http://stackoverflow.com/questions/25587403/boost-asio-ssl-async-shutdown-always-finishes-with-an-error
  373|      0|        ec = {};
  374|      0|    }
  375|    905|    if(! ec)
  ------------------
  |  Branch (375:8): [True: 905, False: 0]
  ------------------
  376|    905|    {
  377|    905|        BOOST_BEAST_ASSIGN_EC(ec, ev);
  ------------------
  |  |  111|    905|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    905|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    905|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    905|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    905|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  378|    905|    }
  379|    905|    if(ec && ec != error::closed)
  ------------------
  |  Branch (379:8): [True: 905, False: 0]
  |  Branch (379:8): [True: 856, False: 49]
  |  Branch (379:14): [True: 856, False: 49]
  ------------------
  380|    856|        impl_->change_status(status::failed);
  381|     49|    else
  382|     49|        impl_->change_status(status::closed);
  383|    905|    impl_->close();
  384|    905|}
_ZNK5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE15is_message_doneEv:
  117|   714k|{
  118|   714k|    return impl_->rd_done;
  119|   714k|}
_ZNK5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE10got_binaryEv:
  109|  4.64k|{
  110|  4.64k|    return impl_->rd_op == detail::opcode::binary;
  111|  4.64k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE4textEb:
  314|  4.64k|{
  315|  4.64k|    impl_->wr_opcode = value ?
  ------------------
  |  Branch (315:24): [True: 1.76k, False: 2.87k]
  ------------------
  316|  1.76k|        detail::opcode::text :
  317|  4.64k|        detail::opcode::binary;
  318|  4.64k|}

_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeC2IJRNS5_10io_contextENS_4core17basic_string_viewIcEEEEEDpOT_:
  128|  8.21k|        : boost::empty_value<NextLayer>(
  129|  8.21k|            boost::empty_init_t{},
  130|  8.21k|            std::forward<Args>(args)...)
  131|  8.21k|        , detail::service::impl_type(
  132|  8.21k|            this->get_context(
  133|  8.21k|                this->boost::empty_value<NextLayer>::get().get_executor()))
  134|  8.21k|        , timer(this->boost::empty_value<NextLayer>::get().get_executor())
  135|  8.21k|    {
  136|  8.21k|        timeout_opt.handshake_timeout = none();
  137|  8.21k|        timeout_opt.idle_timeout = none();
  138|  8.21k|        timeout_opt.keep_alive_pings = false;
  139|  8.21k|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type11get_contextIS6_EERNS5_17execution_contextERKT_PNSt3__19enable_ifIXsr11is_executorISD_EE5valueEvE4typeE:
  505|  8.21k|    {
  506|  8.21k|        return net::query(ex, net::execution::context);
  507|  8.21k|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type6streamEv:
   51|   389k|    {
   52|   389k|        return this->boost::empty_value<
   53|   389k|            NextLayer>::get();
   54|   389k|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type5resetEv:
  192|  8.21k|    {
  193|  8.21k|        BOOST_ASSERT(status_ != status::open);
  ------------------
  |  |   66|  8.21k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  194|  8.21k|        timer.expires_at(never());
  195|  8.21k|        cr.code = close_code::none;
  196|  8.21k|        rd_remain = 0;
  197|  8.21k|        rd_cont = false;
  198|  8.21k|        rd_done = true;
  199|  8.21k|        rd_buf.consume(rd_buf.size());
  200|  8.21k|        rd_fh.fin = false;
  201|  8.21k|        rd_close = false;
  202|  8.21k|        wr_close = false;
  203|  8.21k|        wr_cont = false;
  204|       |        // These should not be necessary, because all completion
  205|       |        // handlers must be allowed to execute otherwise the
  206|       |        // stream exhibits undefined behavior.
  207|  8.21k|        wr_block.reset();
  208|  8.21k|        rd_block.reset();
  209|       |
  210|       |        // VFALCO Is this needed?
  211|  8.21k|        timer.cancel();
  212|  8.21k|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type13change_statusENS1_11stream_base6statusE:
  381|  6.94k|    {
  382|  6.94k|        switch(new_status)
  383|  6.94k|        {
  384|  5.13k|        case status::handshake:
  ------------------
  |  Branch (384:9): [True: 5.13k, False: 1.81k]
  ------------------
  385|  5.13k|            break;
  386|       |
  387|      0|        case status::open:
  ------------------
  |  Branch (387:9): [True: 0, False: 6.94k]
  ------------------
  388|      0|            break;
  389|       |
  390|    905|        case status::closing:
  ------------------
  |  Branch (390:9): [True: 905, False: 6.03k]
  ------------------
  391|       |            //BOOST_ASSERT(status_ == status::open);
  392|    905|            break;
  393|       |
  394|    856|        case status::failed:
  ------------------
  |  Branch (394:9): [True: 856, False: 6.08k]
  ------------------
  395|    905|        case status::closed:
  ------------------
  |  Branch (395:9): [True: 49, False: 6.89k]
  ------------------
  396|       |            // this->close(); // Is this right?
  397|    905|            break;
  398|       |
  399|      0|        default:
  ------------------
  |  Branch (399:9): [True: 0, False: 6.94k]
  ------------------
  400|      0|            break;
  401|  6.94k|        }
  402|  6.94k|        status_ = new_status;
  403|  6.94k|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type4openENS0_9role_typeE:
  155|  4.64k|    {
  156|       |        // VFALCO TODO analyze and remove dupe code in reset()
  157|  4.64k|        timer.expires_at(never());
  158|  4.64k|        timed_out = false;
  159|  4.64k|        cr.code = close_code::none;
  160|  4.64k|        role = role_;
  161|  4.64k|        status_ = status::open;
  162|  4.64k|        rd_remain = 0;
  163|  4.64k|        rd_cont = false;
  164|  4.64k|        rd_done = true;
  165|       |        // Can't clear this because accept uses it
  166|       |        //rd_buf.reset();
  167|  4.64k|        rd_fh.fin = false;
  168|  4.64k|        rd_close = false;
  169|  4.64k|        wr_close = false;
  170|       |        // These should not be necessary, because all completion
  171|       |        // handlers must be allowed to execute otherwise the
  172|       |        // stream exhibits undefined behavior.
  173|  4.64k|        wr_block.reset();
  174|  4.64k|        rd_block.reset();
  175|       |
  176|  4.64k|        wr_cont = false;
  177|  4.64k|        wr_buf_size = 0;
  178|       |
  179|  4.64k|        this->open_pmd(role);
  180|  4.64k|    }
_ZNK5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type17read_size_hint_dbINS0_17basic_flat_bufferINSt3__19allocatorIcEEEEEEmRT_:
  296|   717k|    {
  297|   717k|        auto const initial_size = (std::min)(
  298|   717k|            +tcp_frame_size,
  299|   717k|            buffer.max_size() - buffer.size());
  300|   717k|        if(initial_size == 0)
  ------------------
  |  Branch (300:12): [True: 0, False: 717k]
  ------------------
  301|      0|            return 1; // buffer is full
  302|   717k|        return this->read_size_hint_pmd(
  303|   717k|            initial_size, rd_done, rd_msg_max, rd_remain, rd_fh);
  304|   717k|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type14check_stop_nowERNS_6system10error_codeE:
  341|  66.8M|    {
  342|       |        // Deliver the timeout to the first caller
  343|  66.8M|        if(timed_out)
  ------------------
  |  Branch (343:12): [True: 0, False: 66.8M]
  ------------------
  344|      0|        {
  345|      0|            timed_out = false;
  346|      0|            BOOST_BEAST_ASSIGN_EC(ec, beast::error::timeout);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  347|      0|            return true;
  348|      0|        }
  349|       |
  350|       |        // If the stream is closed then abort
  351|  66.8M|        if( status_ == status::closed ||
  ------------------
  |  Branch (351:13): [True: 49, False: 66.8M]
  ------------------
  352|  66.8M|            status_ == status::failed)
  ------------------
  |  Branch (352:13): [True: 3.35k, False: 66.8M]
  ------------------
  353|  3.39k|        {
  354|       |            //BOOST_ASSERT(ec_delivered);
  355|  3.39k|            BOOST_BEAST_ASSIGN_EC(ec, net::error::operation_aborted);
  ------------------
  |  |  111|  3.39k|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|  3.39k|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|  3.39k|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|  3.39k|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|  3.39k|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  356|  3.39k|            return true;
  357|  3.39k|        }
  358|       |
  359|       |        // If no error then keep going
  360|  66.8M|        if(! ec)
  ------------------
  |  Branch (360:12): [True: 66.8M, False: 2.49k]
  ------------------
  361|  66.8M|            return false;
  362|       |
  363|       |        // Is this the first error seen?
  364|  2.49k|        if(ec_delivered)
  ------------------
  |  Branch (364:12): [True: 0, False: 2.49k]
  ------------------
  365|      0|        {
  366|       |            // No, so abort
  367|      0|            BOOST_BEAST_ASSIGN_EC(ec, net::error::operation_aborted);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  368|      0|            return true;
  369|      0|        }
  370|       |
  371|       |        // Deliver the error to the completion handler
  372|  2.49k|        ec_delivered = true;
  373|  2.49k|        if(status_ != status::closed)
  ------------------
  |  Branch (373:12): [True: 2.49k, False: 0]
  ------------------
  374|  2.49k|            status_ = status::failed;
  375|  2.49k|        return true;
  376|  2.49k|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type8parse_fhINS0_13static_bufferILm1536EEEEEbRNS1_6detail12frame_headerERT_RNS_6system10error_codeE:
  705|   972k|{
  706|   972k|    if(buffer_bytes(b.data()) < 2)
  ------------------
  |  Branch (706:8): [True: 4.65k, False: 968k]
  ------------------
  707|  4.65k|    {
  708|       |        // need more bytes
  709|  4.65k|        ec = {};
  710|  4.65k|        return false;
  711|  4.65k|    }
  712|   968k|    buffers_suffix<typename
  713|   968k|        DynamicBuffer::const_buffers_type> cb{
  714|   968k|            b.data()};
  715|   968k|    std::size_t need;
  716|   968k|    {
  717|   968k|        std::uint8_t tmp[2];
  718|   968k|        cb.consume(net::buffer_copy(
  719|   968k|            net::buffer(tmp), cb));
  720|   968k|        fh.len = tmp[1] & 0x7f;
  721|   968k|        switch(fh.len)
  722|   968k|        {
  723|  4.60k|            case 126: need = 2; break;
  ------------------
  |  Branch (723:13): [True: 4.60k, False: 963k]
  ------------------
  724|  1.03k|            case 127: need = 8; break;
  ------------------
  |  Branch (724:13): [True: 1.03k, False: 967k]
  ------------------
  725|   962k|            default:
  ------------------
  |  Branch (725:13): [True: 962k, False: 5.64k]
  ------------------
  726|   962k|                need = 0;
  727|   968k|        }
  728|   968k|        fh.mask = (tmp[1] & 0x80) != 0;
  729|   968k|        if(fh.mask)
  ------------------
  |  Branch (729:12): [True: 967k, False: 150]
  ------------------
  730|   967k|            need += 4;
  731|   968k|        if(buffer_bytes(cb) < need)
  ------------------
  |  Branch (731:12): [True: 2.03k, False: 966k]
  ------------------
  732|  2.03k|        {
  733|       |            // need more bytes
  734|  2.03k|            ec = {};
  735|  2.03k|            return false;
  736|  2.03k|        }
  737|   966k|        fh.op   = static_cast<
  738|   966k|            detail::opcode>(tmp[0] & 0x0f);
  739|   966k|        fh.fin  = (tmp[0] & 0x80) != 0;
  740|   966k|        fh.rsv1 = (tmp[0] & 0x40) != 0;
  741|   966k|        fh.rsv2 = (tmp[0] & 0x20) != 0;
  742|   966k|        fh.rsv3 = (tmp[0] & 0x10) != 0;
  743|   966k|    }
  744|      0|    switch(fh.op)
  745|   966k|    {
  746|  2.91k|    case detail::opcode::binary:
  ------------------
  |  Branch (746:5): [True: 2.91k, False: 963k]
  ------------------
  747|  3.95k|    case detail::opcode::text:
  ------------------
  |  Branch (747:5): [True: 1.04k, False: 965k]
  ------------------
  748|  3.95k|        if(rd_cont)
  ------------------
  |  Branch (748:12): [True: 24, False: 3.93k]
  ------------------
  749|     24|        {
  750|       |            // new data frame when continuation expected
  751|     24|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_data_frame);
  ------------------
  |  |  111|     24|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     24|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     24|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     24|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     24|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  752|     24|            return false;
  753|     24|        }
  754|  3.93k|        if(fh.rsv2 || fh.rsv3 ||
  ------------------
  |  Branch (754:12): [True: 4, False: 3.92k]
  |  Branch (754:23): [True: 1, False: 3.92k]
  ------------------
  755|  3.93k|            ! this->rd_deflated(fh.rsv1))
  ------------------
  |  Branch (755:13): [True: 2, False: 3.92k]
  ------------------
  756|      7|        {
  757|       |            // reserved bits not cleared
  758|      7|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_reserved_bits);
  ------------------
  |  |  111|      7|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      7|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      7|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      7|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      7|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  759|      7|            return false;
  760|      7|        }
  761|  3.92k|        break;
  762|       |
  763|   401k|    case detail::opcode::cont:
  ------------------
  |  Branch (763:5): [True: 401k, False: 564k]
  ------------------
  764|   401k|        if(! rd_cont)
  ------------------
  |  Branch (764:12): [True: 7, False: 401k]
  ------------------
  765|      7|        {
  766|       |            // continuation without an active message
  767|      7|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_continuation);
  ------------------
  |  |  111|      7|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      7|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      7|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      7|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      7|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  768|      7|            return false;
  769|      7|        }
  770|   401k|        if(fh.rsv1 || fh.rsv2 || fh.rsv3)
  ------------------
  |  Branch (770:12): [True: 2, False: 401k]
  |  Branch (770:23): [True: 7, False: 401k]
  |  Branch (770:34): [True: 4, False: 401k]
  ------------------
  771|     13|        {
  772|       |            // reserved bits not cleared
  773|     13|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_reserved_bits);
  ------------------
  |  |  111|     13|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     13|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     13|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     13|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     13|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  774|     13|            return false;
  775|     13|        }
  776|   401k|        break;
  777|       |
  778|   560k|    default:
  ------------------
  |  Branch (778:5): [True: 560k, False: 405k]
  ------------------
  779|   560k|        if(detail::is_reserved(fh.op))
  ------------------
  |  Branch (779:12): [True: 61, False: 560k]
  ------------------
  780|     61|        {
  781|       |            // reserved opcode
  782|     61|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_opcode);
  ------------------
  |  |  111|     61|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     61|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     61|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     61|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     61|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  783|     61|            return false;
  784|     61|        }
  785|   560k|        if(! fh.fin)
  ------------------
  |  Branch (785:12): [True: 10, False: 560k]
  ------------------
  786|     10|        {
  787|       |            // fragmented control message
  788|     10|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_control_fragment);
  ------------------
  |  |  111|     10|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     10|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     10|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     10|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     10|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  789|     10|            return false;
  790|     10|        }
  791|   560k|        if(fh.len > 125)
  ------------------
  |  Branch (791:12): [True: 1, False: 560k]
  ------------------
  792|      1|        {
  793|       |            // invalid length for control message
  794|      1|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_control_size);
  ------------------
  |  |  111|      1|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      1|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      1|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      1|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      1|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  795|      1|            return false;
  796|      1|        }
  797|   560k|        if(fh.rsv1 || fh.rsv2 || fh.rsv3)
  ------------------
  |  Branch (797:12): [True: 5, False: 560k]
  |  Branch (797:23): [True: 4, False: 560k]
  |  Branch (797:34): [True: 1, False: 560k]
  ------------------
  798|     10|        {
  799|       |            // reserved bits not cleared
  800|     10|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_reserved_bits);
  ------------------
  |  |  111|     10|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     10|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     10|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     10|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     10|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  801|     10|            return false;
  802|     10|        }
  803|   560k|        break;
  804|   966k|    }
  805|   965k|    if(role == role_type::server && ! fh.mask)
  ------------------
  |  Branch (805:8): [True: 965k, False: 0]
  |  Branch (805:37): [True: 54, False: 965k]
  ------------------
  806|     54|    {
  807|       |        // unmasked frame from client
  808|     54|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_unmasked_frame);
  ------------------
  |  |  111|     54|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     54|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     54|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     54|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     54|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  809|     54|        return false;
  810|     54|    }
  811|   965k|    if(role == role_type::client && fh.mask)
  ------------------
  |  Branch (811:8): [True: 0, False: 965k]
  |  Branch (811:37): [True: 0, False: 0]
  ------------------
  812|      0|    {
  813|       |        // masked frame from server
  814|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::bad_masked_frame);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  815|      0|        return false;
  816|      0|    }
  817|   965k|    if(detail::is_control(fh.op) &&
  ------------------
  |  Branch (817:8): [True: 560k, False: 405k]
  ------------------
  818|   965k|        buffer_bytes(cb) < need + fh.len)
  ------------------
  |  Branch (818:9): [True: 2.42k, False: 557k]
  ------------------
  819|  2.42k|    {
  820|       |        // Make the entire control frame payload
  821|       |        // get read in before we return `true`
  822|  2.42k|        return false;
  823|  2.42k|    }
  824|   963k|    switch(fh.len)
  ------------------
  |  Branch (824:12): [True: 957k, False: 5.52k]
  ------------------
  825|   963k|    {
  826|  4.51k|    case 126:
  ------------------
  |  Branch (826:5): [True: 4.51k, False: 958k]
  ------------------
  827|  4.51k|    {
  828|       |
  829|  4.51k|        std::uint16_t len_be;
  830|  4.51k|        BOOST_ASSERT(buffer_bytes(cb) >= sizeof(len_be));
  ------------------
  |  |   66|  4.51k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  831|  4.51k|        cb.consume(net::buffer_copy(
  832|  4.51k|            net::mutable_buffer(&len_be, sizeof(len_be)), cb));
  833|  4.51k|        fh.len = endian::big_to_native(len_be);
  834|  4.51k|        if(fh.len < 126)
  ------------------
  |  Branch (834:12): [True: 6, False: 4.51k]
  ------------------
  835|      6|        {
  836|       |            // length not canonical
  837|      6|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_size);
  ------------------
  |  |  111|      6|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      6|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      6|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      6|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      6|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  838|      6|            return false;
  839|      6|        }
  840|  4.51k|        break;
  841|  4.51k|    }
  842|  4.51k|    case 127:
  ------------------
  |  Branch (842:5): [True: 1.01k, False: 962k]
  ------------------
  843|  1.01k|    {
  844|  1.01k|        std::uint64_t len_be;
  845|  1.01k|        BOOST_ASSERT(buffer_bytes(cb) >= sizeof(len_be));
  ------------------
  |  |   66|  1.01k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  846|  1.01k|        cb.consume(net::buffer_copy(
  847|  1.01k|            net::mutable_buffer(&len_be, sizeof(len_be)), cb));
  848|  1.01k|        fh.len = endian::big_to_native(len_be);
  849|  1.01k|        if(fh.len < 65536)
  ------------------
  |  Branch (849:12): [True: 16, False: 995]
  ------------------
  850|     16|        {
  851|       |            // length not canonical
  852|     16|            BOOST_BEAST_ASSIGN_EC(ec, error::bad_size);
  ------------------
  |  |  111|     16|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     16|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     16|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     16|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     16|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  853|     16|            return false;
  854|     16|        }
  855|    995|        break;
  856|  1.01k|    }
  857|   963k|    }
  858|   963k|    if(fh.mask)
  ------------------
  |  Branch (858:8): [True: 963k, False: 0]
  ------------------
  859|   963k|    {
  860|   963k|        std::uint32_t key_le;
  861|   963k|        BOOST_ASSERT(buffer_bytes(cb) >= sizeof(key_le));
  ------------------
  |  |   66|   963k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  862|   963k|        cb.consume(net::buffer_copy(
  863|   963k|            net::mutable_buffer(&key_le, sizeof(key_le)), cb));
  864|   963k|        fh.key = endian::little_to_native(key_le);
  865|   963k|        detail::prepare_key(rd_key, fh.key);
  866|   963k|    }
  867|      0|    else
  868|      0|    {
  869|       |        // initialize this otherwise operator== breaks
  870|      0|        fh.key = 0;
  871|      0|    }
  872|   963k|    if(! detail::is_control(fh.op))
  ------------------
  |  Branch (872:8): [True: 405k, False: 557k]
  ------------------
  873|   405k|    {
  874|   405k|        if(fh.op != detail::opcode::cont)
  ------------------
  |  Branch (874:12): [True: 3.89k, False: 401k]
  ------------------
  875|  3.89k|        {
  876|  3.89k|            rd_size = 0;
  877|  3.89k|            rd_op = fh.op;
  878|  3.89k|        }
  879|   401k|        else
  880|   401k|        {
  881|   401k|            if(rd_size > (std::numeric_limits<
  ------------------
  |  Branch (881:16): [True: 3, False: 401k]
  ------------------
  882|   401k|                std::uint64_t>::max)() - fh.len)
  883|      3|            {
  884|       |                // message size exceeds configured limit
  885|      3|                BOOST_BEAST_ASSIGN_EC(ec, error::message_too_big);
  ------------------
  |  |  111|      3|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      3|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      3|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      3|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      3|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  886|      3|                return false;
  887|      3|            }
  888|   401k|        }
  889|       |        // The final size of a deflated frame is unknown. In certain cases,
  890|       |        // post-inflation, it might shrink and become <= rd_msg_max.
  891|       |        // Therefore, we will verify the size during the inflation process.
  892|   405k|        if(! this->rd_deflated())
  ------------------
  |  Branch (892:12): [True: 366k, False: 39.2k]
  ------------------
  893|   366k|        {
  894|   366k|            if(rd_msg_max && beast::detail::sum_exceeds(
  ------------------
  |  Branch (894:16): [True: 366k, False: 0]
  |  Branch (894:30): [True: 195, False: 366k]
  ------------------
  895|   366k|                rd_size, fh.len, rd_msg_max))
  896|    195|            {
  897|       |                // message size exceeds configured limit
  898|    195|                BOOST_BEAST_ASSIGN_EC(ec, error::message_too_big);
  ------------------
  |  |  111|    195|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    195|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    195|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    195|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    195|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  899|    195|                return false;
  900|    195|            }
  901|   366k|        }
  902|   405k|        rd_cont = ! fh.fin;
  903|   405k|        rd_remain = fh.len;
  904|   405k|    }
  905|   963k|    b.consume(b.size() - buffer_bytes(cb));
  906|   963k|    ec = {};
  907|   963k|    return true;
  908|   963k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type11write_closeINS0_23flat_static_buffer_baseEEEvRT_RKNS1_12close_reasonE:
  947|    905|{
  948|    905|    using namespace boost::endian;
  949|    905|    detail::frame_header fh;
  950|    905|    fh.op = detail::opcode::close;
  951|    905|    fh.fin = true;
  952|    905|    fh.rsv1 = false;
  953|    905|    fh.rsv2 = false;
  954|    905|    fh.rsv3 = false;
  955|    905|    fh.len = cr.code == close_code::none ?
  ------------------
  |  Branch (955:14): [True: 0, False: 905]
  ------------------
  956|    905|        0 : 2 + cr.reason.size();
  957|    905|    if(role == role_type::client)
  ------------------
  |  Branch (957:8): [True: 0, False: 905]
  ------------------
  958|      0|    {
  959|      0|        fh.mask = true;
  960|      0|        fh.key = create_mask();
  961|      0|    }
  962|    905|    else
  963|    905|    {
  964|    905|        fh.mask = false;
  965|    905|    }
  966|    905|    detail::write(db, fh);
  967|    905|    if(cr.code != close_code::none)
  ------------------
  |  Branch (967:8): [True: 905, False: 0]
  ------------------
  968|    905|    {
  969|    905|        detail::prepared_key key;
  970|    905|        if(fh.mask)
  ------------------
  |  Branch (970:12): [True: 0, False: 905]
  ------------------
  971|      0|            detail::prepare_key(key, fh.key);
  972|    905|        {
  973|    905|            auto code_be = endian::native_to_big<std::uint16_t>(cr.code);
  974|    905|            auto mb = db.prepare(2);
  975|    905|            net::buffer_copy(mb,
  976|    905|                net::const_buffer(&code_be, sizeof(code_be)));
  977|    905|            if(fh.mask)
  ------------------
  |  Branch (977:16): [True: 0, False: 905]
  ------------------
  978|      0|                detail::mask_inplace(mb, key);
  979|    905|            db.commit(2);
  980|    905|        }
  981|    905|        if(! cr.reason.empty())
  ------------------
  |  Branch (981:12): [True: 0, False: 905]
  ------------------
  982|      0|        {
  983|      0|            auto mb = db.prepare(cr.reason.size());
  984|      0|            net::buffer_copy(mb,
  985|      0|                net::const_buffer(
  986|      0|                    cr.reason.data(), cr.reason.size()));
  987|      0|            if(fh.mask)
  ------------------
  |  Branch (987:16): [True: 0, False: 0]
  ------------------
  988|      0|                detail::mask_inplace(mb, key);
  989|      0|            db.commit(cr.reason.size());
  990|      0|        }
  991|    905|    }
  992|    905|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type5closeEv:
  184|    905|    {
  185|    905|        timer.cancel();
  186|    905|        wr_buf.reset();
  187|    905|        this->close_pmd();
  188|    905|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type10write_pingINS0_23flat_static_buffer_baseEEEvRT_NS1_6detail6opcodeERKNS_14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEEE:
  916|   320k|{
  917|   320k|    detail::frame_header fh;
  918|   320k|    fh.op = code;
  919|   320k|    fh.fin = true;
  920|   320k|    fh.rsv1 = false;
  921|   320k|    fh.rsv2 = false;
  922|   320k|    fh.rsv3 = false;
  923|   320k|    fh.len = data.size();
  924|   320k|    fh.mask = role == role_type::client;
  925|   320k|    if(fh.mask)
  ------------------
  |  Branch (925:8): [True: 0, False: 320k]
  ------------------
  926|      0|        fh.key = create_mask();
  927|   320k|    detail::write(db, fh);
  928|   320k|    if(data.empty())
  ------------------
  |  Branch (928:8): [True: 1.55k, False: 318k]
  ------------------
  929|  1.55k|        return;
  930|   318k|    detail::prepared_key key;
  931|   318k|    if(fh.mask)
  ------------------
  |  Branch (931:8): [True: 0, False: 318k]
  ------------------
  932|      0|        detail::prepare_key(key, fh.key);
  933|   318k|    auto mb = db.prepare(data.size());
  934|   318k|    net::buffer_copy(mb,
  935|   318k|        net::const_buffer(
  936|   318k|            data.data(), data.size()));
  937|   318k|    if(fh.mask)
  ------------------
  |  Branch (937:8): [True: 0, False: 318k]
  ------------------
  938|      0|        detail::mask_inplace(mb, key);
  939|   318k|    db.commit(data.size());
  940|   318k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_type9begin_msgEm:
  226|  1.24k|    {
  227|  1.24k|        wr_frag = wr_frag_opt;
  228|  1.24k|        wr_compress =
  229|  1.24k|            this->pmd_enabled() &&
  ------------------
  |  Branch (229:13): [True: 1.13k, False: 105]
  ------------------
  230|  1.24k|            wr_compress_opt &&
  ------------------
  |  Branch (230:13): [True: 1.13k, False: 0]
  ------------------
  231|  1.24k|            this->should_compress(n_bytes);
  ------------------
  |  Branch (231:13): [True: 1.13k, False: 0]
  ------------------
  232|       |
  233|       |        // Maintain the write buffer
  234|  1.24k|        if( this->pmd_enabled() ||
  ------------------
  |  Branch (234:13): [True: 1.13k, False: 105]
  ------------------
  235|  1.24k|            role == role_type::client)
  ------------------
  |  Branch (235:13): [True: 0, False: 105]
  ------------------
  236|  1.13k|        {
  237|  1.13k|            if(! wr_buf ||
  ------------------
  |  Branch (237:16): [True: 1.13k, False: 0]
  ------------------
  238|  1.13k|                wr_buf_size != wr_buf_opt)
  ------------------
  |  Branch (238:17): [True: 0, False: 0]
  ------------------
  239|  1.13k|            {
  240|  1.13k|                wr_buf_size = wr_buf_opt;
  241|  1.13k|                wr_buf = boost::make_unique_noinit<
  242|  1.13k|                    std::uint8_t[]>(wr_buf_size);
  243|  1.13k|            }
  244|  1.13k|        }
  245|    105|        else
  246|    105|        {
  247|    105|            wr_buf_size = wr_buf_opt;
  248|    105|            wr_buf.reset();
  249|    105|        }
  250|       |
  251|       |        //
  252|  1.24k|    }

_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE5writeINS5_14mutable_bufferEEEmRKT_RNS_6system10error_codeE:
  879|  4.64k|{
  880|  4.64k|    static_assert(is_sync_stream<next_layer_type>::value,
  881|  4.64k|        "SyncStream type requirements not met");
  882|  4.64k|    static_assert(net::is_const_buffer_sequence<
  883|  4.64k|        ConstBufferSequence>::value,
  884|  4.64k|            "ConstBufferSequence type requirements not met");
  885|  4.64k|    return write_some(true, buffers, ec);
  886|  4.64k|}
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE10write_someINS5_14mutable_bufferEEEmbRKT_RNS_6system10error_codeE:
  627|  4.64k|{
  628|  4.64k|    static_assert(is_sync_stream<next_layer_type>::value,
  629|  4.64k|        "SyncStream type requirements not met");
  630|  4.64k|    static_assert(net::is_const_buffer_sequence<
  631|  4.64k|        ConstBufferSequence>::value,
  632|  4.64k|            "ConstBufferSequence type requirements not met");
  633|  4.64k|    using beast::detail::clamp;
  634|  4.64k|    auto& impl = *impl_;
  635|  4.64k|    std::size_t bytes_transferred = 0;
  636|  4.64k|    ec = {};
  637|  4.64k|    if(impl.check_stop_now(ec))
  ------------------
  |  Branch (637:8): [True: 3.39k, False: 1.24k]
  ------------------
  638|  3.39k|        return bytes_transferred;
  639|  1.24k|    detail::frame_header fh;
  640|  1.24k|    if(! impl.wr_cont)
  ------------------
  |  Branch (640:8): [True: 1.24k, False: 0]
  ------------------
  641|  1.24k|    {
  642|  1.24k|        impl.begin_msg(beast::buffer_bytes(buffers));
  643|  1.24k|        fh.rsv1 = impl.wr_compress;
  644|  1.24k|    }
  645|      0|    else
  646|      0|    {
  647|      0|        fh.rsv1 = false;
  648|      0|    }
  649|  1.24k|    fh.rsv2 = false;
  650|  1.24k|    fh.rsv3 = false;
  651|  1.24k|    fh.op = impl.wr_cont ?
  ------------------
  |  Branch (651:13): [True: 0, False: 1.24k]
  ------------------
  652|  1.24k|        detail::opcode::cont : impl.wr_opcode;
  653|  1.24k|    fh.mask = impl.role == role_type::client;
  654|  1.24k|    auto remain = beast::buffer_bytes(buffers);
  655|  1.24k|    if(impl.wr_compress)
  ------------------
  |  Branch (655:8): [True: 1.13k, False: 105]
  ------------------
  656|  1.13k|    {
  657|       |
  658|  1.13k|        buffers_suffix<
  659|  1.13k|            ConstBufferSequence> cb(buffers);
  660|  1.13k|        for(;;)
  661|  13.3k|        {
  662|  13.3k|            auto b = net::buffer(
  663|  13.3k|                impl.wr_buf.get(), impl.wr_buf_size);
  664|  13.3k|            auto const more = impl.deflate(
  665|  13.3k|                b, cb, fin, bytes_transferred, ec);
  666|  13.3k|            if(impl.check_stop_now(ec))
  ------------------
  |  Branch (666:16): [True: 0, False: 13.3k]
  ------------------
  667|      0|                return bytes_transferred;
  668|  13.3k|            auto const n = beast::buffer_bytes(b);
  669|  13.3k|            if(n == 0)
  ------------------
  |  Branch (669:16): [True: 0, False: 13.3k]
  ------------------
  670|      0|            {
  671|       |                // The input was consumed, but there
  672|       |                // is no output due to compression
  673|       |                // latency.
  674|      0|                BOOST_ASSERT(! fin);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  675|      0|                BOOST_ASSERT(beast::buffer_bytes(cb) == 0);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  676|      0|                fh.fin = false;
  677|      0|                break;
  678|      0|            }
  679|  13.3k|            if(fh.mask)
  ------------------
  |  Branch (679:16): [True: 0, False: 13.3k]
  ------------------
  680|      0|            {
  681|      0|                fh.key = this->impl_->create_mask();
  682|      0|                detail::prepared_key key;
  683|      0|                detail::prepare_key(key, fh.key);
  684|      0|                detail::mask_inplace(b, key);
  685|      0|            }
  686|  13.3k|            fh.fin = ! more;
  687|  13.3k|            fh.len = n;
  688|  13.3k|            detail::fh_buffer fh_buf;
  689|  13.3k|            detail::write<
  690|  13.3k|                flat_static_buffer_base>(fh_buf, fh);
  691|  13.3k|            impl.wr_cont = ! fin;
  692|  13.3k|            net::write(impl.stream(),
  693|  13.3k|                buffers_cat(fh_buf.data(), b), ec);
  694|  13.3k|            if(impl.check_stop_now(ec))
  ------------------
  |  Branch (694:16): [True: 0, False: 13.3k]
  ------------------
  695|      0|                return bytes_transferred;
  696|  13.3k|            if(! more)
  ------------------
  |  Branch (696:16): [True: 1.13k, False: 12.1k]
  ------------------
  697|  1.13k|                break;
  698|  12.1k|            fh.op = detail::opcode::cont;
  699|  12.1k|            fh.rsv1 = false;
  700|  12.1k|        }
  701|  1.13k|        if(fh.fin)
  ------------------
  |  Branch (701:12): [True: 1.13k, False: 0]
  ------------------
  702|  1.13k|            impl.do_context_takeover_write(impl.role);
  703|  1.13k|    }
  704|    105|    else if(! fh.mask)
  ------------------
  |  Branch (704:13): [True: 105, False: 0]
  ------------------
  705|    105|    {
  706|    105|        if(! impl.wr_frag)
  ------------------
  |  Branch (706:12): [True: 0, False: 105]
  ------------------
  707|      0|        {
  708|       |            // no mask, no autofrag
  709|      0|            fh.fin = fin;
  710|      0|            fh.len = remain;
  711|      0|            detail::fh_buffer fh_buf;
  712|      0|            detail::write<
  713|      0|                flat_static_buffer_base>(fh_buf, fh);
  714|      0|            impl.wr_cont = ! fin;
  715|      0|            net::write(impl.stream(),
  716|      0|                buffers_cat(fh_buf.data(), buffers), ec);
  717|      0|            if(impl.check_stop_now(ec))
  ------------------
  |  Branch (717:16): [True: 0, False: 0]
  ------------------
  718|      0|                return bytes_transferred;
  719|      0|            bytes_transferred += remain;
  720|      0|        }
  721|    105|        else
  722|    105|        {
  723|       |            // no mask, autofrag
  724|    105|            BOOST_ASSERT(impl.wr_buf_size != 0);
  ------------------
  |  |   66|    105|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  725|    105|            buffers_suffix<
  726|    105|                ConstBufferSequence> cb{buffers};
  727|    105|            for(;;)
  728|  1.96k|            {
  729|  1.96k|                auto const n = clamp(remain, impl.wr_buf_size);
  730|  1.96k|                remain -= n;
  731|  1.96k|                fh.len = n;
  732|  1.96k|                fh.fin = fin ? remain == 0 : false;
  ------------------
  |  Branch (732:26): [True: 1.96k, False: 0]
  ------------------
  733|  1.96k|                detail::fh_buffer fh_buf;
  734|  1.96k|                detail::write<
  735|  1.96k|                    flat_static_buffer_base>(fh_buf, fh);
  736|  1.96k|                impl.wr_cont = ! fin;
  737|  1.96k|                net::write(impl.stream(),
  738|  1.96k|                    beast::buffers_cat(fh_buf.data(),
  739|  1.96k|                        beast::buffers_prefix(n, cb)), ec);
  740|  1.96k|                bytes_transferred += n;
  741|  1.96k|                if(impl.check_stop_now(ec))
  ------------------
  |  Branch (741:20): [True: 0, False: 1.96k]
  ------------------
  742|      0|                    return bytes_transferred;
  743|  1.96k|                if(remain == 0)
  ------------------
  |  Branch (743:20): [True: 105, False: 1.85k]
  ------------------
  744|    105|                    break;
  745|  1.85k|                fh.op = detail::opcode::cont;
  746|  1.85k|                cb.consume(n);
  747|  1.85k|            }
  748|    105|        }
  749|    105|    }
  750|      0|    else if(! impl.wr_frag)
  ------------------
  |  Branch (750:13): [True: 0, False: 0]
  ------------------
  751|      0|    {
  752|       |        // mask, no autofrag
  753|      0|        fh.fin = fin;
  754|      0|        fh.len = remain;
  755|      0|        fh.key = this->impl_->create_mask();
  756|      0|        detail::prepared_key key;
  757|      0|        detail::prepare_key(key, fh.key);
  758|      0|        detail::fh_buffer fh_buf;
  759|      0|        detail::write<
  760|      0|            flat_static_buffer_base>(fh_buf, fh);
  761|      0|        buffers_suffix<
  762|      0|            ConstBufferSequence> cb{buffers};
  763|      0|        {
  764|      0|            auto const n =
  765|      0|                clamp(remain, impl.wr_buf_size);
  766|      0|            auto const b =
  767|      0|                net::buffer(impl.wr_buf.get(), n);
  768|      0|            net::buffer_copy(b, cb);
  769|      0|            cb.consume(n);
  770|      0|            remain -= n;
  771|      0|            detail::mask_inplace(b, key);
  772|      0|            impl.wr_cont = ! fin;
  773|      0|            net::write(impl.stream(),
  774|      0|                buffers_cat(fh_buf.data(), b), ec);
  775|      0|            bytes_transferred += n;
  776|      0|            if(impl.check_stop_now(ec))
  ------------------
  |  Branch (776:16): [True: 0, False: 0]
  ------------------
  777|      0|                return bytes_transferred;
  778|      0|        }
  779|      0|        while(remain > 0)
  ------------------
  |  Branch (779:15): [True: 0, False: 0]
  ------------------
  780|      0|        {
  781|      0|            auto const n =
  782|      0|                clamp(remain, impl.wr_buf_size);
  783|      0|            auto const b =
  784|      0|                net::buffer(impl.wr_buf.get(), n);
  785|      0|            net::buffer_copy(b, cb);
  786|      0|            cb.consume(n);
  787|      0|            remain -= n;
  788|      0|            detail::mask_inplace(b, key);
  789|      0|            net::write(impl.stream(), b, ec);
  790|      0|            bytes_transferred += n;
  791|      0|            if(impl.check_stop_now(ec))
  ------------------
  |  Branch (791:16): [True: 0, False: 0]
  ------------------
  792|      0|                return bytes_transferred;
  793|      0|        }
  794|      0|    }
  795|      0|    else
  796|      0|    {
  797|       |        // mask, autofrag
  798|      0|        BOOST_ASSERT(impl.wr_buf_size != 0);
  ------------------
  |  |   66|      0|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  799|      0|        buffers_suffix<
  800|      0|            ConstBufferSequence> cb(buffers);
  801|      0|        for(;;)
  802|      0|        {
  803|      0|            fh.key = this->impl_->create_mask();
  804|      0|            detail::prepared_key key;
  805|      0|            detail::prepare_key(key, fh.key);
  806|      0|            auto const n =
  807|      0|                clamp(remain, impl.wr_buf_size);
  808|      0|            auto const b =
  809|      0|                net::buffer(impl.wr_buf.get(), n);
  810|      0|            net::buffer_copy(b, cb);
  811|      0|            detail::mask_inplace(b, key);
  812|      0|            fh.len = n;
  813|      0|            remain -= n;
  814|      0|            fh.fin = fin ? remain == 0 : false;
  ------------------
  |  Branch (814:22): [True: 0, False: 0]
  ------------------
  815|      0|            impl.wr_cont = ! fh.fin;
  816|      0|            detail::fh_buffer fh_buf;
  817|      0|            detail::write<
  818|      0|                flat_static_buffer_base>(fh_buf, fh);
  819|      0|            net::write(impl.stream(),
  820|      0|                buffers_cat(fh_buf.data(), b), ec);
  821|      0|            bytes_transferred += n;
  822|      0|            if(impl.check_stop_now(ec))
  ------------------
  |  Branch (822:16): [True: 0, False: 0]
  ------------------
  823|      0|                return bytes_transferred;
  824|      0|            if(remain == 0)
  ------------------
  |  Branch (824:16): [True: 0, False: 0]
  ------------------
  825|      0|                break;
  826|      0|            fh.op = detail::opcode::cont;
  827|      0|            cb.consume(n);
  828|      0|        }
  829|      0|    }
  830|  1.24k|    return bytes_transferred;
  831|  1.24k|}

_ZN5boost5beast9websocket12close_reasonC2Ev:
  181|  8.36k|    close_reason() = default;
_ZN5boost5beast9websocket12close_reasonC2Et:
  185|    905|        : code(code_)
  186|    905|    {
  187|    905|    }

_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE5neverEv:
  179|  12.8k|    {
  180|  12.8k|        return (time_point::max)();
  181|  12.8k|    }
_ZN5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE20default_decorate_resERNS0_4http7messageILb0ENS9_17basic_string_bodyIcNSt3__111char_traitsIcEENSC_9allocatorIcEEEENS9_12basic_fieldsISG_EEEE:
 2886|  5.13k|    static void default_decorate_res(response_type&) {}
_ZNK5boost5beast9websocket6streamINS0_4test12basic_streamINS_4asio15any_io_executorEEELb1EE8got_textEv:
  329|  4.64k|    {
  330|  4.64k|        return ! got_binary();
  331|  4.64k|    }

_ZN5boost5beast9websocket11stream_base4noneEv:
   47|  16.4k|    {
   48|  16.4k|        return (duration::max)();
   49|  16.4k|    }
websocket_server.cpp:_ZN5boost5beast9websocket11stream_base9decoratorC2IZ22LLVMFuzzerTestOneInputE3$_0vEEOT_:
   80|  8.21k|            : d_(std::forward<Decorator>(f))
   81|  8.21k|        {
   82|  8.21k|        }

_ZN5boost5beast4zlib14deflate_streamC2Ev:
   81|  2.56k|    {
   82|  2.56k|        reset(6, 15, def_mem_level, Strategy::normal);
   83|  2.56k|    }
_ZN5boost5beast4zlib14deflate_stream5resetEiiiNS1_8StrategyE:
  113|  5.13k|    {
  114|  5.13k|        doReset(level, windowBits, memLevel, strategy);
  115|  5.13k|    }
_ZN5boost5beast4zlib14deflate_stream5writeERNS1_8z_paramsENS1_5FlushERNS_6system10error_codeE:
  298|  15.4k|    {
  299|  15.4k|        doWrite(zs, flush, ec);
  300|  15.4k|    }

_ZN5boost5beast4zlib6detail9bitstream5flushEv:
   76|  5.05k|    {
   77|  5.05k|        n_ = 0;
   78|  5.05k|        v_ = 0;
   79|  5.05k|    }
_ZNK5boost5beast4zlib6detail9bitstream4sizeEv:
   60|  74.9M|    {
   61|  74.9M|        return n_;
   62|  74.9M|    }
_ZN5boost5beast4zlib6detail9bitstream10flush_byteEv:
   84|  4.72k|    {
   85|  4.72k|        drop(n_ % 8);
   86|  4.72k|    }
_ZN5boost5beast4zlib6detail9bitstream4fillIPKhEEbmRT_RKS7_:
  130|   410M|{
  131|   591M|    while(n_ < n)
  ------------------
  |  Branch (131:11): [True: 226M, False: 365M]
  ------------------
  132|   226M|    {
  133|   226M|        if(first == last)
  ------------------
  |  Branch (133:12): [True: 45.1M, False: 181M]
  ------------------
  134|  45.1M|            return false;
  135|   181M|        v_ += static_cast<value_type>(*first++) << n_;
  136|   181M|        n_ += 8;
  137|   181M|    }
  138|   365M|    return true;
  139|   410M|}
_ZN5boost5beast4zlib6detail9bitstream4readIhEEvRT_m:
  176|  24.2k|{
  177|  24.2k|    BOOST_ASSERT(n < sizeof(v_)*8);
  ------------------
  |  |   66|  24.2k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  178|  24.2k|    BOOST_ASSERT(n <= n_);
  ------------------
  |  |   66|  24.2k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  179|  24.2k|    value = static_cast<Unsigned>(
  180|  24.2k|        v_ & ((1ULL << n) - 1));
  181|  24.2k|    v_ >>= n;
  182|  24.2k|    n_ -= static_cast<unsigned>(n);
  183|  24.2k|}
_ZN5boost5beast4zlib6detail9bitstream4peekIjEEvRT_m:
  165|  2.53k|{
  166|  2.53k|    BOOST_ASSERT(n <= sizeof(value)*8);
  ------------------
  |  |   66|  2.53k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  167|  2.53k|    BOOST_ASSERT(n <= n_);
  ------------------
  |  |   66|  2.53k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  168|  2.53k|    value = static_cast<Unsigned>(
  169|  2.53k|        v_ & ((1ULL << n) - 1));
  170|  2.53k|}
_ZN5boost5beast4zlib6detail9bitstream4readIjEEvRT_m:
  176|  7.51k|{
  177|  7.51k|    BOOST_ASSERT(n < sizeof(v_)*8);
  ------------------
  |  |   66|  7.51k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  178|  7.51k|    BOOST_ASSERT(n <= n_);
  ------------------
  |  |   66|  7.51k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  179|  7.51k|    value = static_cast<Unsigned>(
  180|  7.51k|        v_ & ((1ULL << n) - 1));
  181|  7.51k|    v_ >>= n;
  182|  7.51k|    n_ -= static_cast<unsigned>(n);
  183|  7.51k|}
_ZN5boost5beast4zlib6detail9bitstream4readItEEvRT_m:
  176|   133k|{
  177|   133k|    BOOST_ASSERT(n < sizeof(v_)*8);
  ------------------
  |  |   66|   133k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  178|   133k|    BOOST_ASSERT(n <= n_);
  ------------------
  |  |   66|   133k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  179|   133k|    value = static_cast<Unsigned>(
  180|   133k|        v_ & ((1ULL << n) - 1));
  181|   133k|    v_ >>= n;
  182|   133k|    n_ -= static_cast<unsigned>(n);
  183|   133k|}
_ZN5boost5beast4zlib6detail9bitstream4peekItEEvRT_m:
  165|   365M|{
  166|   365M|    BOOST_ASSERT(n <= sizeof(value)*8);
  ------------------
  |  |   66|   365M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  167|   365M|    BOOST_ASSERT(n <= n_);
  ------------------
  |  |   66|   365M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  168|   365M|    value = static_cast<Unsigned>(
  169|   365M|        v_ & ((1ULL << n) - 1));
  170|   365M|}
_ZN5boost5beast4zlib6detail9bitstream4dropEm:
   67|   329M|    {
   68|   329M|        BOOST_ASSERT(n <= n_);
  ------------------
  |  |   66|   329M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
   69|   329M|        n_ -= static_cast<unsigned>(n);
   70|   329M|        v_ >>= n;
   71|   329M|    }
_ZN5boost5beast4zlib6detail9bitstream7fill_16IPKhEEvRT_:
  154|  4.21M|{
  155|  4.21M|    v_ += static_cast<value_type>(*it++) << n_;
  156|  4.21M|    n_ += 8;
  157|  4.21M|    v_ += static_cast<value_type>(*it++) << n_;
  158|  4.21M|    n_ += 8;
  159|  4.21M|}
_ZNK5boost5beast4zlib6detail9bitstream9peek_fastEv:
  111|  10.1M|    {
  112|  10.1M|        return v_;
  113|  10.1M|    }
_ZN5boost5beast4zlib6detail9bitstream6fill_8IPKhEEvRT_:
  145|  1.34k|{
  146|  1.34k|    v_ += static_cast<value_type>(*it++) << n_;
  147|  1.34k|    n_ += 8;
  148|  1.34k|}
_ZN5boost5beast4zlib6detail9bitstream6rewindIPKhEEvRT_:
  189|  74.4k|{
  190|  74.4k|    auto len = n_ >> 3;
  191|  74.4k|    it = std::prev(it, len);
  192|  74.4k|    n_ &= 7;
  193|  74.4k|    v_ &= (1U << n_) - 1;
  194|  74.4k|}

_ZN5boost5beast4zlib6detail14deflate_streamC2Ev:
  423|  2.56k|        : lut_(get_lut())
  424|  2.56k|    {
  425|  2.56k|    }
_ZN5boost5beast4zlib6detail14deflate_stream10bi_reverseItEET_S5_j:
  700|  2.12M|{
  701|  2.12M|    BOOST_STATIC_ASSERT(std::is_unsigned<Unsigned>::value);
  ------------------
  |  |   71|  2.12M|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  702|  2.12M|    BOOST_ASSERT(len <= 8 * sizeof(unsigned));
  ------------------
  |  |   66|  2.12M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  703|  2.12M|    Unsigned res = 0;
  704|  2.12M|    do
  705|  15.1M|    {
  706|  15.1M|        res |= code & 1;
  707|  15.1M|        code >>= 1;
  708|  15.1M|        res <<= 1;
  709|  15.1M|    }
  710|  15.1M|    while(--len > 0);
  ------------------
  |  Branch (710:11): [True: 12.9M, False: 2.12M]
  ------------------
  711|  2.12M|    return res >> 1;
  712|  2.12M|}
_ZN5boost5beast4zlib6detail14deflate_stream10bi_reverseIjEET_S5_j:
  700|     30|{
  701|     30|    BOOST_STATIC_ASSERT(std::is_unsigned<Unsigned>::value);
  ------------------
  |  |   71|     30|#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  702|     30|    BOOST_ASSERT(len <= 8 * sizeof(unsigned));
  ------------------
  |  |   66|     30|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  703|     30|    Unsigned res = 0;
  704|     30|    do
  705|    150|    {
  706|    150|        res |= code & 1;
  707|    150|        code >>= 1;
  708|    150|        res <<= 1;
  709|    150|    }
  710|    150|    while(--len > 0);
  ------------------
  |  Branch (710:11): [True: 120, False: 30]
  ------------------
  711|     30|    return res >> 1;
  712|     30|}
_ZN5boost5beast4zlib6detail14deflate_stream10maybe_initEv:
  594|  15.4k|    {
  595|  15.4k|        if(! inited_)
  ------------------
  |  Branch (595:12): [True: 1.13k, False: 14.2k]
  ------------------
  596|  1.13k|            init();
  597|  15.4k|    }
_ZN5boost5beast4zlib6detail14deflate_stream9put_shortEt:
  444|  9.34M|    {
  445|  9.34M|        put_byte(w & 0xff);
  446|  9.34M|        put_byte(w >> 8);
  447|  9.34M|    }
_ZN5boost5beast4zlib6detail14deflate_stream8put_byteEh:
  438|  18.7M|    {
  439|  18.7M|        pending_buf_[pending_++] = c;
  440|  18.7M|    }
_ZNK5boost5beast4zlib6detail14deflate_stream8max_distEv:
  432|  67.9M|    {
  433|  67.9M|        return w_size_ - kMinLookahead;
  434|  67.9M|    }
_ZN5boost5beast4zlib6detail14deflate_stream11update_hashERjh:
  496|   199M|    {
  497|   199M|        h = ((h << hash_shift_) ^ c) & hash_mask_;
  498|   199M|    }
_ZN5boost5beast4zlib6detail14deflate_stream7smallerEPKNS3_7ct_dataEii:
  517|  38.7M|    {
  518|  38.7M|        return tree[n].fc < tree[m].fc ||
  ------------------
  |  Branch (518:16): [True: 4.01M, False: 34.7M]
  ------------------
  519|  38.7M|            (tree[n].fc == tree[m].fc &&
  ------------------
  |  Branch (519:14): [True: 10.3M, False: 24.3M]
  ------------------
  520|  34.7M|                depth_[n] <= depth_[m]);
  ------------------
  |  Branch (520:17): [True: 6.86M, False: 3.47M]
  ------------------
  521|  38.7M|    }
_ZN5boost5beast4zlib6detail14deflate_stream9send_bitsEii:
  454|  46.0M|    {
  455|  46.0M|        if(bi_valid_ > (int)Buf_size - length)
  ------------------
  |  Branch (455:12): [True: 9.32M, False: 36.7M]
  ------------------
  456|  9.32M|        {
  457|  9.32M|            bi_buf_ |= (std::uint16_t)value << bi_valid_;
  458|  9.32M|            put_short(bi_buf_);
  459|  9.32M|            bi_buf_ = (std::uint16_t)value >> (Buf_size - bi_valid_);
  460|  9.32M|            bi_valid_ += length - Buf_size;
  461|  9.32M|        }
  462|  36.7M|        else
  463|  36.7M|        {
  464|  36.7M|            bi_buf_ |= (std::uint16_t)(value) << bi_valid_;
  465|  36.7M|            bi_valid_ += length;
  466|  36.7M|        }
  467|  46.0M|    }
_ZN5boost5beast4zlib6detail14deflate_stream9send_codeEiPKNS3_7ct_dataE:
  472|  34.4M|    {
  473|  34.4M|        send_bits(tree[value].fc, tree[value].dl);
  474|  34.4M|    }
_ZN5boost5beast4zlib6detail14deflate_stream6d_codeEj:
  482|  26.1M|    {
  483|  26.1M|        if(dist < 256)
  ------------------
  |  Branch (483:12): [True: 21.4M, False: 4.72M]
  ------------------
  484|  21.4M|            return lut_.dist_code[dist];
  485|  4.72M|        return lut_.dist_code[256+(dist>>7)];
  486|  26.1M|    }
_ZN5boost5beast4zlib6detail14deflate_stream10get_configEm:
  574|  19.9k|    {
  575|  19.9k|        switch(level)
  576|  19.9k|        {
  577|       |        //              good lazy nice chain
  578|  7.76k|        case 0: return {  0,   0,   0,    0, &self::deflate_stored}; // store only
  ------------------
  |  Branch (578:9): [True: 7.76k, False: 12.2k]
  ------------------
  579|  5.43k|        case 1: return {  4,   4,   8,    4, &self::deflate_fast};   // max speed, no lazy matches
  ------------------
  |  Branch (579:9): [True: 5.43k, False: 14.5k]
  ------------------
  580|    973|        case 2: return {  4,   5,  16,    8, &self::deflate_fast};
  ------------------
  |  Branch (580:9): [True: 973, False: 18.9k]
  ------------------
  581|    621|        case 3: return {  4,   6,  32,   32, &self::deflate_fast};
  ------------------
  |  Branch (581:9): [True: 621, False: 19.3k]
  ------------------
  582|  1.88k|        case 4: return {  4,   4,  16,   16, &self::deflate_slow};   // lazy matches
  ------------------
  |  Branch (582:9): [True: 1.88k, False: 18.0k]
  ------------------
  583|    889|        case 5: return {  8,  16,  32,   32, &self::deflate_slow};
  ------------------
  |  Branch (583:9): [True: 889, False: 19.0k]
  ------------------
  584|    928|        case 6: return {  8,  16, 128,  128, &self::deflate_slow};
  ------------------
  |  Branch (584:9): [True: 928, False: 19.0k]
  ------------------
  585|    849|        case 7: return {  8,  32, 128,  256, &self::deflate_slow};
  ------------------
  |  Branch (585:9): [True: 849, False: 19.1k]
  ------------------
  586|    621|        case 8: return { 32, 128, 258, 1024, &self::deflate_slow};
  ------------------
  |  Branch (586:9): [True: 621, False: 19.3k]
  ------------------
  587|      0|        default:
  ------------------
  |  Branch (587:9): [True: 0, False: 19.9k]
  ------------------
  588|      0|        case 9: return { 32, 258, 258, 4096, &self::deflate_slow};    // max compression
  ------------------
  |  Branch (588:9): [True: 0, False: 19.9k]
  ------------------
  589|  19.9k|        }
  590|  19.9k|    }
_ZN5boost5beast4zlib6detail14deflate_stream14deflate_storedERNS1_8z_paramsENS1_5FlushE:
  664|  7.31k|    {
  665|  7.31k|        return f_stored(zs, flush);
  666|  7.31k|    }
_ZN5boost5beast4zlib6detail14deflate_stream6configC2EttttMS3_FNS3_11block_stateERNS1_8z_paramsENS1_5FlushEE:
  562|  19.9k|           : good_length(good_length_)
  563|  19.9k|           , max_lazy(max_lazy_)
  564|  19.9k|           , nice_length(nice_length_)
  565|  19.9k|           , max_chain(max_chain_)
  566|  19.9k|           , func(func_)
  567|  19.9k|       {
  568|  19.9k|       }
_ZN5boost5beast4zlib6detail14deflate_stream12deflate_fastERNS1_8z_paramsENS1_5FlushE:
  670|  4.94k|    {
  671|  4.94k|        return f_fast(zs, flush);
  672|  4.94k|    }
_ZN5boost5beast4zlib6detail14deflate_stream13insert_stringERj:
  535|   195M|    {
  536|   195M|        update_hash(ins_h_, window_[strstart_ + (minMatch-1)]);
  537|   195M|        hash_head = prev_[strstart_ & w_mask_] = head_[ins_h_];
  538|   195M|        head_[ins_h_] = (std::uint16_t)strstart_;
  539|   195M|    }
_ZN5boost5beast4zlib6detail14deflate_stream12deflate_slowERNS1_8z_paramsENS1_5FlushE:
  676|  3.15k|    {
  677|  3.15k|        return f_slow(zs, flush);
  678|  3.15k|    }
_ZN5boost5beast4zlib6detail14deflate_stream10clear_hashEv:
  505|  1.13k|    {
  506|  1.13k|        head_[hash_size_-1] = 0;
  507|  1.13k|        std::memset((Byte *)head_, 0,
  508|  1.13k|            (unsigned)(hash_size_-1)*sizeof(*head_));
  509|  1.13k|    }

_ZN5boost5beast4zlib6detail14deflate_stream7get_lutEv:
  146|  2.56k|{
  147|  2.56k|    struct init
  148|  2.56k|    {
  149|  2.56k|        lut_type tables;
  150|       |
  151|  2.56k|        init()
  152|  2.56k|        {
  153|       |            // number of codes at each bit length for an optimal tree
  154|       |            //std::uint16_t bl_count[maxBits+1];
  155|       |
  156|       |            // Initialize the mapping length (0..255) -> length code (0..28)
  157|  2.56k|            std::uint8_t length = 0;
  158|  2.56k|            for(std::uint8_t code = 0; code < lengthCodes-1; ++code)
  159|  2.56k|            {
  160|  2.56k|                tables.base_length[code] = length;
  161|  2.56k|                auto const run = 1U << tables.extra_lbits[code];
  162|  2.56k|                for(unsigned n = 0; n < run; ++n)
  163|  2.56k|                    tables.length_code[length++] = code;
  164|  2.56k|            }
  165|  2.56k|            BOOST_ASSERT(length == 0);
  166|       |            // Note that the length 255 (match length 258) can be represented
  167|       |            // in two different ways: code 284 + 5 bits or code 285, so we
  168|       |            // overwrite length_code[255] to use the best encoding:
  169|  2.56k|            tables.length_code[255] = lengthCodes-1;
  170|       |
  171|       |            // Initialize the mapping dist (0..32K) -> dist code (0..29)
  172|  2.56k|            {
  173|  2.56k|                std::uint8_t code;
  174|  2.56k|                std::uint16_t dist = 0;
  175|  2.56k|                for(code = 0; code < 16; code++)
  176|  2.56k|                {
  177|  2.56k|                    tables.base_dist[code] = dist;
  178|  2.56k|                    auto const run = 1U << tables.extra_dbits[code];
  179|  2.56k|                    for(unsigned n = 0; n < run; ++n)
  180|  2.56k|                        tables.dist_code[dist++] = code;
  181|  2.56k|                }
  182|  2.56k|                BOOST_ASSERT(dist == 256);
  183|       |                // from now on, all distances are divided by 128
  184|  2.56k|                dist >>= 7;
  185|  2.56k|                for(; code < dCodes; ++code)
  186|  2.56k|                {
  187|  2.56k|                    tables.base_dist[code] = dist << 7;
  188|  2.56k|                    auto const run = 1U << (tables.extra_dbits[code]-7);
  189|  2.56k|                    for(std::size_t n = 0; n < run; ++n)
  190|  2.56k|                        tables.dist_code[256 + dist++] = code;
  191|  2.56k|                }
  192|  2.56k|                BOOST_ASSERT(dist == 256);
  193|  2.56k|            }
  194|       |
  195|       |            // Construct the codes of the static literal tree
  196|  2.56k|            std::uint16_t bl_count[maxBits+1];
  197|  2.56k|            std::memset(bl_count, 0, sizeof(bl_count));
  198|  2.56k|            unsigned n = 0;
  199|  2.56k|            while (n <= 143)
  200|  2.56k|                tables.ltree[n++].dl = 8;
  201|  2.56k|            bl_count[8] += 144;
  202|  2.56k|            while (n <= 255)
  203|  2.56k|                tables.ltree[n++].dl = 9;
  204|  2.56k|            bl_count[9] += 112;
  205|  2.56k|            while (n <= 279)
  206|  2.56k|                tables.ltree[n++].dl = 7;
  207|  2.56k|            bl_count[7] += 24;
  208|  2.56k|            while (n <= 287)
  209|  2.56k|                tables.ltree[n++].dl = 8;
  210|  2.56k|            bl_count[8] += 8;
  211|       |            // Codes 286 and 287 do not exist, but we must include them in the tree
  212|       |            // construction to get a canonical Huffman tree (longest code all ones)
  213|  2.56k|            gen_codes(tables.ltree, lCodes+1, bl_count);
  214|       |
  215|  2.56k|            for(n = 0; n < dCodes; ++n)
  216|  2.56k|            {
  217|  2.56k|                tables.dtree[n].dl = 5;
  218|  2.56k|                tables.dtree[n].fc =
  219|  2.56k|                    static_cast<std::uint16_t>(bi_reverse(n, 5));
  220|  2.56k|            }
  221|  2.56k|        }
  222|  2.56k|    };
  223|  2.56k|    static init const data;
  224|  2.56k|    return data.tables;
  225|  2.56k|}
_ZZN5boost5beast4zlib6detail14deflate_stream7get_lutEvEN4initC2Ev:
  152|      1|        {
  153|       |            // number of codes at each bit length for an optimal tree
  154|       |            //std::uint16_t bl_count[maxBits+1];
  155|       |
  156|       |            // Initialize the mapping length (0..255) -> length code (0..28)
  157|      1|            std::uint8_t length = 0;
  158|     29|            for(std::uint8_t code = 0; code < lengthCodes-1; ++code)
  ------------------
  |  Branch (158:40): [True: 28, False: 1]
  ------------------
  159|     28|            {
  160|     28|                tables.base_length[code] = length;
  161|     28|                auto const run = 1U << tables.extra_lbits[code];
  162|    284|                for(unsigned n = 0; n < run; ++n)
  ------------------
  |  Branch (162:37): [True: 256, False: 28]
  ------------------
  163|    256|                    tables.length_code[length++] = code;
  164|     28|            }
  165|      1|            BOOST_ASSERT(length == 0);
  ------------------
  |  |   66|      1|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  166|       |            // Note that the length 255 (match length 258) can be represented
  167|       |            // in two different ways: code 284 + 5 bits or code 285, so we
  168|       |            // overwrite length_code[255] to use the best encoding:
  169|      1|            tables.length_code[255] = lengthCodes-1;
  170|       |
  171|       |            // Initialize the mapping dist (0..32K) -> dist code (0..29)
  172|      1|            {
  173|      1|                std::uint8_t code;
  174|      1|                std::uint16_t dist = 0;
  175|     17|                for(code = 0; code < 16; code++)
  ------------------
  |  Branch (175:31): [True: 16, False: 1]
  ------------------
  176|     16|                {
  177|     16|                    tables.base_dist[code] = dist;
  178|     16|                    auto const run = 1U << tables.extra_dbits[code];
  179|    272|                    for(unsigned n = 0; n < run; ++n)
  ------------------
  |  Branch (179:41): [True: 256, False: 16]
  ------------------
  180|    256|                        tables.dist_code[dist++] = code;
  181|     16|                }
  182|      1|                BOOST_ASSERT(dist == 256);
  ------------------
  |  |   66|      1|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  183|       |                // from now on, all distances are divided by 128
  184|      1|                dist >>= 7;
  185|     15|                for(; code < dCodes; ++code)
  ------------------
  |  Branch (185:23): [True: 14, False: 1]
  ------------------
  186|     14|                {
  187|     14|                    tables.base_dist[code] = dist << 7;
  188|     14|                    auto const run = 1U << (tables.extra_dbits[code]-7);
  189|    268|                    for(std::size_t n = 0; n < run; ++n)
  ------------------
  |  Branch (189:44): [True: 254, False: 14]
  ------------------
  190|    254|                        tables.dist_code[256 + dist++] = code;
  191|     14|                }
  192|      1|                BOOST_ASSERT(dist == 256);
  ------------------
  |  |   66|      1|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  193|      1|            }
  194|       |
  195|       |            // Construct the codes of the static literal tree
  196|      1|            std::uint16_t bl_count[maxBits+1];
  197|      1|            std::memset(bl_count, 0, sizeof(bl_count));
  198|      1|            unsigned n = 0;
  199|    145|            while (n <= 143)
  ------------------
  |  Branch (199:20): [True: 144, False: 1]
  ------------------
  200|    144|                tables.ltree[n++].dl = 8;
  201|      1|            bl_count[8] += 144;
  202|    113|            while (n <= 255)
  ------------------
  |  Branch (202:20): [True: 112, False: 1]
  ------------------
  203|    112|                tables.ltree[n++].dl = 9;
  204|      1|            bl_count[9] += 112;
  205|     25|            while (n <= 279)
  ------------------
  |  Branch (205:20): [True: 24, False: 1]
  ------------------
  206|     24|                tables.ltree[n++].dl = 7;
  207|      1|            bl_count[7] += 24;
  208|      9|            while (n <= 287)
  ------------------
  |  Branch (208:20): [True: 8, False: 1]
  ------------------
  209|      8|                tables.ltree[n++].dl = 8;
  210|      1|            bl_count[8] += 8;
  211|       |            // Codes 286 and 287 do not exist, but we must include them in the tree
  212|       |            // construction to get a canonical Huffman tree (longest code all ones)
  213|      1|            gen_codes(tables.ltree, lCodes+1, bl_count);
  214|       |
  215|     31|            for(n = 0; n < dCodes; ++n)
  ------------------
  |  Branch (215:24): [True: 30, False: 1]
  ------------------
  216|     30|            {
  217|     30|                tables.dtree[n].dl = 5;
  218|     30|                tables.dtree[n].fc =
  219|     30|                    static_cast<std::uint16_t>(bi_reverse(n, 5));
  220|     30|            }
  221|      1|        }
_ZN5boost5beast4zlib6detail14deflate_stream9gen_codesEPNS3_7ct_dataEiPt:
  118|  71.1k|{
  119|  71.1k|    std::uint16_t next_code[maxBits+1]; /* next code value for each bit length */
  120|  71.1k|    std::uint16_t code = 0;              /* running code value */
  121|  71.1k|    int bits;                  /* bit index */
  122|  71.1k|    int n;                     /* code index */
  123|       |
  124|       |    // The distribution counts are first used to
  125|       |    // generate the code values without bit reversal.
  126|  1.13M|    for(bits = 1; bits <= maxBits; bits++)
  ------------------
  |  Branch (126:19): [True: 1.06M, False: 71.1k]
  ------------------
  127|  1.06M|    {
  128|  1.06M|        code = (code + bl_count[bits-1]) << 1;
  129|  1.06M|        next_code[bits] = code;
  130|  1.06M|    }
  131|       |    // Check that the bit counts in bl_count are consistent.
  132|       |    // The last code must be all ones.
  133|  71.1k|    BOOST_ASSERT(code + bl_count[maxBits]-1 == (1<<maxBits)-1);
  ------------------
  |  |   66|  71.1k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  134|  7.32M|    for(n = 0; n <= max_code; n++)
  ------------------
  |  Branch (134:16): [True: 7.25M, False: 71.1k]
  ------------------
  135|  7.25M|    {
  136|  7.25M|        int len = tree[n].dl;
  137|  7.25M|        if(len == 0)
  ------------------
  |  Branch (137:12): [True: 5.12M, False: 2.12M]
  ------------------
  138|  5.12M|            continue;
  139|  2.12M|        tree[n].fc = bi_reverse(next_code[len]++, len);
  140|  2.12M|    }
  141|  71.1k|}
_ZN5boost5beast4zlib6detail14deflate_stream7doResetEiiiNS1_8StrategyE:
  234|  5.13k|{
  235|  5.13k|    if(level == default_size)
  ------------------
  |  Branch (235:8): [True: 0, False: 5.13k]
  ------------------
  236|      0|        level = 6;
  237|       |
  238|       |    // VFALCO What do we do about this?
  239|       |    // until 256-byte window bug fixed
  240|  5.13k|    if(windowBits == 8)
  ------------------
  |  Branch (240:8): [True: 0, False: 5.13k]
  ------------------
  241|      0|        windowBits = 9;
  242|       |
  243|  5.13k|    if(level < 0 || level > 9)
  ------------------
  |  Branch (243:8): [True: 0, False: 5.13k]
  |  Branch (243:21): [True: 0, False: 5.13k]
  ------------------
  244|      0|        BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  245|  5.13k|            "invalid level"});
  246|       |
  247|  5.13k|    if(windowBits < 8 || windowBits > 15)
  ------------------
  |  Branch (247:8): [True: 0, False: 5.13k]
  |  Branch (247:26): [True: 0, False: 5.13k]
  ------------------
  248|      0|        BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  249|  5.13k|            "invalid windowBits"});
  250|       |
  251|  5.13k|    if(memLevel < 1 || memLevel > max_mem_level)
  ------------------
  |  Branch (251:8): [True: 0, False: 5.13k]
  |  Branch (251:24): [True: 0, False: 5.13k]
  ------------------
  252|      0|        BOOST_THROW_EXCEPTION(std::invalid_argument{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  253|  5.13k|            "invalid memLevel"});
  254|       |
  255|  5.13k|    w_bits_ = windowBits;
  256|       |
  257|  5.13k|    hash_bits_ = memLevel + 7;
  258|       |
  259|       |    // 16K elements by default
  260|  5.13k|    lit_bufsize_ = 1 << (memLevel + 6);
  261|       |
  262|  5.13k|    level_ = level;
  263|  5.13k|    strategy_ = strategy;
  264|  5.13k|    inited_ = false;
  265|  5.13k|}
_ZN5boost5beast4zlib6detail14deflate_stream7doWriteERNS1_8z_paramsENS_8optionalINS1_5FlushEEERNS_6system10error_codeE:
  360|  15.4k|{
  361|  15.4k|    maybe_init();
  362|       |
  363|  15.4k|    if(zs.next_in == nullptr && zs.avail_in != 0)
  ------------------
  |  Branch (363:8): [True: 1.07k, False: 14.3k]
  |  Branch (363:33): [True: 0, False: 1.07k]
  ------------------
  364|      0|        BOOST_THROW_EXCEPTION(std::invalid_argument{"invalid input"});
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  365|       |
  366|  15.4k|    if(zs.next_out == nullptr ||
  ------------------
  |  Branch (366:8): [True: 0, False: 15.4k]
  |  Branch (366:8): [True: 0, False: 15.4k]
  ------------------
  367|  15.4k|        (status_ == finish_state && flush != Flush::finish))
  ------------------
  |  Branch (367:10): [True: 0, False: 15.4k]
  |  Branch (367:37): [True: 0, False: 0]
  ------------------
  368|      0|    {
  369|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::stream_error);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  370|      0|        return;
  371|      0|    }
  372|  15.4k|    if(zs.avail_out == 0)
  ------------------
  |  Branch (372:8): [True: 0, False: 15.4k]
  ------------------
  373|      0|    {
  374|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::need_buffers);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  375|      0|        return;
  376|      0|    }
  377|       |
  378|       |    // value of flush param for previous deflate call
  379|  15.4k|    auto old_flush = boost::make_optional<Flush>(
  380|  15.4k|        last_flush_.is_initialized(),
  381|  15.4k|        last_flush_ ? *last_flush_ : Flush::none);
  ------------------
  |  Branch (381:9): [True: 3.23k, False: 12.1k]
  ------------------
  382|       |
  383|  15.4k|    last_flush_ = flush;
  384|       |
  385|       |    // Flush as much pending output as possible
  386|  15.4k|    if(pending_ != 0)
  ------------------
  |  Branch (386:8): [True: 5.11k, False: 10.3k]
  ------------------
  387|  5.11k|    {
  388|  5.11k|        flush_pending(zs);
  389|  5.11k|        if(zs.avail_out == 0)
  ------------------
  |  Branch (389:12): [True: 0, False: 5.11k]
  ------------------
  390|      0|        {
  391|       |            /* Since avail_out is 0, deflate will be called again with
  392|       |             * more output space, but possibly with both pending and
  393|       |             * avail_in equal to zero. There won't be anything to do,
  394|       |             * but this is not an error situation so make sure we
  395|       |             * return OK instead of BUF_ERROR at next call of deflate:
  396|       |             */
  397|      0|            last_flush_ = boost::none;
  398|      0|            return;
  399|      0|        }
  400|  5.11k|    }
  401|  10.3k|    else if(zs.avail_in == 0 && (
  ------------------
  |  Branch (401:13): [True: 2.58k, False: 7.72k]
  |  Branch (401:13): [True: 8, False: 10.2k]
  ------------------
  402|  2.58k|            old_flush && flush <= *old_flush // Caution: depends on enum order
  ------------------
  |  Branch (402:13): [True: 2.13k, False: 450]
  |  Branch (402:26): [True: 8, False: 2.12k]
  ------------------
  403|  2.58k|        ) && flush != Flush::finish)
  ------------------
  |  Branch (403:14): [True: 8, False: 0]
  ------------------
  404|      8|    {
  405|       |        /* Make sure there is something to do and avoid duplicate consecutive
  406|       |         * flushes. For repeated and useless calls with Flush::finish, we keep
  407|       |         * returning Z_STREAM_END instead of Z_BUF_ERROR.
  408|       |         */
  409|      8|        BOOST_BEAST_ASSIGN_EC(ec, error::need_buffers);
  ------------------
  |  |  111|      8|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      8|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      8|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      8|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      8|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  410|      8|        return;
  411|      8|    }
  412|       |
  413|       |    // User must not provide more input after the first FINISH:
  414|  15.4k|    if(status_ == finish_state && zs.avail_in != 0)
  ------------------
  |  Branch (414:8): [True: 0, False: 15.4k]
  |  Branch (414:35): [True: 0, False: 0]
  ------------------
  415|      0|    {
  416|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::need_buffers);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  417|      0|        return;
  418|      0|    }
  419|       |
  420|       |    /* Start a new block or continue the current one.
  421|       |     */
  422|  15.4k|    if(zs.avail_in != 0 || lookahead_ != 0 ||
  ------------------
  |  Branch (422:8): [True: 12.4k, False: 2.92k]
  |  Branch (422:8): [True: 15.4k, False: 0]
  |  Branch (422:28): [True: 1.67k, False: 1.25k]
  ------------------
  423|  15.4k|        (flush != Flush::none && status_ != finish_state))
  ------------------
  |  Branch (423:10): [True: 1.25k, False: 0]
  |  Branch (423:34): [True: 1.25k, False: 0]
  ------------------
  424|  15.4k|    {
  425|  15.4k|        block_state bstate;
  426|       |
  427|  15.4k|        switch(strategy_)
  428|  15.4k|        {
  429|      0|        case Strategy::huffman:
  ------------------
  |  Branch (429:9): [True: 0, False: 15.4k]
  ------------------
  430|      0|            bstate = deflate_huff(zs, flush.get());
  431|      0|            break;
  432|      0|        case Strategy::rle:
  ------------------
  |  Branch (432:9): [True: 0, False: 15.4k]
  ------------------
  433|      0|            bstate = deflate_rle(zs, flush.get());
  434|      0|            break;
  435|  15.4k|        default:
  ------------------
  |  Branch (435:9): [True: 15.4k, False: 0]
  ------------------
  436|  15.4k|        {
  437|  15.4k|            bstate = (this->*(get_config(level_).func))(zs, flush.get());
  438|  15.4k|            break;
  439|      0|        }
  440|  15.4k|        }
  441|       |
  442|  15.4k|        if(bstate == finish_started || bstate == finish_done)
  ------------------
  |  Branch (442:12): [True: 0, False: 15.4k]
  |  Branch (442:40): [True: 0, False: 15.4k]
  ------------------
  443|      0|        {
  444|      0|            status_ = finish_state;
  445|      0|        }
  446|  15.4k|        if(bstate == need_more || bstate == finish_started)
  ------------------
  |  Branch (446:12): [True: 13.1k, False: 2.27k]
  |  Branch (446:35): [True: 0, False: 2.27k]
  ------------------
  447|  13.1k|        {
  448|  13.1k|            if(zs.avail_out == 0)
  ------------------
  |  Branch (448:16): [True: 12.1k, False: 949]
  ------------------
  449|  12.1k|            {
  450|  12.1k|                last_flush_ = boost::none; /* avoid BUF_ERROR next call, see above */
  451|  12.1k|            }
  452|  13.1k|            return;
  453|       |            /*  If flush != Flush::none && avail_out == 0, the next call
  454|       |                of deflate should use the same flush parameter to make sure
  455|       |                that the flush is complete. So we don't have to output an
  456|       |                empty block here, this will be done at next call. This also
  457|       |                ensures that for a very small output buffer, we emit at most
  458|       |                one empty block.
  459|       |            */
  460|  13.1k|        }
  461|  2.27k|        if(bstate == block_done)
  ------------------
  |  Branch (461:12): [True: 2.27k, False: 0]
  ------------------
  462|  2.27k|        {
  463|  2.27k|            if(flush == Flush::partial)
  ------------------
  |  Branch (463:16): [True: 0, False: 2.27k]
  ------------------
  464|      0|            {
  465|      0|                tr_align();
  466|      0|            }
  467|  2.27k|            else if(flush != Flush::block)
  ------------------
  |  Branch (467:21): [True: 1.13k, False: 1.13k]
  ------------------
  468|  1.13k|            {
  469|       |                /* FULL_FLUSH or SYNC_FLUSH */
  470|  1.13k|                tr_stored_block(nullptr, 0L, 0);
  471|       |                /* For a full flush, this empty block will be recognized
  472|       |                 * as a special marker by inflate_sync().
  473|       |                 */
  474|  1.13k|                if(flush == Flush::full)
  ------------------
  |  Branch (474:20): [True: 0, False: 1.13k]
  ------------------
  475|      0|                {
  476|      0|                    clear_hash(); // forget history
  477|      0|                    if(lookahead_ == 0)
  ------------------
  |  Branch (477:24): [True: 0, False: 0]
  ------------------
  478|      0|                    {
  479|      0|                        strstart_ = 0;
  480|      0|                        block_start_ = 0L;
  481|      0|                        insert_ = 0;
  482|      0|                    }
  483|      0|                }
  484|  1.13k|            }
  485|  2.27k|            flush_pending(zs);
  486|  2.27k|            if(zs.avail_out == 0)
  ------------------
  |  Branch (486:16): [True: 1, False: 2.27k]
  ------------------
  487|      1|            {
  488|      1|                last_flush_ = boost::none; /* avoid BUF_ERROR at next call, see above */
  489|      1|                return;
  490|      1|            }
  491|  2.27k|        }
  492|  2.27k|    }
  493|       |
  494|  2.27k|    if(flush == Flush::finish)
  ------------------
  |  Branch (494:8): [True: 0, False: 2.27k]
  ------------------
  495|      0|    {
  496|      0|        BOOST_BEAST_ASSIGN_EC(ec, error::end_of_stream);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  497|      0|        return;
  498|      0|    }
  499|  2.27k|}
_ZN5boost5beast4zlib6detail14deflate_stream4initEv:
  598|  1.13k|{
  599|       |    //  Caller must set these:
  600|       |    //      w_bits_
  601|       |    //      hash_bits_
  602|       |    //      lit_bufsize_
  603|       |    //      level_
  604|       |    //      strategy_
  605|       |
  606|  1.13k|    w_size_ = 1 << w_bits_;
  607|  1.13k|    w_mask_ = w_size_ - 1;
  608|       |
  609|  1.13k|    hash_size_ = 1 << hash_bits_;
  610|  1.13k|    hash_mask_ = hash_size_ - 1;
  611|  1.13k|    hash_shift_ =  ((hash_bits_+minMatch-1)/minMatch);
  612|       |
  613|  1.13k|    auto const nwindow  = w_size_ * 2*sizeof(Byte);
  614|  1.13k|    auto const nprev    = w_size_ * sizeof(std::uint16_t);
  615|  1.13k|    auto const nhead    = hash_size_ * sizeof(std::uint16_t);
  616|  1.13k|    auto const noverlay = lit_bufsize_ * (sizeof(std::uint16_t)+2);
  617|  1.13k|    auto const needed   = nwindow + nprev + nhead + noverlay;
  618|       |
  619|  1.13k|    if(! buf_ || buf_size_ != needed)
  ------------------
  |  Branch (619:8): [True: 1.13k, False: 0]
  |  Branch (619:18): [True: 0, False: 0]
  ------------------
  620|  1.13k|    {
  621|  1.13k|        buf_ = boost::make_unique_noinit<
  622|  1.13k|            std::uint8_t[]>(needed);
  623|  1.13k|        buf_size_ = needed;
  624|  1.13k|    }
  625|       |
  626|  1.13k|    window_ = reinterpret_cast<Byte*>(buf_.get());
  627|  1.13k|    prev_   = reinterpret_cast<std::uint16_t*>(buf_.get() + nwindow);
  628|  1.13k|    std::memset(prev_, 0, nprev);
  629|  1.13k|    head_   = reinterpret_cast<std::uint16_t*>(buf_.get() + nwindow + nprev);
  630|       |
  631|       |    // nothing written to window_ yet
  632|  1.13k|    high_water_ = 0;
  633|       |
  634|       |
  635|       |    /* We overlay pending_buf and sym_buf. This works since the average size
  636|       |       for length/distance pairs over any compressed block is assured to be 31
  637|       |       bits or less.
  638|       |
  639|       |       Analysis: The longest fixed codes are a length code of 8 bits plus 5
  640|       |       extra bits, for lengths 131 to 257. The longest fixed distance codes are
  641|       |       5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  642|       |       possible fixed-codes length/distance pair is then 31 bits total.
  643|       |
  644|       |       sym_buf starts one-fourth of the way into pending_buf. So there are
  645|       |       three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  646|       |       in sym_buf is three bytes -- two for the distance and one for the
  647|       |       literal/length. As each symbol is consumed, the pointer to the next
  648|       |       sym_buf value to read moves forward three bytes. From that symbol, up to
  649|       |       31 bits are written to pending_buf. The closest the written pending_buf
  650|       |       bits gets to the next sym_buf symbol to read is just before the last
  651|       |       code is written. At that time, 31*(n-2) bits have been written, just
  652|       |       after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at
  653|       |       8*n bits into pending_buf. (Note that the symbol buffer fills when n-1
  654|       |       symbols are written.) The closest the writing gets to what is unread is
  655|       |       then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and
  656|       |       can range from 128 to 32768.
  657|       |
  658|       |       Therefore, at a minimum, there are 142 bits of space between what is
  659|       |       written and what is read in the overlain buffers, so the symbols cannot
  660|       |       be overwritten by the compressed data. That space is actually 139 bits,
  661|       |       due to the three-bit fixed-code block header.
  662|       |
  663|       |       That covers the case where either Z_FIXED is specified, forcing fixed
  664|       |       codes, or when the use of fixed codes is chosen, because that choice
  665|       |       results in a smaller compressed block than dynamic codes. That latter
  666|       |       condition then assures that the above analysis also covers all dynamic
  667|       |       blocks. A dynamic-code block will only be chosen to be emitted if it has
  668|       |       fewer bits than a fixed-code block would for the same set of symbols.
  669|       |       Therefore its average symbol length is assured to be less than 31. So
  670|       |       the compressed data for a dynamic block also cannot overwrite the
  671|       |       symbols from which it is being constructed.
  672|       |     */
  673|  1.13k|    pending_buf_ =
  674|  1.13k|        buf_.get() + nwindow + nprev + nhead;
  675|  1.13k|    pending_buf_size_ =
  676|  1.13k|        static_cast<std::uint32_t>(lit_bufsize_) * 4;
  677|       |
  678|  1.13k|    sym_buf_ = pending_buf_ + lit_bufsize_;
  679|  1.13k|    sym_end_ = (lit_bufsize_ - 1) * 3;
  680|       |
  681|  1.13k|    pending_ = 0;
  682|  1.13k|    pending_out_ = pending_buf_;
  683|       |
  684|  1.13k|    status_ = busy_state;
  685|  1.13k|    last_flush_ = Flush::none;
  686|       |
  687|  1.13k|    tr_init();
  688|  1.13k|    lm_init();
  689|       |
  690|  1.13k|    inited_ = true;
  691|  1.13k|}
_ZN5boost5beast4zlib6detail14deflate_stream7tr_initEv:
 1345|  1.13k|{
 1346|  1.13k|    l_desc_.dyn_tree = dyn_ltree_;
 1347|  1.13k|    l_desc_.stat_desc = &lut_.l_desc;
 1348|       |
 1349|  1.13k|    d_desc_.dyn_tree = dyn_dtree_;
 1350|  1.13k|    d_desc_.stat_desc = &lut_.d_desc;
 1351|       |
 1352|  1.13k|    bl_desc_.dyn_tree = bl_tree_;
 1353|  1.13k|    bl_desc_.stat_desc = &lut_.bl_desc;
 1354|       |
 1355|  1.13k|    bi_buf_ = 0;
 1356|  1.13k|    bi_valid_ = 0;
 1357|       |
 1358|       |    // Initialize the first block of the first file:
 1359|  1.13k|    init_block();
 1360|  1.13k|}
_ZN5boost5beast4zlib6detail14deflate_stream10init_blockEv:
  725|  32.0k|{
  726|  9.18M|    for(int n = 0; n < lCodes;  n++)
  ------------------
  |  Branch (726:20): [True: 9.15M, False: 32.0k]
  ------------------
  727|  9.15M|        dyn_ltree_[n].fc = 0;
  728|   992k|    for(int n = 0; n < dCodes;  n++)
  ------------------
  |  Branch (728:20): [True: 960k, False: 32.0k]
  ------------------
  729|   960k|        dyn_dtree_[n].fc = 0;
  730|   640k|    for(int n = 0; n < blCodes; n++)
  ------------------
  |  Branch (730:20): [True: 608k, False: 32.0k]
  ------------------
  731|   608k|        bl_tree_[n].fc = 0;
  732|  32.0k|    dyn_ltree_[end_block].fc = 1;
  733|  32.0k|    opt_len_ = 0L;
  734|  32.0k|    static_len_ = 0L;
  735|  32.0k|    sym_next_ = 0;
  736|  32.0k|    matches_ = 0;
  737|  32.0k|}
_ZN5boost5beast4zlib6detail14deflate_stream7lm_initEv:
  698|  1.13k|{
  699|  1.13k|    window_size_ = (std::uint32_t)2L*w_size_;
  700|       |
  701|  1.13k|    clear_hash();
  702|       |
  703|       |    /* Set the default configuration parameters:
  704|       |     */
  705|       |    // VFALCO TODO just copy the config struct
  706|  1.13k|    max_lazy_match_   = get_config(level_).max_lazy;
  707|  1.13k|    good_match_       = get_config(level_).good_length;
  708|  1.13k|    nice_match_       = get_config(level_).nice_length;
  709|  1.13k|    max_chain_length_ = get_config(level_).max_chain;
  710|       |
  711|  1.13k|    strstart_ = 0;
  712|  1.13k|    block_start_ = 0L;
  713|  1.13k|    lookahead_ = 0;
  714|  1.13k|    insert_ = 0;
  715|  1.13k|    match_length_ = prev_length_ = minMatch-1;
  716|  1.13k|    match_available_ = 0;
  717|  1.13k|    ins_h_ = 0;
  718|  1.13k|}
_ZN5boost5beast4zlib6detail14deflate_stream13flush_pendingERNS1_8z_paramsE:
 1679|  38.2k|{
 1680|  38.2k|    tr_flush_bits();
 1681|  38.2k|    auto len = clamp(pending_, zs.avail_out);
 1682|  38.2k|    if(len == 0)
  ------------------
  |  Branch (1682:8): [True: 1.13k, False: 37.1k]
  ------------------
 1683|  1.13k|        return;
 1684|       |
 1685|  37.1k|    std::memcpy(zs.next_out, pending_out_, len);
 1686|  37.1k|    zs.next_out =
 1687|  37.1k|        static_cast<std::uint8_t*>(zs.next_out) + len;
 1688|  37.1k|    pending_out_  += len;
 1689|  37.1k|    zs.total_out += len;
 1690|  37.1k|    zs.avail_out  -= len;
 1691|  37.1k|    pending_ -= len;
 1692|  37.1k|    if(pending_ == 0)
  ------------------
  |  Branch (1692:8): [True: 32.0k, False: 5.11k]
  ------------------
 1693|  32.0k|        pending_out_ = pending_buf_;
 1694|  37.1k|}
_ZN5boost5beast4zlib6detail14deflate_stream13tr_flush_bitsEv:
 1379|  38.2k|{
 1380|  38.2k|    bi_flush();
 1381|  38.2k|}
_ZN5boost5beast4zlib6detail14deflate_stream8bi_flushEv:
 1301|  38.2k|{
 1302|  38.2k|    if(bi_valid_ == 16)
  ------------------
  |  Branch (1302:8): [True: 1.46k, False: 36.8k]
  ------------------
 1303|  1.46k|    {
 1304|  1.46k|        put_short(bi_buf_);
 1305|  1.46k|        bi_buf_ = 0;
 1306|  1.46k|        bi_valid_ = 0;
 1307|  1.46k|    }
 1308|  36.8k|    else if(bi_valid_ >= 8)
  ------------------
  |  Branch (1308:13): [True: 10.2k, False: 26.5k]
  ------------------
 1309|  10.2k|    {
 1310|  10.2k|        put_byte((Byte)bi_buf_);
 1311|  10.2k|        bi_buf_ >>= 8;
 1312|  10.2k|        bi_valid_ -= 8;
 1313|  10.2k|    }
 1314|  38.2k|}
_ZN5boost5beast4zlib6detail14deflate_stream11fill_windowERNS1_8z_paramsE:
 1523|  37.9k|{
 1524|  37.9k|    unsigned n, m;
 1525|  37.9k|    unsigned more;    // Amount of free space at the end of the window.
 1526|  37.9k|    std::uint16_t *p;
 1527|  37.9k|    uInt wsize = w_size_;
 1528|       |
 1529|  37.9k|    do
 1530|  37.9k|    {
 1531|  37.9k|        more = (unsigned)(window_size_ -
 1532|  37.9k|            (std::uint32_t)lookahead_ -(std::uint32_t)strstart_);
 1533|       |
 1534|       |        // VFALCO We don't support systems below 32-bit
 1535|       |    #if 0
 1536|       |        // Deal with !@#$% 64K limit:
 1537|       |        if(sizeof(int) <= 2)
 1538|       |        {
 1539|       |            if(more == 0 && strstart_ == 0 && lookahead_ == 0)
 1540|       |            {
 1541|       |                more = wsize;
 1542|       |            }
 1543|       |            else if(more == (unsigned)(-1))
 1544|       |            {
 1545|       |                /* Very unlikely, but possible on 16 bit machine if
 1546|       |                 * strstart == 0 && lookahead == 1 (input done a byte at time)
 1547|       |                 */
 1548|       |                more--;
 1549|       |            }
 1550|       |        }
 1551|       |    #endif
 1552|       |
 1553|       |        /*  If the window is almost full and there is insufficient lookahead,
 1554|       |            move the upper half to the lower one to make room in the upper half.
 1555|       |        */
 1556|  37.9k|        if(strstart_ >= wsize+max_dist())
  ------------------
  |  Branch (1556:12): [True: 9.63k, False: 28.3k]
  ------------------
 1557|  9.63k|        {
 1558|  9.63k|            std::memcpy(window_, window_+wsize, (unsigned)wsize);
 1559|  9.63k|            match_start_ -= wsize;
 1560|  9.63k|            strstart_    -= wsize; // we now have strstart >= max_dist
 1561|  9.63k|            block_start_ -= (long) wsize;
 1562|  9.63k|            if (insert_ > strstart_)
  ------------------
  |  Branch (1562:17): [True: 0, False: 9.63k]
  ------------------
 1563|      0|                insert_ = strstart_;
 1564|       |
 1565|       |            /* Slide the hash table (could be avoided with 32 bit values
 1566|       |               at the expense of memory usage). We slide even when level == 0
 1567|       |               to keep the hash table consistent if we switch back to level > 0
 1568|       |               later. (Using level 0 permanently is not an optimal usage of
 1569|       |               zlib, so we don't care about this pathological case.)
 1570|       |            */
 1571|  9.63k|            n = hash_size_;
 1572|  9.63k|            p = &head_[n];
 1573|  9.63k|            do
 1574|  19.7M|            {
 1575|  19.7M|                m = *--p;
 1576|  19.7M|                *p = (std::uint16_t)(m >= wsize ? m-wsize : 0);
  ------------------
  |  Branch (1576:38): [True: 957k, False: 18.7M]
  ------------------
 1577|  19.7M|            }
 1578|  19.7M|            while(--n);
  ------------------
  |  Branch (1578:19): [True: 19.7M, False: 9.63k]
  ------------------
 1579|       |
 1580|  9.63k|            n = wsize;
 1581|  9.63k|            p = &prev_[n];
 1582|  9.63k|            do
 1583|   315M|            {
 1584|   315M|                m = *--p;
 1585|   315M|                *p = (std::uint16_t)(m >= wsize ? m-wsize : 0);
  ------------------
  |  Branch (1585:38): [True: 176M, False: 138M]
  ------------------
 1586|       |                /*  If n is not on any hash chain, prev[n] is garbage but
 1587|       |                    its value will never be used.
 1588|       |                */
 1589|   315M|            }
 1590|   315M|            while(--n);
  ------------------
  |  Branch (1590:19): [True: 315M, False: 9.63k]
  ------------------
 1591|  9.63k|            more += wsize;
 1592|  9.63k|        }
 1593|  37.9k|        if(zs.avail_in == 0)
  ------------------
  |  Branch (1593:12): [True: 27.3k, False: 10.6k]
  ------------------
 1594|  27.3k|            break;
 1595|       |
 1596|       |        /*  If there was no sliding:
 1597|       |               strstart <= WSIZE+max_dist-1 && lookahead <= kMinLookahead - 1 &&
 1598|       |               more == window_size - lookahead - strstart
 1599|       |            => more >= window_size - (kMinLookahead-1 + WSIZE + max_dist-1)
 1600|       |            => more >= window_size - 2*WSIZE + 2
 1601|       |            In the BIG_MEM or MMAP case (not yet supported),
 1602|       |              window_size == input_size + kMinLookahead  &&
 1603|       |              strstart + lookahead_ <= input_size => more >= kMinLookahead.
 1604|       |            Otherwise, window_size == 2*WSIZE so more >= 2.
 1605|       |            If there was sliding, more >= WSIZE. So in all cases, more >= 2.
 1606|       |        */
 1607|  10.6k|        n = read_buf(zs, window_ + strstart_ + lookahead_, more);
 1608|  10.6k|        lookahead_ += n;
 1609|       |
 1610|       |        // Initialize the hash value now that we have some input:
 1611|  10.6k|        if(lookahead_ + insert_ >= minMatch)
  ------------------
  |  Branch (1611:12): [True: 10.6k, False: 23]
  ------------------
 1612|  10.6k|        {
 1613|  10.6k|            uInt str = strstart_ - insert_;
 1614|  10.6k|            ins_h_ = window_[str];
 1615|  10.6k|            update_hash(ins_h_, window_[str + 1]);
 1616|  10.6k|            while(insert_)
  ------------------
  |  Branch (1616:19): [True: 0, False: 10.6k]
  ------------------
 1617|      0|            {
 1618|      0|                update_hash(ins_h_, window_[str + minMatch-1]);
 1619|      0|                prev_[str & w_mask_] = head_[ins_h_];
 1620|      0|                head_[ins_h_] = (std::uint16_t)str;
 1621|      0|                str++;
 1622|      0|                insert_--;
 1623|      0|                if(lookahead_ + insert_ < minMatch)
  ------------------
  |  Branch (1623:20): [True: 0, False: 0]
  ------------------
 1624|      0|                    break;
 1625|      0|            }
 1626|  10.6k|        }
 1627|       |        /*  If the whole input has less than minMatch bytes, ins_h is garbage,
 1628|       |            but this is not important since only literal bytes will be emitted.
 1629|       |        */
 1630|  10.6k|    }
 1631|  37.9k|    while(lookahead_ < kMinLookahead && zs.avail_in != 0);
  ------------------
  |  Branch (1631:11): [True: 204, False: 10.4k]
  |  Branch (1631:41): [True: 0, False: 204]
  ------------------
 1632|       |
 1633|       |    /*  If the kWinInit bytes after the end of the current data have never been
 1634|       |        written, then zero those bytes in order to avoid memory check reports of
 1635|       |        the use of uninitialized (or uninitialised as Julian writes) bytes by
 1636|       |        the longest match routines.  Update the high water mark for the next
 1637|       |        time through here.  kWinInit is set to maxMatch since the longest match
 1638|       |        routines allow scanning to strstart + maxMatch, ignoring lookahead.
 1639|       |    */
 1640|  37.9k|    if(high_water_ < window_size_)
  ------------------
  |  Branch (1640:8): [True: 21.6k, False: 16.2k]
  ------------------
 1641|  21.6k|    {
 1642|  21.6k|        std::uint32_t curr = strstart_ + (std::uint32_t)(lookahead_);
 1643|  21.6k|        std::uint32_t winit;
 1644|       |
 1645|  21.6k|        if(high_water_ < curr)
  ------------------
  |  Branch (1645:12): [True: 1.10k, False: 20.5k]
  ------------------
 1646|  1.10k|        {
 1647|       |            /*  Previous high water mark below current data -- zero kWinInit
 1648|       |                bytes or up to end of window, whichever is less.
 1649|       |            */
 1650|  1.10k|            winit = window_size_ - curr;
 1651|  1.10k|            if(winit > kWinInit)
  ------------------
  |  Branch (1651:16): [True: 339, False: 766]
  ------------------
 1652|    339|                winit = kWinInit;
 1653|  1.10k|            std::memset(window_ + curr, 0, (unsigned)winit);
 1654|  1.10k|            high_water_ = curr + winit;
 1655|  1.10k|        }
 1656|  20.5k|        else if(high_water_ < (std::uint32_t)curr + kWinInit)
  ------------------
  |  Branch (1656:17): [True: 34, False: 20.5k]
  ------------------
 1657|     34|        {
 1658|       |            /*  High water mark at or above current data, but below current data
 1659|       |                plus kWinInit -- zero out to current data plus kWinInit, or up
 1660|       |                to end of window, whichever is less.
 1661|       |            */
 1662|     34|            winit = (std::uint32_t)curr + kWinInit - high_water_;
 1663|     34|            if(winit > window_size_ - high_water_)
  ------------------
  |  Branch (1663:16): [True: 0, False: 34]
  ------------------
 1664|      0|                winit = window_size_ - high_water_;
 1665|     34|            std::memset(window_ + high_water_, 0, (unsigned)winit);
 1666|     34|            high_water_ += winit;
 1667|     34|        }
 1668|  21.6k|    }
 1669|  37.9k|}
_ZN5boost5beast4zlib6detail14deflate_stream8read_bufERNS1_8z_paramsEPhj:
 1722|  10.6k|{
 1723|  10.6k|    auto len = clamp(zs.avail_in, size);
 1724|  10.6k|    if(len == 0)
  ------------------
  |  Branch (1724:8): [True: 0, False: 10.6k]
  ------------------
 1725|      0|        return 0;
 1726|       |
 1727|  10.6k|    zs.avail_in  -= len;
 1728|       |
 1729|  10.6k|    std::memcpy(buf, zs.next_in, len);
 1730|  10.6k|    zs.next_in = static_cast<
 1731|  10.6k|        std::uint8_t const*>(zs.next_in) + len;
 1732|  10.6k|    zs.total_in += len;
 1733|  10.6k|    return (int)len;
 1734|  10.6k|}
_ZN5boost5beast4zlib6detail14deflate_stream12tr_tally_litEhRb:
 1412|  10.5M|{
 1413|  10.5M|    sym_buf_[sym_next_++] = 0;
 1414|  10.5M|    sym_buf_[sym_next_++] = 0;
 1415|  10.5M|    sym_buf_[sym_next_++] = c;
 1416|  10.5M|    dyn_ltree_[c].fc++;
 1417|  10.5M|    flush = (sym_next_ == sym_end_);
 1418|  10.5M|}
_ZN5boost5beast4zlib6detail14deflate_stream11flush_blockERNS1_8z_paramsEb:
 1702|  30.8k|{
 1703|  30.8k|    tr_flush_block(zs,
 1704|  30.8k|        (block_start_ >= 0L ?
  ------------------
  |  Branch (1704:10): [True: 29.1k, False: 1.77k]
  ------------------
 1705|  29.1k|            (char *)&window_[(unsigned)block_start_] :
 1706|  30.8k|            (char *)0),
 1707|  30.8k|        (std::uint32_t)((long)strstart_ - block_start_),
 1708|  30.8k|        last);
 1709|  30.8k|   block_start_ = strstart_;
 1710|  30.8k|   flush_pending(zs);
 1711|  30.8k|}
_ZN5boost5beast4zlib6detail14deflate_stream14tr_flush_blockERNS1_8z_paramsEPcji:
 1432|  30.8k|{
 1433|  30.8k|    std::uint32_t opt_lenb;
 1434|  30.8k|    std::uint32_t static_lenb;  // opt_len and static_len in bytes
 1435|  30.8k|    int max_blindex = 0;        // index of last bit length code of non zero freq
 1436|       |
 1437|       |    // Build the Huffman trees unless a stored block is forced
 1438|  30.8k|    if(level_ > 0)
  ------------------
  |  Branch (1438:8): [True: 23.7k, False: 7.15k]
  ------------------
 1439|  23.7k|    {
 1440|       |        // Check if the file is binary or text
 1441|  23.7k|        if(zs.data_type == unknown)
  ------------------
  |  Branch (1441:12): [True: 6.09k, False: 17.6k]
  ------------------
 1442|  6.09k|            zs.data_type = detect_data_type();
 1443|       |
 1444|       |        // Construct the literal and distance trees
 1445|  23.7k|        build_tree((tree_desc *)(&(l_desc_)));
 1446|       |
 1447|  23.7k|        build_tree((tree_desc *)(&(d_desc_)));
 1448|       |        /* At this point, opt_len and static_len are the total bit lengths of
 1449|       |         * the compressed block data, excluding the tree representations.
 1450|       |         */
 1451|       |
 1452|       |        /* Build the bit length tree for the above two trees, and get the index
 1453|       |         * in bl_order of the last bit length code to send.
 1454|       |         */
 1455|  23.7k|        max_blindex = build_bl_tree();
 1456|       |
 1457|       |        /* Determine the best encoding. Compute the block lengths in bytes. */
 1458|  23.7k|        opt_lenb = (opt_len_+3+7)>>3;
 1459|  23.7k|        static_lenb = (static_len_+3+7)>>3;
 1460|       |
 1461|  23.7k|        if(static_lenb <= opt_lenb)
  ------------------
  |  Branch (1461:12): [True: 1.38k, False: 22.3k]
  ------------------
 1462|  1.38k|            opt_lenb = static_lenb;
 1463|  23.7k|    }
 1464|  7.15k|    else
 1465|  7.15k|    {
 1466|       |        // VFALCO This assertion fails even in the original ZLib,
 1467|       |        //        happens with strategy == Z_HUFFMAN_ONLY, see:
 1468|       |        //        https://github.com/madler/zlib/issues/172
 1469|       |
 1470|       |    #if 0
 1471|       |        BOOST_ASSERT(buf);
 1472|       |    #endif
 1473|  7.15k|        opt_lenb = static_lenb = stored_len + 5; // force a stored block
 1474|  7.15k|    }
 1475|       |
 1476|       |#ifdef FORCE_STORED
 1477|       |    if(buf != (char*)0) { /* force stored block */
 1478|       |#else
 1479|  30.8k|    if(stored_len+4 <= opt_lenb && buf != (char*)0) {
  ------------------
  |  Branch (1479:8): [True: 10.3k, False: 20.4k]
  |  Branch (1479:36): [True: 10.3k, False: 0]
  ------------------
 1480|       |                       /* 4: two words for the lengths */
 1481|  10.3k|#endif
 1482|       |        /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
 1483|       |         * Otherwise we can't have processed more than WSIZE input bytes since
 1484|       |         * the last block flush, because compression would have been
 1485|       |         * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
 1486|       |         * transform a block into a stored block.
 1487|       |         */
 1488|  10.3k|        tr_stored_block(buf, stored_len, last);
 1489|       |
 1490|       |#ifdef FORCE_STATIC
 1491|       |    }
 1492|       |    else if(static_lenb >= 0)
 1493|       |    {
 1494|       |        // force static trees
 1495|       |#else
 1496|  10.3k|    }
 1497|  20.4k|    else if(strategy_ == Strategy::fixed || static_lenb == opt_lenb)
  ------------------
  |  Branch (1497:13): [True: 0, False: 20.4k]
  |  Branch (1497:45): [True: 995, False: 19.4k]
  ------------------
 1498|    995|    {
 1499|    995|#endif
 1500|    995|        send_bits((static_trees<<1)+last, 3);
 1501|    995|        compress_block(lut_.ltree, lut_.dtree);
 1502|    995|    }
 1503|  19.4k|    else
 1504|  19.4k|    {
 1505|  19.4k|        send_bits((dyn_trees<<1)+last, 3);
 1506|  19.4k|        send_all_trees(l_desc_.max_code+1, d_desc_.max_code+1,
 1507|  19.4k|                       max_blindex+1);
 1508|  19.4k|        compress_block((const ct_data *)dyn_ltree_,
 1509|  19.4k|                       (const ct_data *)dyn_dtree_);
 1510|  19.4k|    }
 1511|       |    /* The above check is made mod 2^32, for files larger than 512 MB
 1512|       |     * and std::size_t implemented on 32 bits.
 1513|       |     */
 1514|  30.8k|    init_block();
 1515|       |
 1516|  30.8k|    if(last)
  ------------------
  |  Branch (1516:8): [True: 0, False: 30.8k]
  ------------------
 1517|      0|        bi_windup();
 1518|  30.8k|}
_ZN5boost5beast4zlib6detail14deflate_stream16detect_data_typeEv:
 1255|  6.09k|{
 1256|       |    /* block_mask is the bit mask of block-listed bytes
 1257|       |     * set bits 0..6, 14..25, and 28..31
 1258|       |     * 0xf3ffc07f = binary 11110011111111111100000001111111
 1259|       |     */
 1260|  6.09k|    unsigned long block_mask = 0xf3ffc07fUL;
 1261|  6.09k|    int n;
 1262|       |
 1263|       |    // Check for non-textual ("block-listed") bytes.
 1264|   103k|    for(n = 0; n <= 31; n++, block_mask >>= 1)
  ------------------
  |  Branch (1264:16): [True: 101k, False: 2.64k]
  ------------------
 1265|   101k|        if((block_mask & 1) && (dyn_ltree_[n].fc != 0))
  ------------------
  |  Branch (1265:12): [True: 73.3k, False: 27.8k]
  |  Branch (1265:32): [True: 3.44k, False: 69.9k]
  ------------------
 1266|  3.44k|            return binary;
 1267|       |
 1268|       |    // Check for textual ("allow-listed") bytes. */
 1269|  2.64k|    if(dyn_ltree_[9].fc != 0 || dyn_ltree_[10].fc != 0
  ------------------
  |  Branch (1269:8): [True: 420, False: 2.22k]
  |  Branch (1269:33): [True: 876, False: 1.35k]
  ------------------
 1270|  2.64k|            || dyn_ltree_[13].fc != 0)
  ------------------
  |  Branch (1270:16): [True: 214, False: 1.13k]
  ------------------
 1271|  1.51k|        return text;
 1272|   104k|    for(n = 32; n < literals; n++)
  ------------------
  |  Branch (1272:17): [True: 103k, False: 331]
  ------------------
 1273|   103k|        if(dyn_ltree_[n].fc != 0)
  ------------------
  |  Branch (1273:12): [True: 806, False: 102k]
  ------------------
 1274|    806|            return text;
 1275|       |
 1276|       |    /* There are no "block-listed" or "white-listed" bytes:
 1277|       |     * this stream either is empty or has tolerated ("gray-listed") bytes only.
 1278|       |     */
 1279|    331|    return binary;
 1280|  1.13k|}
_ZN5boost5beast4zlib6detail14deflate_stream10build_treeEPNS3_9tree_descE:
  889|  71.1k|{
  890|  71.1k|    ct_data *tree         = desc->dyn_tree;
  891|  71.1k|    ct_data const* stree  = desc->stat_desc->static_tree;
  892|  71.1k|    int elems                     = desc->stat_desc->elems;
  893|  71.1k|    int n, m;          // iterate over heap elements
  894|  71.1k|    int max_code = -1; // largest code with non zero frequency
  895|  71.1k|    int node;          // new node being created
  896|       |
  897|       |    /* Construct the initial heap, with least frequent element in
  898|       |     * heap[kSmallest]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
  899|       |     * heap[0] is not used.
  900|       |     */
  901|  71.1k|    heap_len_ = 0;
  902|  71.1k|    heap_max_ = heap_size;
  903|       |
  904|  8.01M|    for(n = 0; n < elems; n++)
  ------------------
  |  Branch (904:16): [True: 7.94M, False: 71.1k]
  ------------------
  905|  7.94M|    {
  906|  7.94M|        if(tree[n].fc != 0)
  ------------------
  |  Branch (906:12): [True: 2.12M, False: 5.82M]
  ------------------
  907|  2.12M|        {
  908|  2.12M|            heap_[++(heap_len_)] = max_code = n;
  909|  2.12M|            depth_[n] = 0;
  910|  2.12M|        }
  911|  5.82M|        else
  912|  5.82M|        {
  913|  5.82M|            tree[n].dl = 0;
  914|  5.82M|        }
  915|  7.94M|    }
  916|       |
  917|       |    /* The pkzip format requires that at least one distance code exists,
  918|       |     * and that at least one bit should be sent even if there is only one
  919|       |     * possible code. So to avoid special checks later on we force at least
  920|       |     * two codes of non zero frequency.
  921|       |     */
  922|  74.9k|    while(heap_len_ < 2)
  ------------------
  |  Branch (922:11): [True: 3.77k, False: 71.1k]
  ------------------
  923|  3.77k|    {
  924|  3.77k|        node = heap_[++(heap_len_)] = (max_code < 2 ? ++max_code : 0);
  ------------------
  |  Branch (924:40): [True: 2.62k, False: 1.15k]
  ------------------
  925|  3.77k|        tree[node].fc = 1;
  926|  3.77k|        depth_[node] = 0;
  927|  3.77k|        opt_len_--;
  928|  3.77k|        if(stree)
  ------------------
  |  Branch (928:12): [True: 3.77k, False: 0]
  ------------------
  929|  3.77k|            static_len_ -= stree[node].dl;
  930|       |        // node is 0 or 1 so it does not have extra bits
  931|  3.77k|    }
  932|  71.1k|    desc->max_code = max_code;
  933|       |
  934|       |    /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
  935|       |     * establish sub-heaps of increasing lengths:
  936|       |     */
  937|  1.11M|    for(n = heap_len_/2; n >= 1; n--)
  ------------------
  |  Branch (937:26): [True: 1.04M, False: 71.1k]
  ------------------
  938|  1.04M|        pqdownheap(tree, n);
  939|       |
  940|       |    /* Construct the Huffman tree by repeatedly combining the least two
  941|       |     * frequent nodes.
  942|       |     */
  943|  71.1k|    node = elems;              /* next internal node of the tree */
  944|  71.1k|    do
  945|  2.05M|    {
  946|  2.05M|        pqremove(tree, n);  /* n = node of least frequency */
  947|  2.05M|        m = heap_[kSmallest]; /* m = node of next least frequency */
  948|       |
  949|  2.05M|        heap_[--(heap_max_)] = n; /* keep the nodes sorted by frequency */
  950|  2.05M|        heap_[--(heap_max_)] = m;
  951|       |
  952|       |        /* Create a new node father of n and m */
  953|  2.05M|        tree[node].fc = tree[n].fc + tree[m].fc;
  954|  2.05M|        depth_[node] = (std::uint8_t)((depth_[n] >= depth_[m] ?
  ------------------
  |  Branch (954:40): [True: 1.73M, False: 322k]
  ------------------
  955|  1.73M|                                depth_[n] : depth_[m]) + 1);
  956|  2.05M|        tree[n].dl = tree[m].dl = (std::uint16_t)node;
  957|       |        /* and insert the new node in the heap */
  958|  2.05M|        heap_[kSmallest] = node++;
  959|  2.05M|        pqdownheap(tree, kSmallest);
  960|       |
  961|  2.05M|    }
  962|  2.05M|    while(heap_len_ >= 2);
  ------------------
  |  Branch (962:11): [True: 1.98M, False: 71.1k]
  ------------------
  963|       |
  964|  71.1k|    heap_[--(heap_max_)] = heap_[kSmallest];
  965|       |
  966|       |    /* At this point, the fields freq and dad are set. We can now
  967|       |     * generate the bit lengths.
  968|       |     */
  969|  71.1k|    gen_bitlen((tree_desc *)desc);
  970|       |
  971|       |    /* The field len is now set, we can generate the bit codes */
  972|  71.1k|    gen_codes(tree, max_code, bl_count_);
  973|  71.1k|}
_ZN5boost5beast4zlib6detail14deflate_stream10pqdownheapEPKNS3_7ct_dataEi:
  749|  5.16M|{
  750|  5.16M|    int v = heap_[k];
  751|  5.16M|    int j = k << 1;  // left son of k
  752|  23.3M|    while(j <= heap_len_)
  ------------------
  |  Branch (752:11): [True: 19.5M, False: 3.76M]
  ------------------
  753|  19.5M|    {
  754|       |        // Set j to the smallest of the two sons:
  755|  19.5M|        if(j < heap_len_ &&
  ------------------
  |  Branch (755:12): [True: 19.1M, False: 480k]
  ------------------
  756|  19.5M|                smaller(tree, heap_[j+1], heap_[j]))
  ------------------
  |  Branch (756:17): [True: 9.48M, False: 9.63M]
  ------------------
  757|  9.48M|            j++;
  758|       |        // Exit if v is smaller than both sons
  759|  19.5M|        if(smaller(tree, v, heap_[j]))
  ------------------
  |  Branch (759:12): [True: 1.39M, False: 18.2M]
  ------------------
  760|  1.39M|            break;
  761|       |
  762|       |        // Exchange v with the smallest son
  763|  18.2M|        heap_[k] = heap_[j];
  764|  18.2M|        k = j;
  765|       |
  766|       |        // And continue down the tree,
  767|       |        // setting j to the left son of k
  768|  18.2M|        j <<= 1;
  769|  18.2M|    }
  770|  5.16M|    heap_[k] = v;
  771|  5.16M|}
_ZN5boost5beast4zlib6detail14deflate_stream8pqremoveEPKNS3_7ct_dataERi:
  779|  2.05M|{
  780|  2.05M|    top = heap_[kSmallest];
  781|  2.05M|    heap_[kSmallest] = heap_[heap_len_--];
  782|  2.05M|    pqdownheap(tree, kSmallest);
  783|  2.05M|}
_ZN5boost5beast4zlib6detail14deflate_stream10gen_bitlenEPNS3_9tree_descE:
  797|  71.1k|{
  798|  71.1k|    ct_data *tree           = desc->dyn_tree;
  799|  71.1k|    int max_code                    = desc->max_code;
  800|  71.1k|    ct_data const* stree    = desc->stat_desc->static_tree;
  801|  71.1k|    std::uint8_t const *extra       = desc->stat_desc->extra_bits;
  802|  71.1k|    int base                        = desc->stat_desc->extra_base;
  803|  71.1k|    int max_length                  = desc->stat_desc->max_length;
  804|  71.1k|    int h;                          // heap index
  805|  71.1k|    int n, m;                       // iterate over the tree elements
  806|  71.1k|    int bits;                       // bit length
  807|  71.1k|    int xbits;                      // extra bits
  808|  71.1k|    std::uint16_t f;                // frequency
  809|  71.1k|    int overflow = 0;               // number of elements with bit length too large
  810|       |
  811|  71.1k|    std::fill(&bl_count_[0], &bl_count_[maxBits+1], std::uint16_t{0});
  812|       |
  813|       |    /* In a first pass, compute the optimal bit lengths (which may
  814|       |     * overflow in the case of the bit length tree).
  815|       |     */
  816|  71.1k|    tree[heap_[heap_max_]].dl = 0; // root of the heap
  817|       |
  818|  4.18M|    for(h = heap_max_+1; h < heap_size; h++) {
  ------------------
  |  Branch (818:26): [True: 4.11M, False: 71.1k]
  ------------------
  819|  4.11M|        n = heap_[h];
  820|  4.11M|        bits = tree[tree[n].dl].dl + 1;
  821|  4.11M|        if(bits > max_length) bits = max_length, overflow++;
  ------------------
  |  Branch (821:12): [True: 6.19k, False: 4.10M]
  ------------------
  822|       |        // We overwrite tree[n].dl which is no longer needed
  823|  4.11M|        tree[n].dl = (std::uint16_t)bits;
  824|       |
  825|  4.11M|        if(n > max_code)
  ------------------
  |  Branch (825:12): [True: 1.98M, False: 2.12M]
  ------------------
  826|  1.98M|            continue; // not a leaf node
  827|       |
  828|  2.12M|        bl_count_[bits]++;
  829|  2.12M|        xbits = 0;
  830|  2.12M|        if(n >= base)
  ------------------
  |  Branch (830:12): [True: 645k, False: 1.48M]
  ------------------
  831|   645k|            xbits = extra[n-base];
  832|  2.12M|        f = tree[n].fc;
  833|  2.12M|        opt_len_ += (std::uint32_t)f * (bits + xbits);
  834|  2.12M|        if(stree)
  ------------------
  |  Branch (834:12): [True: 1.91M, False: 218k]
  ------------------
  835|  1.91M|            static_len_ += (std::uint32_t)f * (stree[n].dl + xbits);
  836|  2.12M|    }
  837|  71.1k|    if(overflow == 0)
  ------------------
  |  Branch (837:8): [True: 69.1k, False: 2.02k]
  ------------------
  838|  69.1k|        return;
  839|       |
  840|       |    // Find the first bit length which could increase:
  841|  2.02k|    do
  842|  3.09k|    {
  843|  3.09k|        bits = max_length-1;
  844|  3.82k|        while(bl_count_[bits] == 0)
  ------------------
  |  Branch (844:15): [True: 723, False: 3.09k]
  ------------------
  845|    723|            bits--;
  846|  3.09k|        bl_count_[bits]--;      // move one leaf down the tree
  847|  3.09k|        bl_count_[bits+1] += 2; // move one overflow item as its brother
  848|  3.09k|        bl_count_[max_length]--;
  849|       |        /* The brother of the overflow item also moves one step up,
  850|       |         * but this does not affect bl_count[max_length]
  851|       |         */
  852|  3.09k|        overflow -= 2;
  853|  3.09k|    }
  854|  3.09k|    while(overflow > 0);
  ------------------
  |  Branch (854:11): [True: 1.07k, False: 2.02k]
  ------------------
  855|       |
  856|       |    /* Now recompute all bit lengths, scanning in increasing frequency.
  857|       |     * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  858|       |     * lengths instead of fixing only the wrong ones. This idea is taken
  859|       |     * from 'ar' written by Haruhiko Okumura.)
  860|       |     */
  861|  16.1k|    for(bits = max_length; bits != 0; bits--)
  ------------------
  |  Branch (861:28): [True: 14.1k, False: 2.02k]
  ------------------
  862|  14.1k|    {
  863|  14.1k|        n = bl_count_[bits];
  864|  55.9k|        while(n != 0)
  ------------------
  |  Branch (864:15): [True: 41.7k, False: 14.1k]
  ------------------
  865|  41.7k|        {
  866|  41.7k|            m = heap_[--h];
  867|  41.7k|            if(m > max_code)
  ------------------
  |  Branch (867:16): [True: 17.1k, False: 24.5k]
  ------------------
  868|  17.1k|                continue;
  869|  24.5k|            if((unsigned) tree[m].dl != (unsigned) bits)
  ------------------
  |  Branch (869:16): [True: 2.82k, False: 21.7k]
  ------------------
  870|  2.82k|            {
  871|  2.82k|                opt_len_ += ((long)bits - (long)tree[m].dl) *(long)tree[m].fc;
  872|  2.82k|                tree[m].dl = (std::uint16_t)bits;
  873|  2.82k|            }
  874|  24.5k|            n--;
  875|  24.5k|        }
  876|  14.1k|    }
  877|  2.02k|}
_ZN5boost5beast4zlib6detail14deflate_stream13build_bl_treeEv:
 1130|  23.7k|{
 1131|  23.7k|    int max_blindex;  // index of last bit length code of non zero freq
 1132|       |
 1133|       |    // Determine the bit length frequencies for literal and distance trees
 1134|  23.7k|    scan_tree((ct_data *)dyn_ltree_, l_desc_.max_code);
 1135|  23.7k|    scan_tree((ct_data *)dyn_dtree_, d_desc_.max_code);
 1136|       |
 1137|       |    // Build the bit length tree:
 1138|  23.7k|    build_tree((tree_desc *)(&(bl_desc_)));
 1139|       |    /* opt_len now includes the length of the tree representations, except
 1140|       |     * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
 1141|       |     */
 1142|       |
 1143|       |    /* Determine the number of bit length codes to send. The pkzip format
 1144|       |     * requires that at least 4 bit length codes be sent. (appnote.txt says
 1145|       |     * 3 but the actual value used is 4.)
 1146|       |     */
 1147|  67.9k|    for(max_blindex = blCodes-1; max_blindex >= 3; max_blindex--)
  ------------------
  |  Branch (1147:34): [True: 67.9k, False: 0]
  ------------------
 1148|  67.9k|    {
 1149|  67.9k|        if(bl_tree_[lut_.bl_order[max_blindex]].dl != 0)
  ------------------
  |  Branch (1149:12): [True: 23.7k, False: 44.2k]
  ------------------
 1150|  23.7k|            break;
 1151|  67.9k|    }
 1152|       |    // Update opt_len to include the bit length tree and counts
 1153|  23.7k|    opt_len_ += 3*(max_blindex+1) + 5+5+4;
 1154|  23.7k|    return max_blindex;
 1155|  23.7k|}
_ZN5boost5beast4zlib6detail14deflate_stream9scan_treeEPNS3_7ct_dataEi:
  983|  47.4k|{
  984|  47.4k|    int n;                      // iterates over all tree elements
  985|  47.4k|    int prevlen = -1;           // last emitted length
  986|  47.4k|    int curlen;                 // length of current code
  987|  47.4k|    int nextlen = tree[0].dl;   // length of next code
  988|  47.4k|    std::uint16_t count = 0;    // repeat count of the current code
  989|  47.4k|    int max_count = 7;          // max repeat count
  990|  47.4k|    int min_count = 4;          // min repeat count
  991|       |
  992|  47.4k|    if(nextlen == 0)
  ------------------
  |  Branch (992:8): [True: 27.0k, False: 20.3k]
  ------------------
  993|  27.0k|    {
  994|  27.0k|        max_count = 138;
  995|  27.0k|        min_count = 3;
  996|  27.0k|    }
  997|  47.4k|    tree[max_code+1].dl = (std::uint16_t)0xffff; // guard
  998|       |
  999|  6.85M|    for(n = 0; n <= max_code; n++)
  ------------------
  |  Branch (999:16): [True: 6.80M, False: 47.4k]
  ------------------
 1000|  6.80M|    {
 1001|  6.80M|        curlen = nextlen; nextlen = tree[n+1].dl;
 1002|  6.80M|        if(++count < max_count && curlen == nextlen)
  ------------------
  |  Branch (1002:12): [True: 6.79M, False: 16.8k]
  |  Branch (1002:35): [True: 5.23M, False: 1.55M]
  ------------------
 1003|  5.23M|        {
 1004|  5.23M|            continue;
 1005|  5.23M|        }
 1006|  1.57M|        else if(count < min_count)
  ------------------
  |  Branch (1006:17): [True: 1.36M, False: 204k]
  ------------------
 1007|  1.36M|        {
 1008|  1.36M|            bl_tree_[curlen].fc += count;
 1009|  1.36M|        }
 1010|   204k|        else if(curlen != 0)
  ------------------
  |  Branch (1010:17): [True: 66.8k, False: 137k]
  ------------------
 1011|  66.8k|        {
 1012|  66.8k|            if(curlen != prevlen) bl_tree_[curlen].fc++;
  ------------------
  |  Branch (1012:16): [True: 64.0k, False: 2.78k]
  ------------------
 1013|  66.8k|                bl_tree_[rep_3_6].fc++;
 1014|  66.8k|        }
 1015|   137k|        else if(count <= 10)
  ------------------
  |  Branch (1015:17): [True: 68.0k, False: 69.8k]
  ------------------
 1016|  68.0k|        {
 1017|  68.0k|            bl_tree_[repz_3_10].fc++;
 1018|  68.0k|        }
 1019|  69.8k|        else
 1020|  69.8k|        {
 1021|  69.8k|            bl_tree_[repz_11_138].fc++;
 1022|  69.8k|        }
 1023|  1.57M|        count = 0;
 1024|  1.57M|        prevlen = curlen;
 1025|  1.57M|        if(nextlen == 0)
  ------------------
  |  Branch (1025:12): [True: 237k, False: 1.33M]
  ------------------
 1026|   237k|        {
 1027|   237k|            max_count = 138;
 1028|   237k|            min_count = 3;
 1029|   237k|        }
 1030|  1.33M|        else if(curlen == nextlen)
  ------------------
  |  Branch (1030:17): [True: 7.44k, False: 1.32M]
  ------------------
 1031|  7.44k|        {
 1032|  7.44k|            max_count = 6;
 1033|  7.44k|            min_count = 3;
 1034|  7.44k|        }
 1035|  1.32M|        else
 1036|  1.32M|        {
 1037|  1.32M|            max_count = 7;
 1038|  1.32M|            min_count = 4;
 1039|  1.32M|        }
 1040|  1.57M|    }
 1041|  47.4k|}
_ZN5boost5beast4zlib6detail14deflate_stream14compress_blockEPKNS3_7ct_dataES6_:
 1189|  20.4k|{
 1190|  20.4k|    unsigned dist;      /* distance of matched string */
 1191|  20.4k|    int lc;             /* match length or unmatched char (if dist == 0) */
 1192|  20.4k|    unsigned sx = 0;    /* running index in sym_buf */
 1193|  20.4k|    unsigned code;      /* the code to send */
 1194|  20.4k|    int extra;          /* number of extra bits to send */
 1195|       |
 1196|  20.4k|    if(sym_next_ != 0)
  ------------------
  |  Branch (1196:8): [True: 20.4k, False: 0]
  ------------------
 1197|  20.4k|    {
 1198|  20.4k|        do
 1199|  20.3M|        {
 1200|  20.3M|            dist = sym_buf_[sx++] & 0xff;
 1201|  20.3M|            dist += (unsigned)(sym_buf_[sx++] & 0xff) << 8;
 1202|  20.3M|            lc = sym_buf_[sx++];
 1203|  20.3M|            if(dist == 0)
  ------------------
  |  Branch (1203:16): [True: 7.26M, False: 13.0M]
  ------------------
 1204|  7.26M|            {
 1205|  7.26M|                send_code(lc, ltree); /* send a literal byte */
 1206|  7.26M|            }
 1207|  13.0M|            else
 1208|  13.0M|            {
 1209|       |                /* Here, lc is the match length - minMatch */
 1210|  13.0M|                code = lut_.length_code[lc];
 1211|  13.0M|                send_code(code+literals+1, ltree); /* send the length code */
 1212|  13.0M|                extra = lut_.extra_lbits[code];
 1213|  13.0M|                if(extra != 0)
  ------------------
  |  Branch (1213:20): [True: 1.88M, False: 11.1M]
  ------------------
 1214|  1.88M|                {
 1215|  1.88M|                    lc -= lut_.base_length[code];
 1216|  1.88M|                    send_bits(lc, extra);       /* send the extra length bits */
 1217|  1.88M|                }
 1218|  13.0M|                dist--; /* dist is now the match distance - 1 */
 1219|  13.0M|                code = d_code(dist);
 1220|  13.0M|                BOOST_ASSERT(code < dCodes);
  ------------------
  |  |   66|  13.0M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1221|       |
 1222|  13.0M|                send_code(code, dtree);       /* send the distance code */
 1223|  13.0M|                extra = lut_.extra_dbits[code];
 1224|  13.0M|                if(extra != 0)
  ------------------
  |  Branch (1224:20): [True: 9.14M, False: 3.92M]
  ------------------
 1225|  9.14M|                {
 1226|  9.14M|                    dist -= lut_.base_dist[code];
 1227|  9.14M|                    send_bits(dist, extra);   /* send the extra distance bits */
 1228|  9.14M|                }
 1229|  13.0M|            } /* literal or match pair ? */
 1230|       |
 1231|       |            /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
 1232|  20.3M|            BOOST_ASSERT((uInt)(pending_) < lit_bufsize_ + sx);
  ------------------
  |  |   66|  20.3M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1233|  20.3M|        }
 1234|  20.3M|        while(sx < sym_next_);
  ------------------
  |  Branch (1234:15): [True: 20.3M, False: 20.4k]
  ------------------
 1235|  20.4k|    }
 1236|       |
 1237|  20.4k|    send_code(end_block, ltree);
 1238|  20.4k|}
_ZN5boost5beast4zlib6detail14deflate_stream14send_all_treesEiii:
 1168|  19.4k|{
 1169|  19.4k|    int rank;       // index in bl_order
 1170|       |
 1171|  19.4k|    BOOST_ASSERT(lcodes >= 257 && dcodes >= 1 && blcodes >= 4);
  ------------------
  |  |   66|  19.4k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1172|  19.4k|    BOOST_ASSERT(lcodes <= lCodes && dcodes <= dCodes && blcodes <= blCodes);
  ------------------
  |  |   66|  19.4k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1173|  19.4k|    send_bits(lcodes-257, 5); // not +255 as stated in appnote.txt
 1174|  19.4k|    send_bits(dcodes-1,   5);
 1175|  19.4k|    send_bits(blcodes-4,  4); // not -3 as stated in appnote.txt
 1176|   352k|    for(rank = 0; rank < blcodes; rank++)
  ------------------
  |  Branch (1176:19): [True: 333k, False: 19.4k]
  ------------------
 1177|   333k|        send_bits(bl_tree_[lut_.bl_order[rank]].dl, 3);
 1178|  19.4k|    send_tree((ct_data *)dyn_ltree_, lcodes-1); // literal tree
 1179|  19.4k|    send_tree((ct_data *)dyn_dtree_, dcodes-1); // distance tree
 1180|  19.4k|}
_ZN5boost5beast4zlib6detail14deflate_stream9send_treeEPNS3_7ct_dataEi:
 1051|  38.9k|{
 1052|  38.9k|    int n;                      // iterates over all tree elements
 1053|  38.9k|    int prevlen = -1;           // last emitted length
 1054|  38.9k|    int curlen;                 // length of current code
 1055|  38.9k|    int nextlen = tree[0].dl;   // length of next code
 1056|  38.9k|    int count = 0;              // repeat count of the current code
 1057|  38.9k|    int max_count = 7;          // max repeat count
 1058|  38.9k|    int min_count = 4;          // min repeat count
 1059|       |
 1060|       |    // tree[max_code+1].dl = -1; // guard already set
 1061|  38.9k|    if(nextlen == 0)
  ------------------
  |  Branch (1061:8): [True: 24.7k, False: 14.2k]
  ------------------
 1062|  24.7k|    {
 1063|  24.7k|        max_count = 138;
 1064|  24.7k|        min_count = 3;
 1065|  24.7k|    }
 1066|       |
 1067|  5.65M|    for(n = 0; n <= max_code; n++)
  ------------------
  |  Branch (1067:16): [True: 5.61M, False: 38.9k]
  ------------------
 1068|  5.61M|    {
 1069|  5.61M|        curlen = nextlen;
 1070|  5.61M|        nextlen = tree[n+1].dl;
 1071|  5.61M|        if(++count < max_count && curlen == nextlen)
  ------------------
  |  Branch (1071:12): [True: 5.61M, False: 6.26k]
  |  Branch (1071:35): [True: 4.72M, False: 882k]
  ------------------
 1072|  4.72M|        {
 1073|  4.72M|            continue;
 1074|  4.72M|        }
 1075|   888k|        else if(count < min_count)
  ------------------
  |  Branch (1075:17): [True: 742k, False: 145k]
  ------------------
 1076|   742k|        {
 1077|   742k|            do
 1078|   908k|            {
 1079|   908k|                send_code(curlen, bl_tree_);
 1080|   908k|            }
 1081|   908k|            while (--count != 0);
  ------------------
  |  Branch (1081:20): [True: 165k, False: 742k]
  ------------------
 1082|   742k|        }
 1083|   145k|        else if(curlen != 0)
  ------------------
  |  Branch (1083:17): [True: 16.5k, False: 129k]
  ------------------
 1084|  16.5k|        {
 1085|  16.5k|            if(curlen != prevlen)
  ------------------
  |  Branch (1085:16): [True: 16.1k, False: 374]
  ------------------
 1086|  16.1k|            {
 1087|  16.1k|                send_code(curlen, bl_tree_);
 1088|  16.1k|                count--;
 1089|  16.1k|            }
 1090|  16.5k|            BOOST_ASSERT(count >= 3 && count <= 6);
  ------------------
  |  |   66|  16.5k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1091|  16.5k|            send_code(rep_3_6, bl_tree_);
 1092|  16.5k|            send_bits(count-3, 2);
 1093|  16.5k|        }
 1094|   129k|        else if(count <= 10)
  ------------------
  |  Branch (1094:17): [True: 62.8k, False: 66.3k]
  ------------------
 1095|  62.8k|        {
 1096|  62.8k|            send_code(repz_3_10, bl_tree_);
 1097|  62.8k|            send_bits(count-3, 3);
 1098|  62.8k|        }
 1099|  66.3k|        else
 1100|  66.3k|        {
 1101|  66.3k|            send_code(repz_11_138, bl_tree_);
 1102|  66.3k|            send_bits(count-11, 7);
 1103|  66.3k|        }
 1104|   888k|        count = 0;
 1105|   888k|        prevlen = curlen;
 1106|   888k|        if(nextlen == 0)
  ------------------
  |  Branch (1106:12): [True: 193k, False: 695k]
  ------------------
 1107|   193k|        {
 1108|   193k|            max_count = 138;
 1109|   193k|            min_count = 3;
 1110|   193k|        }
 1111|   695k|        else if(curlen == nextlen)
  ------------------
  |  Branch (1111:17): [True: 1.03k, False: 694k]
  ------------------
 1112|  1.03k|        {
 1113|  1.03k|            max_count = 6;
 1114|  1.03k|            min_count = 3;
 1115|  1.03k|        }
 1116|   694k|        else
 1117|   694k|        {
 1118|   694k|            max_count = 7;
 1119|   694k|            min_count = 4;
 1120|   694k|        }
 1121|   888k|    }
 1122|  38.9k|}
_ZN5boost5beast4zlib6detail14deflate_stream9bi_windupEv:
 1287|  11.5k|{
 1288|  11.5k|    if(bi_valid_ > 8)
  ------------------
  |  Branch (1288:8): [True: 540, False: 10.9k]
  ------------------
 1289|    540|        put_short(bi_buf_);
 1290|  10.9k|    else if(bi_valid_ > 0)
  ------------------
  |  Branch (1290:13): [True: 10.9k, False: 0]
  ------------------
 1291|  10.9k|        put_byte((Byte)bi_buf_);
 1292|  11.5k|    bi_buf_ = 0;
 1293|  11.5k|    bi_valid_ = 0;
 1294|  11.5k|}
_ZN5boost5beast4zlib6detail14deflate_stream13tr_tally_distEthRb:
 1399|  13.0M|{
 1400|  13.0M|    sym_buf_[sym_next_++] = dist & 0xFF;
 1401|  13.0M|    sym_buf_[sym_next_++] = dist >> 8;
 1402|  13.0M|    sym_buf_[sym_next_++] = len;
 1403|  13.0M|    dist--;
 1404|  13.0M|    dyn_ltree_[lut_.length_code[len]+literals+1].fc++;
 1405|  13.0M|    dyn_dtree_[d_code(dist)].fc++;
 1406|  13.0M|    flush = (sym_next_ == sym_end_);
 1407|  13.0M|}
_ZN5boost5beast4zlib6detail14deflate_stream8f_storedERNS1_8z_paramsENS1_5FlushE:
 1860|  7.31k|{
 1861|       |    /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
 1862|       |     * to pending_buf_size, and each stored block has a 5 byte header:
 1863|       |     */
 1864|  7.31k|    std::uint32_t max_block_size = 0xffff;
 1865|  7.31k|    std::uint32_t max_start;
 1866|       |
 1867|  7.31k|    if(max_block_size > pending_buf_size_ - 5) {
  ------------------
  |  Branch (1867:8): [True: 7.31k, False: 0]
  ------------------
 1868|  7.31k|        max_block_size = pending_buf_size_ - 5;
 1869|  7.31k|    }
 1870|       |
 1871|       |    /* Copy as much as possible from input to output: */
 1872|  8.18k|    for(;;) {
 1873|       |        /* Fill the window as much as possible: */
 1874|  8.18k|        if(lookahead_ <= 1) {
  ------------------
  |  Branch (1874:12): [True: 1.13k, False: 7.05k]
  ------------------
 1875|       |
 1876|  1.13k|            BOOST_ASSERT(strstart_ < w_size_+max_dist() ||
  ------------------
  |  |   66|  1.13k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1877|  1.13k|                   block_start_ >= (long)w_size_);
 1878|       |
 1879|  1.13k|            fill_window(zs);
 1880|  1.13k|            if(lookahead_ == 0 && flush == Flush::none)
  ------------------
  |  Branch (1880:16): [True: 262, False: 874]
  |  Branch (1880:35): [True: 38, False: 224]
  ------------------
 1881|     38|                return need_more;
 1882|       |
 1883|  1.09k|            if(lookahead_ == 0) break; /* flush the current block */
  ------------------
  |  Branch (1883:16): [True: 224, False: 874]
  ------------------
 1884|  1.09k|        }
 1885|  7.92k|        BOOST_ASSERT(block_start_ >= 0L);
  ------------------
  |  |   66|  7.92k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1886|       |
 1887|  7.92k|        strstart_ += lookahead_;
 1888|  7.92k|        lookahead_ = 0;
 1889|       |
 1890|       |        /* Emit a stored block if pending_buf will be full: */
 1891|  7.92k|        max_start = block_start_ + max_block_size;
 1892|  7.92k|        if(strstart_ == 0 || (std::uint32_t)strstart_ >= max_start) {
  ------------------
  |  Branch (1892:12): [True: 0, False: 7.92k]
  |  Branch (1892:30): [True: 7.05k, False: 873]
  ------------------
 1893|       |            /* strstart == 0 is possible when wraparound on 16-bit machine */
 1894|  7.05k|            lookahead_ = (uInt)(strstart_ - max_start);
 1895|  7.05k|            strstart_ = (uInt)max_start;
 1896|  7.05k|            flush_block(zs, false);
 1897|  7.05k|            if(zs.avail_out == 0)
  ------------------
  |  Branch (1897:16): [True: 7.05k, False: 0]
  ------------------
 1898|  7.05k|                return need_more;
 1899|  7.05k|        }
 1900|       |        /* Flush if we may have to slide, otherwise block_start may become
 1901|       |         * negative and the data will be gone:
 1902|       |         */
 1903|    873|        if(strstart_ - (uInt)block_start_ >= max_dist()) {
  ------------------
  |  Branch (1903:12): [True: 0, False: 873]
  ------------------
 1904|      0|            flush_block(zs, false);
 1905|      0|            if(zs.avail_out == 0)
  ------------------
  |  Branch (1905:16): [True: 0, False: 0]
  ------------------
 1906|      0|                return need_more;
 1907|      0|        }
 1908|    873|    }
 1909|    224|    insert_ = 0;
 1910|    224|    if(flush == Flush::finish)
  ------------------
  |  Branch (1910:8): [True: 0, False: 224]
  ------------------
 1911|      0|    {
 1912|      0|        flush_block(zs, true);
 1913|      0|        if(zs.avail_out == 0)
  ------------------
  |  Branch (1913:12): [True: 0, False: 0]
  ------------------
 1914|      0|            return finish_started;
 1915|      0|        return finish_done;
 1916|      0|    }
 1917|    224|    if((long)strstart_ > block_start_)
  ------------------
  |  Branch (1917:8): [True: 103, False: 121]
  ------------------
 1918|    103|    {
 1919|    103|        flush_block(zs, false);
 1920|    103|        if(zs.avail_out == 0)
  ------------------
  |  Branch (1920:12): [True: 0, False: 103]
  ------------------
 1921|      0|            return need_more;
 1922|    103|    }
 1923|    224|    return block_done;
 1924|    224|}
_ZN5boost5beast4zlib6detail14deflate_stream6f_fastERNS1_8z_paramsENS1_5FlushE:
 1936|  4.94k|{
 1937|  4.94k|    IPos hash_head;       /* head of the hash chain */
 1938|  4.94k|    bool bflush;           /* set if current block must be flushed */
 1939|       |
 1940|  4.94k|    for(;;)
 1941|  16.5M|    {
 1942|       |        /* Make sure that we always have enough lookahead, except
 1943|       |         * at the end of the input file. We need maxMatch bytes
 1944|       |         * for the next match, plus minMatch bytes to insert the
 1945|       |         * string following the next match.
 1946|       |         */
 1947|  16.5M|        if(lookahead_ < kMinLookahead)
  ------------------
  |  Branch (1947:12): [True: 14.1k, False: 16.5M]
  ------------------
 1948|  14.1k|        {
 1949|  14.1k|            fill_window(zs);
 1950|  14.1k|            if(lookahead_ < kMinLookahead && flush == Flush::none)
  ------------------
  |  Branch (1950:16): [True: 9.49k, False: 4.67k]
  |  Branch (1950:46): [True: 459, False: 9.03k]
  ------------------
 1951|    459|                return need_more;
 1952|  13.7k|            if(lookahead_ == 0)
  ------------------
  |  Branch (1952:16): [True: 1.07k, False: 12.6k]
  ------------------
 1953|  1.07k|                break; /* flush the current block */
 1954|  13.7k|        }
 1955|       |
 1956|       |        /* Insert the string window[strstart .. strstart+2] in the
 1957|       |         * dictionary, and set hash_head to the head of the hash chain:
 1958|       |         */
 1959|  16.5M|        hash_head = 0;
 1960|  16.5M|        if(lookahead_ >= minMatch) {
  ------------------
  |  Branch (1960:12): [True: 16.5M, False: 187]
  ------------------
 1961|  16.5M|            insert_string(hash_head);
 1962|  16.5M|        }
 1963|       |
 1964|       |        /* Find the longest match, discarding those <= prev_length.
 1965|       |         * At this point we have always match_length < minMatch
 1966|       |         */
 1967|  16.5M|        if(hash_head != 0 && strstart_ - hash_head <= max_dist()) {
  ------------------
  |  Branch (1967:12): [True: 16.4M, False: 77.5k]
  |  Branch (1967:30): [True: 16.4M, False: 6.11k]
  ------------------
 1968|       |            /* To simplify the code, we prevent matches with the string
 1969|       |             * of window index 0 (in particular we have to avoid a match
 1970|       |             * of the string with itself at the start of the input file).
 1971|       |             */
 1972|  16.4M|            match_length_ = longest_match (hash_head);
 1973|       |            /* longest_match() sets match_start */
 1974|  16.4M|        }
 1975|  16.5M|        if(match_length_ >= minMatch)
  ------------------
  |  Branch (1975:12): [True: 10.9M, False: 5.55M]
  ------------------
 1976|  10.9M|        {
 1977|  10.9M|            tr_tally_dist(static_cast<std::uint16_t>(strstart_ - match_start_),
 1978|  10.9M|                static_cast<std::uint8_t>(match_length_ - minMatch), bflush);
 1979|       |
 1980|  10.9M|            lookahead_ -= match_length_;
 1981|       |
 1982|       |            /* Insert new strings in the hash table only if the match length
 1983|       |             * is not too large. This saves time but degrades compression.
 1984|       |             */
 1985|  10.9M|            if(match_length_ <= max_lazy_match_ &&
  ------------------
  |  Branch (1985:16): [True: 6.85M, False: 4.13M]
  ------------------
 1986|  10.9M|                lookahead_ >= minMatch) {
  ------------------
  |  Branch (1986:17): [True: 6.85M, False: 20]
  ------------------
 1987|  6.85M|                match_length_--; /* string at strstart already in table */
 1988|  6.85M|                do
 1989|  15.8M|                {
 1990|  15.8M|                    strstart_++;
 1991|  15.8M|                    insert_string(hash_head);
 1992|       |                    /* strstart never exceeds WSIZE-maxMatch, so there are
 1993|       |                     * always minMatch bytes ahead.
 1994|       |                     */
 1995|  15.8M|                }
 1996|  15.8M|                while(--match_length_ != 0);
  ------------------
  |  Branch (1996:23): [True: 9.00M, False: 6.85M]
  ------------------
 1997|  6.85M|                strstart_++;
 1998|  6.85M|            }
 1999|  4.13M|            else
 2000|  4.13M|            {
 2001|  4.13M|                strstart_ += match_length_;
 2002|  4.13M|                match_length_ = 0;
 2003|  4.13M|                ins_h_ = window_[strstart_];
 2004|  4.13M|                update_hash(ins_h_, window_[strstart_+1]);
 2005|       |                /* If lookahead < minMatch, ins_h is garbage, but it does not
 2006|       |                 * matter since it will be recomputed at next deflate call.
 2007|       |                 */
 2008|  4.13M|            }
 2009|  10.9M|        }
 2010|  5.55M|        else
 2011|  5.55M|        {
 2012|       |            /* No match, output a literal byte */
 2013|  5.55M|            tr_tally_lit(window_[strstart_], bflush);
 2014|  5.55M|            lookahead_--;
 2015|  5.55M|            strstart_++;
 2016|  5.55M|        }
 2017|  16.5M|        if(bflush)
  ------------------
  |  Branch (2017:12): [True: 15.9k, False: 16.5M]
  ------------------
 2018|  15.9k|        {
 2019|  15.9k|            flush_block(zs, false);
 2020|  15.9k|            if(zs.avail_out == 0)
  ------------------
  |  Branch (2020:16): [True: 3.40k, False: 12.5k]
  ------------------
 2021|  3.40k|                return need_more;
 2022|  15.9k|        }
 2023|  16.5M|    }
 2024|  1.07k|    insert_ = strstart_ < minMatch-1 ? strstart_ : minMatch-1;
  ------------------
  |  Branch (2024:15): [True: 24, False: 1.05k]
  ------------------
 2025|  1.07k|    if(flush == Flush::finish)
  ------------------
  |  Branch (2025:8): [True: 0, False: 1.07k]
  ------------------
 2026|      0|    {
 2027|      0|        flush_block(zs, true);
 2028|      0|        if(zs.avail_out == 0)
  ------------------
  |  Branch (2028:12): [True: 0, False: 0]
  ------------------
 2029|      0|            return finish_started;
 2030|      0|        return finish_done;
 2031|      0|    }
 2032|  1.07k|    if(sym_next_)
  ------------------
  |  Branch (2032:8): [True: 513, False: 566]
  ------------------
 2033|    513|    {
 2034|    513|        flush_block(zs, false);
 2035|    513|        if(zs.avail_out == 0)
  ------------------
  |  Branch (2035:12): [True: 33, False: 480]
  ------------------
 2036|     33|            return need_more;
 2037|    513|    }
 2038|  1.04k|    return block_done;
 2039|  1.07k|}
_ZN5boost5beast4zlib6detail14deflate_stream13longest_matchEj:
 1750|  23.5M|{
 1751|  23.5M|    unsigned chain_length = max_chain_length_;/* max hash chain length */
 1752|  23.5M|    Byte *scan = window_ + strstart_; /* current string */
 1753|  23.5M|    Byte *match;                       /* matched string */
 1754|  23.5M|    int len;                           /* length of current match */
 1755|  23.5M|    int best_len = prev_length_;              /* best match length so far */
 1756|  23.5M|    int nice_match = nice_match_;             /* stop if match long enough */
 1757|  23.5M|    IPos limit = strstart_ > (IPos)max_dist() ?
  ------------------
  |  Branch (1757:18): [True: 20.9M, False: 2.57M]
  ------------------
 1758|  20.9M|        strstart_ - (IPos)max_dist() : 0;
 1759|       |    /* Stop when cur_match becomes <= limit. To simplify the code,
 1760|       |     * we prevent matches with the string of window index 0.
 1761|       |     */
 1762|  23.5M|    std::uint16_t *prev = prev_;
 1763|  23.5M|    uInt wmask = w_mask_;
 1764|       |
 1765|  23.5M|    Byte *strend = window_ + strstart_ + maxMatch;
 1766|  23.5M|    Byte scan_end1  = scan[best_len-1];
 1767|  23.5M|    Byte scan_end   = scan[best_len];
 1768|       |
 1769|       |    /* The code is optimized for HASH_BITS >= 8 and maxMatch-2 multiple of 16.
 1770|       |     * It is easy to get rid of this optimization if necessary.
 1771|       |     */
 1772|  23.5M|    BOOST_ASSERT(hash_bits_ >= 8 && maxMatch == 258);
  ------------------
  |  |   66|  23.5M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1773|       |
 1774|       |    /* Do not waste too much time if we already have a good match: */
 1775|  23.5M|    if(prev_length_ >= good_match_) {
  ------------------
  |  Branch (1775:8): [True: 131k, False: 23.3M]
  ------------------
 1776|   131k|        chain_length >>= 2;
 1777|   131k|    }
 1778|       |    /* Do not look for matches beyond the end of the input. This is necessary
 1779|       |     * to make deflate deterministic.
 1780|       |     */
 1781|  23.5M|    if((uInt)nice_match > lookahead_)
  ------------------
  |  Branch (1781:8): [True: 3.79k, False: 23.5M]
  ------------------
 1782|  3.79k|        nice_match = lookahead_;
 1783|       |
 1784|  23.5M|    BOOST_ASSERT((std::uint32_t)strstart_ <= window_size_-kMinLookahead);
  ------------------
  |  |   66|  23.5M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1785|       |
 1786|   197M|    do {
 1787|   197M|        BOOST_ASSERT(cur_match < strstart_);
  ------------------
  |  |   66|   197M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1788|   197M|        match = window_ + cur_match;
 1789|       |
 1790|       |        /* Skip to next match if the match length cannot increase
 1791|       |         * or if the match length is less than 2.  Note that the checks below
 1792|       |         * for insufficient lookahead only occur occasionally for performance
 1793|       |         * reasons.  Therefore uninitialized memory will be accessed, and
 1794|       |         * conditional jumps will be made that depend on those values.
 1795|       |         * However the length of the match is limited to the lookahead, so
 1796|       |         * the output of deflate is not affected by the uninitialized values.
 1797|       |         */
 1798|   197M|        if(     match[best_len]   != scan_end  ||
  ------------------
  |  Branch (1798:17): [True: 110M, False: 87.3M]
  ------------------
 1799|   197M|                match[best_len-1] != scan_end1 ||
  ------------------
  |  Branch (1799:17): [True: 33.7M, False: 53.6M]
  ------------------
 1800|   197M|                *match            != *scan     ||
  ------------------
  |  Branch (1800:17): [True: 24.5M, False: 29.1M]
  ------------------
 1801|   197M|                *++match          != scan[1])
  ------------------
  |  Branch (1801:17): [True: 1.26M, False: 27.8M]
  ------------------
 1802|   169M|            continue;
 1803|       |
 1804|       |        /* The check at best_len-1 can be removed because it will be made
 1805|       |         * again later. (This heuristic is not always a win.)
 1806|       |         * It is not necessary to compare scan[2] and match[2] since they
 1807|       |         * are always equal when the other bytes match, given that
 1808|       |         * the hash keys are equal and that HASH_BITS >= 8.
 1809|       |         */
 1810|  27.8M|        scan += 2, match++;
 1811|  27.8M|        BOOST_ASSERT(*scan == *match);
  ------------------
  |  |   66|  27.8M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1812|       |
 1813|       |        /* We check for insufficient lookahead only every 8th comparison;
 1814|       |         * the 256th check will be made at strstart+258.
 1815|       |         */
 1816|  27.8M|        do
 1817|  64.3M|        {
 1818|  64.3M|        }
 1819|  64.3M|        while(  *++scan == *++match && *++scan == *++match &&
  ------------------
  |  Branch (1819:17): [True: 53.6M, False: 10.6M]
  |  Branch (1819:40): [True: 48.8M, False: 4.84M]
  ------------------
 1820|  64.3M|                *++scan == *++match && *++scan == *++match &&
  ------------------
  |  Branch (1820:17): [True: 45.3M, False: 3.50M]
  |  Branch (1820:40): [True: 42.7M, False: 2.53M]
  ------------------
 1821|  64.3M|                *++scan == *++match && *++scan == *++match &&
  ------------------
  |  Branch (1821:17): [True: 40.8M, False: 1.88M]
  |  Branch (1821:40): [True: 39.2M, False: 1.60M]
  ------------------
 1822|  64.3M|                *++scan == *++match && *++scan == *++match &&
  ------------------
  |  Branch (1822:17): [True: 38.1M, False: 1.11M]
  |  Branch (1822:40): [True: 37.0M, False: 1.16M]
  ------------------
 1823|  64.3M|                scan < strend);
  ------------------
  |  Branch (1823:17): [True: 36.4M, False: 553k]
  ------------------
 1824|       |
 1825|  27.8M|        BOOST_ASSERT(scan <= window_+(unsigned)(window_size_-1));
  ------------------
  |  |   66|  27.8M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 1826|       |
 1827|  27.8M|        len = maxMatch - (int)(strend - scan);
 1828|  27.8M|        scan = strend - maxMatch;
 1829|       |
 1830|  27.8M|        if(len > best_len) {
  ------------------
  |  Branch (1830:12): [True: 22.2M, False: 5.58M]
  ------------------
 1831|  22.2M|            match_start_ = cur_match;
 1832|  22.2M|            best_len = len;
 1833|  22.2M|            if(len >= nice_match) break;
  ------------------
  |  Branch (1833:16): [True: 3.01M, False: 19.2M]
  ------------------
 1834|  19.2M|            scan_end1  = scan[best_len-1];
 1835|  19.2M|            scan_end   = scan[best_len];
 1836|  19.2M|        }
 1837|  27.8M|    }
 1838|   194M|    while((cur_match = prev[cur_match & wmask]) > limit
  ------------------
  |  Branch (1838:11): [True: 189M, False: 4.65M]
  ------------------
 1839|   194M|        && --chain_length != 0);
  ------------------
  |  Branch (1839:12): [True: 174M, False: 15.8M]
  ------------------
 1840|       |
 1841|  23.5M|    if((uInt)best_len <= lookahead_)
  ------------------
  |  Branch (1841:8): [True: 23.5M, False: 703]
  ------------------
 1842|  23.5M|        return (uInt)best_len;
 1843|    703|    return lookahead_;
 1844|  23.5M|}
_ZN5boost5beast4zlib6detail14deflate_stream6f_slowERNS1_8z_paramsENS1_5FlushE:
 2049|  3.15k|{
 2050|  3.15k|    IPos hash_head;          /* head of hash chain */
 2051|  3.15k|    bool bflush;              /* set if current block must be flushed */
 2052|       |
 2053|       |    /* Process the input block. */
 2054|  3.15k|    for(;;)
 2055|  9.13M|    {
 2056|       |        /* Make sure that we always have enough lookahead, except
 2057|       |         * at the end of the input file. We need maxMatch bytes
 2058|       |         * for the next match, plus minMatch bytes to insert the
 2059|       |         * string following the next match.
 2060|       |         */
 2061|  9.13M|        if(lookahead_ < kMinLookahead)
  ------------------
  |  Branch (2061:12): [True: 22.6k, False: 9.11M]
  ------------------
 2062|  22.6k|        {
 2063|  22.6k|            fill_window(zs);
 2064|  22.6k|            if(lookahead_ < kMinLookahead && flush == Flush::none)
  ------------------
  |  Branch (2064:16): [True: 17.7k, False: 4.90k]
  |  Branch (2064:46): [True: 452, False: 17.3k]
  ------------------
 2065|    452|                return need_more;
 2066|  22.2k|            if(lookahead_ == 0)
  ------------------
  |  Branch (2066:16): [True: 1.01k, False: 21.2k]
  ------------------
 2067|  1.01k|                break; /* flush the current block */
 2068|  22.2k|        }
 2069|       |
 2070|       |        /* Insert the string window[strstart .. strstart+2] in the
 2071|       |         * dictionary, and set hash_head to the head of the hash chain:
 2072|       |         */
 2073|  9.13M|        hash_head = 0;
 2074|  9.13M|        if(lookahead_ >= minMatch)
  ------------------
  |  Branch (2074:12): [True: 9.13M, False: 250]
  ------------------
 2075|  9.13M|            insert_string(hash_head);
 2076|       |
 2077|       |        /* Find the longest match, discarding those <= prev_length.
 2078|       |         */
 2079|  9.13M|        prev_length_ = match_length_, prev_match_ = match_start_;
 2080|  9.13M|        match_length_ = minMatch-1;
 2081|       |
 2082|  9.13M|        if(hash_head != 0 && prev_length_ < max_lazy_match_ &&
  ------------------
  |  Branch (2082:12): [True: 8.99M, False: 139k]
  |  Branch (2082:30): [True: 7.04M, False: 1.95M]
  ------------------
 2083|  9.13M|            strstart_ - hash_head <= max_dist())
  ------------------
  |  Branch (2083:13): [True: 7.04M, False: 3.06k]
  ------------------
 2084|  7.04M|        {
 2085|       |            /* To simplify the code, we prevent matches with the string
 2086|       |             * of window index 0 (in particular we have to avoid a match
 2087|       |             * of the string with itself at the start of the input file).
 2088|       |             */
 2089|  7.04M|            match_length_ = longest_match(hash_head);
 2090|       |            /* longest_match() sets match_start */
 2091|       |
 2092|  7.04M|            if(match_length_ <= 5 && (strategy_ == Strategy::filtered
  ------------------
  |  Branch (2092:16): [True: 5.14M, False: 1.89M]
  |  Branch (2092:39): [True: 0, False: 5.14M]
  ------------------
 2093|  5.14M|                || (match_length_ == minMatch &&
  ------------------
  |  Branch (2093:21): [True: 129k, False: 5.01M]
  ------------------
 2094|  5.14M|                    strstart_ - match_start_ > kTooFar)
  ------------------
  |  Branch (2094:21): [True: 45.2k, False: 84.5k]
  ------------------
 2095|  5.14M|                ))
 2096|  45.2k|            {
 2097|       |                /* If prev_match is also minMatch, match_start is garbage
 2098|       |                 * but we will ignore the current match anyway.
 2099|       |                 */
 2100|  45.2k|                match_length_ = minMatch-1;
 2101|  45.2k|            }
 2102|  7.04M|        }
 2103|       |        /* If there was a match at the previous step and the current
 2104|       |         * match is not better, output the previous match:
 2105|       |         */
 2106|  9.13M|        if(prev_length_ >= minMatch && match_length_ <= prev_length_)
  ------------------
  |  Branch (2106:12): [True: 2.23M, False: 6.89M]
  |  Branch (2106:40): [True: 2.08M, False: 154k]
  ------------------
 2107|  2.08M|        {
 2108|       |            /* Do not insert strings in hash table beyond this. */
 2109|  2.08M|            uInt max_insert = strstart_ + lookahead_ - minMatch;
 2110|       |
 2111|  2.08M|            tr_tally_dist(
 2112|  2.08M|                static_cast<std::uint16_t>(strstart_ -1 - prev_match_),
 2113|  2.08M|                static_cast<std::uint8_t>(prev_length_ - minMatch), bflush);
 2114|       |
 2115|       |            /* Insert in hash table all strings up to the end of the match.
 2116|       |             * strstart-1 and strstart are already inserted. If there is not
 2117|       |             * enough lookahead, the last two strings are not inserted in
 2118|       |             * the hash table.
 2119|       |             */
 2120|  2.08M|            lookahead_ -= prev_length_-1;
 2121|  2.08M|            prev_length_ -= 2;
 2122|   153M|            do {
 2123|   153M|                if(++strstart_ <= max_insert)
  ------------------
  |  Branch (2123:20): [True: 153M, False: 722]
  ------------------
 2124|   153M|                    insert_string(hash_head);
 2125|   153M|            }
 2126|   153M|            while(--prev_length_ != 0);
  ------------------
  |  Branch (2126:19): [True: 151M, False: 2.08M]
  ------------------
 2127|  2.08M|            match_available_ = 0;
 2128|  2.08M|            match_length_ = minMatch-1;
 2129|  2.08M|            strstart_++;
 2130|       |
 2131|  2.08M|            if(bflush)
  ------------------
  |  Branch (2131:16): [True: 1.87k, False: 2.08M]
  ------------------
 2132|  1.87k|            {
 2133|  1.87k|                flush_block(zs, false);
 2134|  1.87k|                if(zs.avail_out == 0)
  ------------------
  |  Branch (2134:20): [True: 541, False: 1.33k]
  ------------------
 2135|    541|                    return need_more;
 2136|  1.87k|            }
 2137|       |
 2138|  2.08M|        }
 2139|  7.05M|        else if(match_available_)
  ------------------
  |  Branch (2139:17): [True: 4.97M, False: 2.08M]
  ------------------
 2140|  4.97M|        {
 2141|       |            /* If there was no match at the previous position, output a
 2142|       |             * single literal. If there was a match but the current match
 2143|       |             * is longer, truncate the previous match to a single literal.
 2144|       |             */
 2145|  4.97M|            tr_tally_lit(window_[strstart_-1], bflush);
 2146|  4.97M|            if(bflush)
  ------------------
  |  Branch (2146:16): [True: 4.85k, False: 4.96M]
  ------------------
 2147|  4.85k|                flush_block(zs, false);
 2148|  4.97M|            strstart_++;
 2149|  4.97M|            lookahead_--;
 2150|  4.97M|            if(zs.avail_out == 0)
  ------------------
  |  Branch (2150:16): [True: 1.15k, False: 4.96M]
  ------------------
 2151|  1.15k|                return need_more;
 2152|  4.97M|        }
 2153|  2.08M|        else
 2154|  2.08M|        {
 2155|       |            /* There is no previous match to compare with, wait for
 2156|       |             * the next step to decide.
 2157|       |             */
 2158|  2.08M|            match_available_ = 1;
 2159|  2.08M|            strstart_++;
 2160|  2.08M|            lookahead_--;
 2161|  2.08M|        }
 2162|  9.13M|    }
 2163|  1.01k|    BOOST_ASSERT(flush != Flush::none);
  ------------------
  |  |   66|  1.01k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
 2164|  1.01k|    if(match_available_)
  ------------------
  |  Branch (2164:8): [True: 128, False: 885]
  ------------------
 2165|    128|    {
 2166|    128|        tr_tally_lit(window_[strstart_-1], bflush);
 2167|    128|        match_available_ = 0;
 2168|    128|    }
 2169|  1.01k|    insert_ = strstart_ < minMatch-1 ? strstart_ : minMatch-1;
  ------------------
  |  Branch (2169:15): [True: 40, False: 973]
  ------------------
 2170|  1.01k|    if(flush == Flush::finish)
  ------------------
  |  Branch (2170:8): [True: 0, False: 1.01k]
  ------------------
 2171|      0|    {
 2172|      0|        flush_block(zs, true);
 2173|      0|        if(zs.avail_out == 0)
  ------------------
  |  Branch (2173:12): [True: 0, False: 0]
  ------------------
 2174|      0|            return finish_started;
 2175|      0|        return finish_done;
 2176|      0|    }
 2177|  1.01k|    if(sym_next_)
  ------------------
  |  Branch (2177:8): [True: 488, False: 525]
  ------------------
 2178|    488|    {
 2179|    488|        flush_block(zs, false);
 2180|    488|        if(zs.avail_out == 0)
  ------------------
  |  Branch (2180:12): [True: 5, False: 483]
  ------------------
 2181|      5|            return need_more;
 2182|    488|    }
 2183|  1.00k|    return block_done;
 2184|  1.01k|}
_ZN5boost5beast4zlib6detail14deflate_stream15tr_stored_blockEPcji:
 1391|  11.5k|{
 1392|  11.5k|    send_bits((stored_block<<1)+last, 3);       // send block type
 1393|  11.5k|    copy_block(buf, (unsigned)stored_len, 1);   // with header
 1394|  11.5k|}
_ZN5boost5beast4zlib6detail14deflate_stream10copy_blockEPcji:
 1325|  11.5k|{
 1326|  11.5k|    bi_windup();        // align on byte boundary
 1327|       |
 1328|  11.5k|    if(header)
  ------------------
  |  Branch (1328:8): [True: 11.5k, False: 0]
  ------------------
 1329|  11.5k|    {
 1330|  11.5k|        put_short((std::uint16_t)len);
 1331|  11.5k|        put_short((std::uint16_t)~len);
 1332|  11.5k|    }
 1333|  11.5k|    if(buf)
  ------------------
  |  Branch (1333:8): [True: 10.3k, False: 1.13k]
  ------------------
 1334|  10.3k|        std::memcpy(&pending_buf_[pending_], buf, len);
 1335|  11.5k|    pending_ += len;
 1336|  11.5k|}

_ZN5boost5beast4zlib6detail14inflate_streamC2Ev:
   64|  2.56k|    {
   65|  2.56k|        w_.reset(15);
   66|  2.56k|    }

_ZN5boost5beast4zlib6detail14inflate_stream7doResetEi:
   58|  2.56k|{
   59|  2.56k|    if(windowBits < 8 || windowBits > 15)
  ------------------
  |  Branch (59:8): [True: 0, False: 2.56k]
  |  Branch (59:26): [True: 0, False: 2.56k]
  ------------------
   60|      0|        BOOST_THROW_EXCEPTION(std::domain_error{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
   61|  2.56k|            "windowBits out of range"});
   62|  2.56k|    w_.reset(windowBits);
   63|       |
   64|  2.56k|    bi_.flush();
   65|  2.56k|    mode_ = HEAD;
   66|  2.56k|    last_ = 0;
   67|  2.56k|    dmax_ = 32768U;
   68|  2.56k|    lencode_ = codes_;
   69|  2.56k|    distcode_ = codes_;
   70|  2.56k|    next_ = codes_;
   71|  2.56k|    back_ = -1;
   72|  2.56k|}
_ZN5boost5beast4zlib6detail14inflate_stream7doWriteERNS1_8z_paramsENS1_5FlushERNS_6system10error_codeE:
   77|  65.0M|{
   78|  65.0M|    ranges r;
   79|  65.0M|    r.in.first = static_cast<
   80|  65.0M|        std::uint8_t const*>(zs.next_in);
   81|  65.0M|    r.in.last = r.in.first + zs.avail_in;
   82|  65.0M|    r.in.next = r.in.first;
   83|  65.0M|    r.out.first = static_cast<
   84|  65.0M|        std::uint8_t*>(zs.next_out);
   85|  65.0M|    r.out.last = r.out.first + zs.avail_out;
   86|  65.0M|    r.out.next = r.out.first;
   87|       |
   88|  65.0M|    auto const done =
   89|  65.0M|        [&]
   90|  65.0M|        {
   91|       |            /*
   92|       |               Return from inflate(), updating the total counts and the check value.
   93|       |               If there was no progress during the inflate() call, return a buffer
   94|       |               error.  Call updatewindow() to create and/or update the window state.
   95|       |               Note: a memory error from inflate() is non-recoverable.
   96|       |             */
   97|       |
   98|       |
   99|       |            // VFALCO TODO Don't allocate update the window unless necessary
  100|  65.0M|            if(/*wsize_ ||*/ (r.out.used() && mode_ < BAD &&
  101|  65.0M|                    (mode_ < CHECK || flush != Flush::finish)))
  102|  65.0M|                w_.write(r.out.first, r.out.used());
  103|       |
  104|  65.0M|            zs.next_in = r.in.next;
  105|  65.0M|            zs.avail_in = r.in.avail();
  106|  65.0M|            zs.next_out = r.out.next;
  107|  65.0M|            zs.avail_out = r.out.avail();
  108|  65.0M|            zs.total_in += r.in.used();
  109|  65.0M|            zs.total_out += r.out.used();
  110|  65.0M|            zs.data_type = bi_.size() + (last_ ? 64 : 0) +
  111|  65.0M|                (mode_ == TYPE ? 128 : 0) +
  112|  65.0M|                (mode_ == LEN_ || mode_ == COPY_ ? 256 : 0);
  113|       |
  114|  65.0M|            if(((! r.in.used() && ! r.out.used()) ||
  115|  65.0M|                    flush == Flush::finish) && ! ec)
  116|  65.0M|            {
  117|  65.0M|                BOOST_BEAST_ASSIGN_EC(ec, error::need_buffers);
  118|  65.0M|            }
  119|  65.0M|        };
  120|  65.0M|    auto const err =
  121|  65.0M|        [&](error e)
  122|  65.0M|        {
  123|  65.0M|            BOOST_BEAST_ASSIGN_EC(ec, e);
  124|  65.0M|            mode_ = BAD;
  125|  65.0M|        };
  126|       |
  127|  65.0M|    if(mode_ == TYPE)
  ------------------
  |  Branch (127:8): [True: 745, False: 65.0M]
  ------------------
  128|    745|        mode_ = TYPEDO;
  129|       |
  130|  65.0M|    for(;;)
  131|   722M|    {
  132|   722M|        switch(mode_)
  133|   722M|        {
  134|  2.30k|        case HEAD:
  ------------------
  |  Branch (134:9): [True: 2.30k, False: 722M]
  ------------------
  135|  2.30k|            mode_ = TYPEDO;
  136|  2.30k|            break;
  137|       |
  138|  9.84k|        case TYPE:
  ------------------
  |  Branch (138:9): [True: 9.84k, False: 722M]
  ------------------
  139|  9.84k|            if(flush == Flush::block || flush == Flush::trees)
  ------------------
  |  Branch (139:16): [True: 0, False: 9.84k]
  |  Branch (139:41): [True: 0, False: 9.84k]
  ------------------
  140|      0|                return done();
  141|  9.84k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  9.84k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  142|       |
  143|  12.8k|        case TYPEDO:
  ------------------
  |  Branch (143:9): [True: 3.04k, False: 722M]
  ------------------
  144|  12.8k|        {
  145|  12.8k|            if(last_)
  ------------------
  |  Branch (145:16): [True: 21, False: 12.8k]
  ------------------
  146|     21|            {
  147|     21|                bi_.flush_byte();
  148|     21|                mode_ = CHECK;
  149|     21|                break;
  150|     21|            }
  151|  12.8k|            if(! bi_.fill(3, r.in.next, r.in.last))
  ------------------
  |  Branch (151:16): [True: 754, False: 12.1k]
  ------------------
  152|    754|                return done();
  153|  12.1k|            std::uint8_t v;
  154|  12.1k|            bi_.read(v, 1);
  155|  12.1k|            last_ = v != 0;
  156|  12.1k|            bi_.read(v, 2);
  157|  12.1k|            switch(v)
  158|  12.1k|            {
  159|  3.52k|            case 0:
  ------------------
  |  Branch (159:13): [True: 3.52k, False: 8.59k]
  ------------------
  160|       |                // uncompressed block
  161|  3.52k|                mode_ = STORED;
  162|  3.52k|                break;
  163|  6.02k|            case 1:
  ------------------
  |  Branch (163:13): [True: 6.02k, False: 6.09k]
  ------------------
  164|       |                // fixed Huffman table
  165|  6.02k|                fixedTables();
  166|  6.02k|                mode_ = LEN_;             /* decode codes */
  167|  6.02k|                if(flush == Flush::trees)
  ------------------
  |  Branch (167:20): [True: 0, False: 6.02k]
  ------------------
  168|      0|                    return done();
  169|  6.02k|                break;
  170|  6.02k|            case 2:
  ------------------
  |  Branch (170:13): [True: 2.52k, False: 9.58k]
  ------------------
  171|       |                // dynamic Huffman table
  172|  2.52k|                mode_ = TABLE;
  173|  2.52k|                break;
  174|       |
  175|     44|            default:
  ------------------
  |  Branch (175:13): [True: 44, False: 12.0k]
  ------------------
  176|     44|                return err(error::invalid_block_type);
  177|  12.1k|            }
  178|  12.0k|            break;
  179|  12.1k|        }
  180|       |
  181|  12.0k|        case STORED:
  ------------------
  |  Branch (181:9): [True: 4.70k, False: 722M]
  ------------------
  182|  4.70k|        {
  183|  4.70k|            bi_.flush_byte();
  184|  4.70k|            std::uint32_t v;
  185|  4.70k|            if(! bi_.fill(32, r.in.next, r.in.last))
  ------------------
  |  Branch (185:16): [True: 2.17k, False: 2.53k]
  ------------------
  186|  2.17k|                return done();
  187|  2.53k|            bi_.peek(v, 32);
  188|  2.53k|            length_ = v & 0xffff;
  189|  2.53k|            if(length_ != ((v >> 16) ^ 0xffff))
  ------------------
  |  Branch (189:16): [True: 51, False: 2.48k]
  ------------------
  190|     51|                return err(error::invalid_stored_length);
  191|       |            // flush instead of read, otherwise
  192|       |            // undefined right shift behavior.
  193|  2.48k|            bi_.flush();
  194|  2.48k|            mode_ = COPY_;
  195|  2.48k|            if(flush == Flush::trees)
  ------------------
  |  Branch (195:16): [True: 0, False: 2.48k]
  ------------------
  196|      0|                return done();
  197|  2.48k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  2.48k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  198|  2.48k|        }
  199|       |
  200|  2.48k|        case COPY_:
  ------------------
  |  Branch (200:9): [True: 0, False: 722M]
  ------------------
  201|  2.48k|            mode_ = COPY;
  202|  2.48k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  2.48k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  203|       |
  204|  39.2M|        case COPY:
  ------------------
  |  Branch (204:9): [True: 39.2M, False: 683M]
  ------------------
  205|  39.2M|        {
  206|  39.2M|            auto copy = length_;
  207|  39.2M|            if(copy == 0)
  ------------------
  |  Branch (207:16): [True: 2.34k, False: 39.2M]
  ------------------
  208|  2.34k|            {
  209|  2.34k|                mode_ = TYPE;
  210|  2.34k|                break;
  211|  2.34k|            }
  212|  39.2M|            copy = clamp(copy, r.in.avail());
  213|  39.2M|            copy = clamp(copy, r.out.avail());
  214|  39.2M|            if(copy == 0)
  ------------------
  |  Branch (214:16): [True: 19.6M, False: 19.6M]
  ------------------
  215|  19.6M|                return done();
  216|  19.6M|            std::memcpy(r.out.next, r.in.next, copy);
  217|  19.6M|            r.in.next += copy;
  218|  19.6M|            r.out.next += copy;
  219|  19.6M|            length_ -= copy;
  220|  19.6M|            break;
  221|  39.2M|        }
  222|       |
  223|  2.64k|        case TABLE:
  ------------------
  |  Branch (223:9): [True: 2.64k, False: 722M]
  ------------------
  224|  2.64k|            if(! bi_.fill(5 + 5 + 4, r.in.next, r.in.last))
  ------------------
  |  Branch (224:16): [True: 139, False: 2.50k]
  ------------------
  225|    139|                return done();
  226|  2.50k|            bi_.read(nlen_, 5);
  227|  2.50k|            nlen_ += 257;
  228|  2.50k|            bi_.read(ndist_, 5);
  229|  2.50k|            ndist_ += 1;
  230|  2.50k|            bi_.read(ncode_, 4);
  231|  2.50k|            ncode_ += 4;
  232|  2.50k|            if(nlen_ > 286 || ndist_ > 30)
  ------------------
  |  Branch (232:16): [True: 5, False: 2.50k]
  |  Branch (232:31): [True: 3, False: 2.49k]
  ------------------
  233|      8|                return err(error::too_many_symbols);
  234|  2.49k|            have_ = 0;
  235|  2.49k|            mode_ = LENLENS;
  236|  2.49k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  2.49k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  237|       |
  238|  2.55k|        case LENLENS:
  ------------------
  |  Branch (238:9): [True: 60, False: 722M]
  ------------------
  239|  2.55k|        {
  240|  2.55k|            static std::array<std::uint8_t, 19> constexpr order = {{
  241|  2.55k|                16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}};
  242|  36.4k|            while(have_ < ncode_)
  ------------------
  |  Branch (242:19): [True: 33.9k, False: 2.48k]
  ------------------
  243|  33.9k|            {
  244|  33.9k|                if(! bi_.fill(3, r.in.next, r.in.last))
  ------------------
  |  Branch (244:20): [True: 74, False: 33.8k]
  ------------------
  245|     74|                    return done();
  246|  33.8k|                bi_.read(lens_[order[have_]], 3);
  247|  33.8k|                ++have_;
  248|  33.8k|            }
  249|  15.9k|            while(have_ < order.size())
  ------------------
  |  Branch (249:19): [True: 13.4k, False: 2.48k]
  ------------------
  250|  13.4k|                lens_[order[have_++]] = 0;
  251|       |
  252|  2.48k|            next_ = &codes_[0];
  253|  2.48k|            lencode_ = next_;
  254|  2.48k|            lenbits_ = 7;
  255|  2.48k|            inflate_table(build::codes, &lens_[0],
  256|  2.48k|                order.size(), &next_, &lenbits_, work_, ec);
  257|  2.48k|            if(ec)
  ------------------
  |  Branch (257:16): [True: 35, False: 2.44k]
  ------------------
  258|     35|            {
  259|     35|                mode_ = BAD;
  260|     35|                break;
  261|     35|            }
  262|  2.44k|            have_ = 0;
  263|  2.44k|            mode_ = CODELENS;
  264|  2.44k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  2.44k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  265|  2.44k|        }
  266|       |
  267|  2.80k|        case CODELENS:
  ------------------
  |  Branch (267:9): [True: 360, False: 722M]
  ------------------
  268|  2.80k|        {
  269|   548k|            while(have_ < nlen_ + ndist_)
  ------------------
  |  Branch (269:19): [True: 545k, False: 2.32k]
  ------------------
  270|   545k|            {
  271|   545k|                std::uint16_t v;
  272|   545k|                if(! bi_.fill(lenbits_, r.in.next, r.in.last))
  ------------------
  |  Branch (272:20): [True: 267, False: 545k]
  ------------------
  273|    267|                    return done();
  274|   545k|                bi_.peek(v, lenbits_);
  275|   545k|                auto cp = &lencode_[v];
  276|   545k|                if(cp->val < 16)
  ------------------
  |  Branch (276:20): [True: 531k, False: 13.8k]
  ------------------
  277|   531k|                {
  278|   531k|                    bi_.drop(cp->bits);
  279|   531k|                    lens_[have_++] = cp->val;
  280|   531k|                }
  281|  13.8k|                else
  282|  13.8k|                {
  283|  13.8k|                    std::uint16_t len;
  284|  13.8k|                    std::uint16_t copy;
  285|  13.8k|                    if(cp->val == 16)
  ------------------
  |  Branch (285:24): [True: 3.20k, False: 10.6k]
  ------------------
  286|  3.20k|                    {
  287|  3.20k|                        if(! bi_.fill(cp->bits + 2, r.in.next, r.in.last))
  ------------------
  |  Branch (287:28): [True: 64, False: 3.14k]
  ------------------
  288|     64|                            return done();
  289|  3.14k|                        bi_.drop(cp->bits);
  290|  3.14k|                        if(have_ == 0)
  ------------------
  |  Branch (290:28): [True: 5, False: 3.14k]
  ------------------
  291|      5|                            return err(error::invalid_bit_length_repeat);
  292|  3.14k|                        bi_.read(copy, 2);
  293|  3.14k|                        len = lens_[have_ - 1];
  294|  3.14k|                        copy += 3;
  295|       |
  296|  3.14k|                    }
  297|  10.6k|                    else if(cp->val == 17)
  ------------------
  |  Branch (297:29): [True: 10.2k, False: 397]
  ------------------
  298|  10.2k|                    {
  299|  10.2k|                        if(! bi_.fill(cp->bits + 3, r.in.next, r.in.last))
  ------------------
  |  Branch (299:28): [True: 81, False: 10.2k]
  ------------------
  300|     81|                            return done();
  301|  10.2k|                        bi_.drop(cp->bits);
  302|  10.2k|                        bi_.read(copy, 3);
  303|  10.2k|                        len = 0;
  304|  10.2k|                        copy += 3;
  305|  10.2k|                    }
  306|    397|                    else
  307|    397|                    {
  308|    397|                        if(! bi_.fill(cp->bits + 7, r.in.next, r.in.last))
  ------------------
  |  Branch (308:28): [True: 52, False: 345]
  ------------------
  309|     52|                            return done();
  310|    345|                        bi_.drop(cp->bits);
  311|    345|                        bi_.read(copy, 7);
  312|    345|                        len = 0;
  313|    345|                        copy += 11;
  314|    345|                    }
  315|  13.6k|                    if(have_ + copy > nlen_ + ndist_)
  ------------------
  |  Branch (315:24): [True: 19, False: 13.6k]
  ------------------
  316|     19|                        return err(error::invalid_bit_length_repeat);
  317|  13.6k|                    std::fill(&lens_[have_], &lens_[have_ + copy], len);
  318|  13.6k|                    have_ += copy;
  319|  13.6k|                    copy = 0;
  320|  13.6k|                }
  321|   545k|            }
  322|       |            // handle error breaks in while
  323|  2.32k|            if(mode_ == BAD)
  ------------------
  |  Branch (323:16): [True: 0, False: 2.32k]
  ------------------
  324|      0|                break;
  325|       |            // check for end-of-block code (better have one)
  326|  2.32k|            if(lens_[256] == 0)
  ------------------
  |  Branch (326:16): [True: 4, False: 2.31k]
  ------------------
  327|      4|                return err(error::missing_eob);
  328|       |            /* build code tables -- note: do not change the lenbits or distbits
  329|       |               values here (9 and 6) without reading the comments in inftrees.hpp
  330|       |               concerning the kEnough constants, which depend on those values */
  331|  2.31k|            next_ = &codes_[0];
  332|  2.31k|            lencode_ = next_;
  333|  2.31k|            lenbits_ = 9;
  334|  2.31k|            inflate_table(build::lens, &lens_[0],
  335|  2.31k|                nlen_, &next_, &lenbits_, work_, ec);
  336|  2.31k|            if(ec)
  ------------------
  |  Branch (336:16): [True: 28, False: 2.28k]
  ------------------
  337|     28|            {
  338|     28|                mode_ = BAD;
  339|     28|                return;
  340|     28|            }
  341|  2.28k|            distcode_ = next_;
  342|  2.28k|            distbits_ = 6;
  343|  2.28k|            inflate_table(build::dists, lens_ + nlen_,
  344|  2.28k|                ndist_, &next_, &distbits_, work_, ec);
  345|  2.28k|            if(ec)
  ------------------
  |  Branch (345:16): [True: 39, False: 2.25k]
  ------------------
  346|     39|            {
  347|     39|                mode_ = BAD;
  348|     39|                return;
  349|     39|            }
  350|  2.25k|            mode_ = LEN_;
  351|  2.25k|            if(flush == Flush::trees)
  ------------------
  |  Branch (351:16): [True: 0, False: 2.25k]
  ------------------
  352|      0|                return done();
  353|  2.25k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  2.25k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  354|  2.25k|        }
  355|       |
  356|  8.27k|        case LEN_:
  ------------------
  |  Branch (356:9): [True: 6.02k, False: 722M]
  ------------------
  357|  8.27k|            mode_ = LEN;
  358|  8.27k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  8.27k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  359|       |
  360|   364M|        case LEN:
  ------------------
  |  Branch (360:9): [True: 364M, False: 358M]
  ------------------
  361|   364M|        {
  362|   364M|            if(r.in.avail() >= 6 && r.out.avail() >= 258)
  ------------------
  |  Branch (362:16): [True: 166k, False: 363M]
  |  Branch (362:37): [True: 74.4k, False: 92.5k]
  ------------------
  363|  74.4k|            {
  364|  74.4k|                inflate_fast(r, ec);
  365|  74.4k|                if(ec)
  ------------------
  |  Branch (365:20): [True: 57, False: 74.3k]
  ------------------
  366|     57|                {
  367|     57|                    mode_ = BAD;
  368|     57|                    return;
  369|     57|                }
  370|  74.3k|                if(mode_ == TYPE)
  ------------------
  |  Branch (370:20): [True: 5.94k, False: 68.4k]
  ------------------
  371|  5.94k|                    back_ = -1;
  372|  74.3k|                break;
  373|  74.4k|            }
  374|   364M|            if(! bi_.fill(lenbits_, r.in.next, r.in.last))
  ------------------
  |  Branch (374:16): [True: 45.1M, False: 318M]
  ------------------
  375|  45.1M|                return done();
  376|   318M|            std::uint16_t v;
  377|   318M|            back_ = 0;
  378|   318M|            bi_.peek(v, lenbits_);
  379|   318M|            auto cp = &lencode_[v];
  380|   318M|            if(cp->op && (cp->op & 0xf0) == 0)
  ------------------
  |  Branch (380:16): [True: 45.6M, False: 273M]
  |  Branch (380:26): [True: 45.6M, False: 69.3k]
  ------------------
  381|  45.6M|            {
  382|  45.6M|                auto prev = cp;
  383|  45.6M|                if(! bi_.fill(prev->bits + prev->op, r.in.next, r.in.last))
  ------------------
  |  Branch (383:20): [True: 202, False: 45.6M]
  ------------------
  384|    202|                    return done();
  385|  45.6M|                bi_.peek(v, prev->bits + prev->op);
  386|  45.6M|                cp = &lencode_[prev->val + (v >> prev->bits)];
  387|  45.6M|                bi_.drop(prev->bits + cp->bits);
  388|  45.6M|                back_ += prev->bits + cp->bits;
  389|  45.6M|            }
  390|   273M|            else
  391|   273M|            {
  392|   273M|                bi_.drop(cp->bits);
  393|   273M|                back_ += cp->bits;
  394|   273M|            }
  395|   318M|            length_ = cp->val;
  396|   318M|            if(cp->op == 0)
  ------------------
  |  Branch (396:16): [True: 318M, False: 69.4k]
  ------------------
  397|   318M|            {
  398|   318M|                mode_ = LIT;
  399|   318M|                break;
  400|   318M|            }
  401|  69.4k|            if(cp->op & 32)
  ------------------
  |  Branch (401:16): [True: 1.54k, False: 67.8k]
  ------------------
  402|  1.54k|            {
  403|  1.54k|                back_ = -1;
  404|  1.54k|                mode_ = TYPE;
  405|  1.54k|                break;
  406|  1.54k|            }
  407|  67.8k|            if(cp->op & 64)
  ------------------
  |  Branch (407:16): [True: 5, False: 67.8k]
  ------------------
  408|      5|                return err(error::invalid_literal_length);
  409|  67.8k|            extra_ = cp->op & 15;
  410|  67.8k|            mode_ = LENEXT;
  411|  67.8k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  67.8k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  412|  67.8k|        }
  413|       |
  414|  70.9k|        case LENEXT:
  ------------------
  |  Branch (414:9): [True: 3.08k, False: 722M]
  ------------------
  415|  70.9k|            if(extra_)
  ------------------
  |  Branch (415:16): [True: 23.5k, False: 47.4k]
  ------------------
  416|  23.5k|            {
  417|  23.5k|                if(! bi_.fill(extra_, r.in.next, r.in.last))
  ------------------
  |  Branch (417:20): [True: 3.08k, False: 20.4k]
  ------------------
  418|  3.08k|                    return done();
  419|  20.4k|                std::uint16_t v;
  420|  20.4k|                bi_.read(v, extra_);
  421|  20.4k|                length_ += v;
  422|  20.4k|                back_ += extra_;
  423|  20.4k|            }
  424|  67.8k|            was_ = length_;
  425|  67.8k|            mode_ = DIST;
  426|  67.8k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  67.8k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  427|       |
  428|  68.5k|        case DIST:
  ------------------
  |  Branch (428:9): [True: 710, False: 722M]
  ------------------
  429|  68.5k|        {
  430|  68.5k|            if(! bi_.fill(distbits_, r.in.next, r.in.last))
  ------------------
  |  Branch (430:16): [True: 742, False: 67.8k]
  ------------------
  431|    742|                return done();
  432|  67.8k|            std::uint16_t v;
  433|  67.8k|            bi_.peek(v, distbits_);
  434|  67.8k|            auto cp = &distcode_[v];
  435|  67.8k|            if((cp->op & 0xf0) == 0)
  ------------------
  |  Branch (435:16): [True: 0, False: 67.8k]
  ------------------
  436|      0|            {
  437|      0|                auto prev = cp;
  438|      0|                if(! bi_.fill(prev->bits + prev->op, r.in.next, r.in.last))
  ------------------
  |  Branch (438:20): [True: 0, False: 0]
  ------------------
  439|      0|                    return done();
  440|      0|                bi_.peek(v, prev->bits + prev->op);
  441|      0|                cp = &distcode_[prev->val + (v >> prev->bits)];
  442|      0|                bi_.drop(prev->bits + cp->bits);
  443|      0|                back_ += prev->bits + cp->bits;
  444|      0|            }
  445|  67.8k|            else
  446|  67.8k|            {
  447|  67.8k|                bi_.drop(cp->bits);
  448|  67.8k|                back_ += cp->bits;
  449|  67.8k|            }
  450|  67.8k|            if(cp->op & 64)
  ------------------
  |  Branch (450:16): [True: 26, False: 67.8k]
  ------------------
  451|     26|                return err(error::invalid_distance_code);
  452|  67.8k|            offset_ = cp->val;
  453|  67.8k|            extra_ = cp->op & 15;
  454|  67.8k|            mode_ = DISTEXT;
  455|  67.8k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  67.8k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  456|  67.8k|        }
  457|       |
  458|  71.5k|        case DISTEXT:
  ------------------
  |  Branch (458:9): [True: 3.78k, False: 722M]
  ------------------
  459|  71.5k|            if(extra_)
  ------------------
  |  Branch (459:16): [True: 69.5k, False: 2.04k]
  ------------------
  460|  69.5k|            {
  461|  69.5k|                std::uint16_t v;
  462|  69.5k|                if(! bi_.fill(extra_, r.in.next, r.in.last))
  ------------------
  |  Branch (462:20): [True: 3.83k, False: 65.7k]
  ------------------
  463|  3.83k|                    return done();
  464|  65.7k|                bi_.read(v, extra_);
  465|  65.7k|                offset_ += v;
  466|  65.7k|                back_ += extra_;
  467|  65.7k|            }
  468|       |#ifdef INFLATE_STRICT
  469|       |            if(offset_ > dmax_)
  470|       |                return err(error::invalid_distance);
  471|       |#endif
  472|  67.7k|            mode_ = MATCH;
  473|  67.7k|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|  67.7k|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  474|       |
  475|   192k|        case MATCH:
  ------------------
  |  Branch (475:9): [True: 124k, False: 722M]
  ------------------
  476|   192k|        {
  477|   192k|            if(! r.out.avail())
  ------------------
  |  Branch (477:16): [True: 43.2k, False: 149k]
  ------------------
  478|  43.2k|                return done();
  479|   149k|            if(offset_ > r.out.used())
  ------------------
  |  Branch (479:16): [True: 57.0k, False: 92.3k]
  ------------------
  480|  57.0k|            {
  481|       |                // copy from window
  482|  57.0k|                auto offset = static_cast<std::uint16_t>(
  483|  57.0k|                    offset_ - r.out.used());
  484|  57.0k|                if(offset > w_.size())
  ------------------
  |  Branch (484:20): [True: 44, False: 56.9k]
  ------------------
  485|     44|                    return err(error::invalid_distance);
  486|  56.9k|                auto const n = clamp(clamp(
  487|  56.9k|                    length_, offset), r.out.avail());
  488|  56.9k|                w_.read(r.out.next, offset, n);
  489|  56.9k|                r.out.next += n;
  490|  56.9k|                length_ -= n;
  491|  56.9k|            }
  492|  92.3k|            else
  493|  92.3k|            {
  494|       |                // copy from output
  495|  92.3k|                auto in = r.out.next - offset_;
  496|  92.3k|                auto n = clamp(length_, r.out.avail());
  497|  92.3k|                length_ -= n;
  498|  10.9M|                while(n--)
  ------------------
  |  Branch (498:23): [True: 10.8M, False: 92.3k]
  ------------------
  499|  10.8M|                    *r.out.next++ = *in++;
  500|  92.3k|            }
  501|   149k|            if(length_ == 0)
  ------------------
  |  Branch (501:16): [True: 67.5k, False: 81.7k]
  ------------------
  502|  67.5k|                mode_ = LEN;
  503|   149k|            break;
  504|   149k|        }
  505|       |
  506|   319M|        case LIT:
  ------------------
  |  Branch (506:9): [True: 319M, False: 403M]
  ------------------
  507|   319M|        {
  508|   319M|            if(! r.out.avail())
  ------------------
  |  Branch (508:16): [True: 178k, False: 318M]
  ------------------
  509|   178k|                return done();
  510|   318M|            auto const v = static_cast<std::uint8_t>(length_);
  511|   318M|            *r.out.next++ = v;
  512|   318M|            mode_ = LEN;
  513|   318M|            break;
  514|   319M|        }
  515|       |
  516|     21|        case CHECK:
  ------------------
  |  Branch (516:9): [True: 21, False: 722M]
  ------------------
  517|     21|            mode_ = DONE;
  518|     21|            BOOST_FALLTHROUGH;
  ------------------
  |  |  125|     21|#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
  ------------------
  519|       |
  520|     21|        case DONE:
  ------------------
  |  Branch (520:9): [True: 0, False: 722M]
  ------------------
  521|     21|        {
  522|     21|            BOOST_BEAST_ASSIGN_EC(ec, error::end_of_stream);
  ------------------
  |  |  111|     21|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     21|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     21|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     21|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     21|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  523|     21|            return done();
  524|     21|        }
  525|       |
  526|     35|        case BAD:
  ------------------
  |  Branch (526:9): [True: 35, False: 722M]
  ------------------
  527|     35|            return done();
  528|       |
  529|      0|        case SYNC:
  ------------------
  |  Branch (529:9): [True: 0, False: 722M]
  ------------------
  530|      0|        default:
  ------------------
  |  Branch (530:9): [True: 0, False: 722M]
  ------------------
  531|      0|            BOOST_THROW_EXCEPTION(std::logic_error{
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  532|   722M|                "stream error"});
  533|   722M|        }
  534|   722M|    }
  535|  65.0M|}
_ZZN5boost5beast4zlib6detail14inflate_stream7doWriteERNS1_8z_paramsENS1_5FlushERNS_6system10error_codeEENKUlvE_clEv:
   90|  65.0M|        {
   91|       |            /*
   92|       |               Return from inflate(), updating the total counts and the check value.
   93|       |               If there was no progress during the inflate() call, return a buffer
   94|       |               error.  Call updatewindow() to create and/or update the window state.
   95|       |               Note: a memory error from inflate() is non-recoverable.
   96|       |             */
   97|       |
   98|       |
   99|       |            // VFALCO TODO Don't allocate update the window unless necessary
  100|  65.0M|            if(/*wsize_ ||*/ (r.out.used() && mode_ < BAD &&
  ------------------
  |  Branch (100:31): [True: 65.0M, False: 1.96k]
  |  Branch (100:47): [True: 65.0M, False: 14]
  ------------------
  101|  65.0M|                    (mode_ < CHECK || flush != Flush::finish)))
  ------------------
  |  Branch (101:22): [True: 65.0M, False: 18]
  |  Branch (101:39): [True: 18, False: 0]
  ------------------
  102|  65.0M|                w_.write(r.out.first, r.out.used());
  103|       |
  104|  65.0M|            zs.next_in = r.in.next;
  105|  65.0M|            zs.avail_in = r.in.avail();
  106|  65.0M|            zs.next_out = r.out.next;
  107|  65.0M|            zs.avail_out = r.out.avail();
  108|  65.0M|            zs.total_in += r.in.used();
  109|  65.0M|            zs.total_out += r.out.used();
  110|  65.0M|            zs.data_type = bi_.size() + (last_ ? 64 : 0) +
  ------------------
  |  Branch (110:42): [True: 32.7M, False: 32.2M]
  ------------------
  111|  65.0M|                (mode_ == TYPE ? 128 : 0) +
  ------------------
  |  Branch (111:18): [True: 754, False: 65.0M]
  ------------------
  112|  65.0M|                (mode_ == LEN_ || mode_ == COPY_ ? 256 : 0);
  ------------------
  |  Branch (112:18): [True: 0, False: 65.0M]
  |  Branch (112:35): [True: 0, False: 65.0M]
  ------------------
  113|       |
  114|  65.0M|            if(((! r.in.used() && ! r.out.used()) ||
  ------------------
  |  Branch (114:18): [True: 2, False: 65.0M]
  |  Branch (114:35): [True: 1, False: 1]
  ------------------
  115|  65.0M|                    flush == Flush::finish) && ! ec)
  ------------------
  |  Branch (115:21): [True: 0, False: 65.0M]
  |  Branch (115:48): [True: 0, False: 1]
  ------------------
  116|      0|            {
  117|      0|                BOOST_BEAST_ASSIGN_EC(ec, error::need_buffers);
  ------------------
  |  |  111|      0|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      0|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      0|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      0|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  118|      0|            }
  119|  65.0M|        };
_ZN5boost5beast4zlib6detail14inflate_stream11fixedTablesEv:
  924|  6.02k|{
  925|  6.02k|    auto const fc = get_fixed_tables();
  926|  6.02k|    lencode_ = fc.lencode;
  927|  6.02k|    lenbits_ = fc.lenbits;
  928|  6.02k|    distcode_ = fc.distcode;
  929|  6.02k|    distbits_ = fc.distbits;
  930|  6.02k|}
_ZN5boost5beast4zlib6detail14inflate_stream16get_fixed_tablesEv:
  869|  6.02k|{
  870|  6.02k|    struct fixed_codes : codes
  871|  6.02k|    {
  872|  6.02k|        code len_[512];
  873|  6.02k|        code dist_[32];
  874|       |
  875|  6.02k|        fixed_codes()
  876|  6.02k|        {
  877|  6.02k|            lencode = len_;
  878|  6.02k|            lenbits = 9;
  879|  6.02k|            distcode = dist_;
  880|  6.02k|            distbits = 5;
  881|       |
  882|  6.02k|            std::uint16_t lens[320];
  883|  6.02k|            std::uint16_t work[288];
  884|       |
  885|  6.02k|            std::fill(&lens[  0], &lens[144], std::uint16_t{8});
  886|  6.02k|            std::fill(&lens[144], &lens[256], std::uint16_t{9});
  887|  6.02k|            std::fill(&lens[256], &lens[280], std::uint16_t{7});
  888|  6.02k|            std::fill(&lens[280], &lens[288], std::uint16_t{8});
  889|       |
  890|  6.02k|            {
  891|  6.02k|                error_code ec;
  892|  6.02k|                auto next = &len_[0];
  893|  6.02k|                inflate_table(build::lens,
  894|  6.02k|                    lens, 288, &next, &lenbits, work, ec);
  895|  6.02k|                if(ec)
  896|  6.02k|                    BOOST_THROW_EXCEPTION(std::logic_error{ec.message()});
  897|  6.02k|            }
  898|       |
  899|       |            // VFALCO These fixups are from ZLib
  900|  6.02k|            len_[ 99].op = 64;
  901|  6.02k|            len_[227].op = 64;
  902|  6.02k|            len_[355].op = 64;
  903|  6.02k|            len_[483].op = 64;
  904|       |
  905|  6.02k|            {
  906|  6.02k|                error_code ec;
  907|  6.02k|                auto next = &dist_[0];
  908|  6.02k|                std::fill(&lens[0], &lens[32], std::uint16_t{5});
  909|  6.02k|                inflate_table(build::dists,
  910|  6.02k|                    lens, 32, &next, &distbits, work, ec);
  911|  6.02k|                if(ec)
  912|  6.02k|                    BOOST_THROW_EXCEPTION(std::logic_error{ec.message()});
  913|  6.02k|            }
  914|  6.02k|        }
  915|  6.02k|    };
  916|       |
  917|  6.02k|    static fixed_codes const fc;
  918|  6.02k|    return fc;
  919|  6.02k|}
_ZZN5boost5beast4zlib6detail14inflate_stream16get_fixed_tablesEvEN11fixed_codesC2Ev:
  876|      1|        {
  877|      1|            lencode = len_;
  878|      1|            lenbits = 9;
  879|      1|            distcode = dist_;
  880|      1|            distbits = 5;
  881|       |
  882|      1|            std::uint16_t lens[320];
  883|      1|            std::uint16_t work[288];
  884|       |
  885|      1|            std::fill(&lens[  0], &lens[144], std::uint16_t{8});
  886|      1|            std::fill(&lens[144], &lens[256], std::uint16_t{9});
  887|      1|            std::fill(&lens[256], &lens[280], std::uint16_t{7});
  888|      1|            std::fill(&lens[280], &lens[288], std::uint16_t{8});
  889|       |
  890|      1|            {
  891|      1|                error_code ec;
  892|      1|                auto next = &len_[0];
  893|      1|                inflate_table(build::lens,
  894|      1|                    lens, 288, &next, &lenbits, work, ec);
  895|      1|                if(ec)
  ------------------
  |  Branch (895:20): [True: 0, False: 1]
  ------------------
  896|      0|                    BOOST_THROW_EXCEPTION(std::logic_error{ec.message()});
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  897|      1|            }
  898|       |
  899|       |            // VFALCO These fixups are from ZLib
  900|      1|            len_[ 99].op = 64;
  901|      1|            len_[227].op = 64;
  902|      1|            len_[355].op = 64;
  903|      1|            len_[483].op = 64;
  904|       |
  905|      1|            {
  906|      1|                error_code ec;
  907|      1|                auto next = &dist_[0];
  908|      1|                std::fill(&lens[0], &lens[32], std::uint16_t{5});
  909|      1|                inflate_table(build::dists,
  910|      1|                    lens, 32, &next, &distbits, work, ec);
  911|      1|                if(ec)
  ------------------
  |  Branch (911:20): [True: 0, False: 1]
  ------------------
  912|      0|                    BOOST_THROW_EXCEPTION(std::logic_error{ec.message()});
  ------------------
  |  |  182|      0|#define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x, BOOST_CURRENT_LOCATION)
  |  |  ------------------
  |  |  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  ------------------
  913|      1|            }
  914|      1|        }
_ZZN5boost5beast4zlib6detail14inflate_stream7doWriteERNS1_8z_paramsENS1_5FlushERNS_6system10error_codeEENKUlNS1_5errorEE_clESA_:
  122|    206|        {
  123|    206|            BOOST_BEAST_ASSIGN_EC(ec, e);
  ------------------
  |  |  111|    206|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|    206|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|    206|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|    206|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|    206|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  124|    206|            mode_ = BAD;
  125|    206|        };
_ZN5boost5beast4zlib6detail14inflate_stream13inflate_tableENS3_5buildEPtmPPNS3_4codeEPjS5_RNS_6system10error_codeE:
  561|  7.09k|{
  562|  7.09k|    unsigned len;                   // a code's length in bits
  563|  7.09k|    unsigned sym;                   // index of code symbols
  564|  7.09k|    unsigned min, max;              // minimum and maximum code lengths
  565|  7.09k|    unsigned root;                  // number of index bits for root table
  566|  7.09k|    unsigned curr;                  // number of index bits for current table
  567|  7.09k|    unsigned drop;                  // code bits to drop for sub-table
  568|  7.09k|    int left;                       // number of prefix codes available
  569|  7.09k|    unsigned used;                  // code entries in table used
  570|  7.09k|    unsigned huff;                  // Huffman code
  571|  7.09k|    unsigned incr;                  // for incrementing code, index
  572|  7.09k|    unsigned fill;                  // index for replicating entries
  573|  7.09k|    unsigned low;                   // low bits for current root entry
  574|  7.09k|    unsigned mask;                  // mask for low root bits
  575|  7.09k|    code here;                      // table entry for duplication
  576|  7.09k|    code *next;                     // next available space in table
  577|  7.09k|    std::uint16_t const* base;      // base value table to use
  578|  7.09k|    std::uint16_t const* extra;     // extra bits table to use
  579|  7.09k|    unsigned match;                 // use base and extra for symbol >= match
  580|  7.09k|    std::uint16_t count[15+1];      // number of codes of each length
  581|  7.09k|    std::uint16_t offs[15+1];       // offsets in table for each length
  582|       |
  583|       |    // Length codes 257..285 base
  584|  7.09k|    static std::uint16_t constexpr lbase[31] = {
  585|  7.09k|        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
  586|  7.09k|        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
  587|       |
  588|       |    // Length codes 257..285 extra
  589|  7.09k|    static std::uint16_t constexpr lext[31] = {
  590|  7.09k|        16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
  591|  7.09k|        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202};
  592|       |
  593|       |    // Distance codes 0..29 base
  594|  7.09k|    static std::uint16_t constexpr dbase[32] = {
  595|  7.09k|        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
  596|  7.09k|        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
  597|  7.09k|        8193, 12289, 16385, 24577, 0, 0};
  598|       |
  599|       |    // Distance codes 0..29 extra
  600|  7.09k|    static std::uint16_t constexpr dext[32] = {
  601|  7.09k|        16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
  602|  7.09k|        23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
  603|  7.09k|        28, 28, 29, 29, 64, 64};
  604|       |
  605|       |    /*
  606|       |       Process a set of code lengths to create a canonical Huffman code.  The
  607|       |       code lengths are lens[0..codes-1].  Each length corresponds to the
  608|       |       symbols 0..codes-1.  The Huffman code is generated by first sorting the
  609|       |       symbols by length from short to long, and retaining the symbol order
  610|       |       for codes with equal lengths.  Then the code starts with all zero bits
  611|       |       for the first code of the shortest length, and the codes are integer
  612|       |       increments for the same length, and zeros are appended as the length
  613|       |       increases.  For the deflate format, these bits are stored backwards
  614|       |       from their more natural integer increment ordering, and so when the
  615|       |       decoding tables are built in the large loop below, the integer codes
  616|       |       are incremented backwards.
  617|       |
  618|       |       This routine assumes, but does not check, that all of the entries in
  619|       |       lens[] are in the range 0..15.  The caller must assure this.
  620|       |       1..15 is interpreted as that code length.  zero means that that
  621|       |       symbol does not occur in this code.
  622|       |
  623|       |       The codes are sorted by computing a count of codes for each length,
  624|       |       creating from that a table of starting indices for each length in the
  625|       |       sorted table, and then entering the symbols in order in the sorted
  626|       |       table.  The sorted table is work[], with that space being provided by
  627|       |       the caller.
  628|       |
  629|       |       The length counts are used for other purposes as well, i.e. finding
  630|       |       the minimum and maximum length codes, determining if there are any
  631|       |       codes at all, checking for a valid set of lengths, and looking ahead
  632|       |       at length counts to determine sub-table sizes when building the
  633|       |       decoding tables.
  634|       |     */
  635|       |
  636|       |    /* accumulate lengths for codes (assumes lens[] all in 0..15) */
  637|   120k|    for (len = 0; len <= 15; len++)
  ------------------
  |  Branch (637:19): [True: 113k, False: 7.09k]
  ------------------
  638|   113k|        count[len] = 0;
  639|   685k|    for (sym = 0; sym < codes; sym++)
  ------------------
  |  Branch (639:19): [True: 678k, False: 7.09k]
  ------------------
  640|   678k|        count[lens[sym]]++;
  641|       |
  642|       |    /* bound code lengths, force root to be within code lengths */
  643|  7.09k|    root = *bits;
  644|  68.4k|    for (max = 15; max >= 1; max--)
  ------------------
  |  Branch (644:20): [True: 66.1k, False: 2.26k]
  ------------------
  645|  66.1k|        if (count[max] != 0)
  ------------------
  |  Branch (645:13): [True: 4.82k, False: 61.3k]
  ------------------
  646|  4.82k|            break;
  647|  7.09k|    if (root > max)
  ------------------
  |  Branch (647:9): [True: 2.41k, False: 4.67k]
  ------------------
  648|  2.41k|        root = max;
  649|  7.09k|    if (max == 0)
  ------------------
  |  Branch (649:9): [True: 2.26k, False: 4.82k]
  ------------------
  650|  2.26k|    {                     /* no symbols to code at all */
  651|  2.26k|        here.op = (std::uint8_t)64;    /* invalid code marker */
  652|  2.26k|        here.bits = (std::uint8_t)1;
  653|  2.26k|        here.val = (std::uint16_t)0;
  654|  2.26k|        *(*table)++ = here;             /* make a table to force an error */
  655|  2.26k|        *(*table)++ = here;
  656|  2.26k|        *bits = 1;
  657|  2.26k|        return;       /* no symbols, but wait for decoding to report error */
  658|  2.26k|    }
  659|  16.5k|    for (min = 1; min < max; min++)
  ------------------
  |  Branch (659:19): [True: 16.4k, False: 53]
  ------------------
  660|  16.4k|        if (count[min] != 0)
  ------------------
  |  Branch (660:13): [True: 4.77k, False: 11.7k]
  ------------------
  661|  4.77k|            break;
  662|  4.82k|    if (root < min)
  ------------------
  |  Branch (662:9): [True: 26, False: 4.80k]
  ------------------
  663|     26|        root = min;
  664|       |
  665|       |    /* check for an over-subscribed or incomplete set of lengths */
  666|  4.82k|    left = 1;
  667|  76.9k|    for (len = 1; len <= 15; len++)
  ------------------
  |  Branch (667:19): [True: 72.1k, False: 4.79k]
  ------------------
  668|  72.1k|    {
  669|  72.1k|        left <<= 1;
  670|  72.1k|        left -= count[len];
  671|  72.1k|        if (left < 0)
  ------------------
  |  Branch (671:13): [True: 32, False: 72.1k]
  ------------------
  672|     32|        {
  673|     32|            BOOST_BEAST_ASSIGN_EC(ec, error::over_subscribed_length);
  ------------------
  |  |  111|     32|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     32|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     32|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     32|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     32|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  674|     32|            return;
  675|     32|        }
  676|  72.1k|    }
  677|  4.79k|    if (left > 0 && (type == build::codes || max != 1))
  ------------------
  |  Branch (677:9): [True: 74, False: 4.72k]
  |  Branch (677:22): [True: 21, False: 53]
  |  Branch (677:46): [True: 49, False: 4]
  ------------------
  678|     70|    {
  679|     70|        BOOST_BEAST_ASSIGN_EC(ec, error::incomplete_length_set);
  ------------------
  |  |  111|     70|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     70|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     70|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     70|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     70|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  680|     70|        return;
  681|     70|    }
  682|       |
  683|       |    /* generate offsets into symbol table for each length for sorting */
  684|  4.72k|    offs[1] = 0;
  685|  70.8k|    for (len = 1; len < 15; len++)
  ------------------
  |  Branch (685:19): [True: 66.1k, False: 4.72k]
  ------------------
  686|  66.1k|        offs[len + 1] = offs[len] + count[len];
  687|       |
  688|       |    /* sort symbols by length, by symbol order within each length */
  689|   669k|    for (sym = 0; sym < codes; sym++)
  ------------------
  |  Branch (689:19): [True: 664k, False: 4.72k]
  ------------------
  690|   664k|        if (lens[sym] != 0)
  ------------------
  |  Branch (690:13): [True: 553k, False: 110k]
  ------------------
  691|   553k|            work[offs[lens[sym]]++] = (std::uint16_t)sym;
  692|       |
  693|       |    /*
  694|       |       Create and fill in decoding tables.  In this loop, the table being
  695|       |       filled is at next and has curr index bits.  The code being used is huff
  696|       |       with length len.  That code is converted to an index by dropping drop
  697|       |       bits off of the bottom.  For codes where len is less than drop + curr,
  698|       |       those top drop + curr - len bits are incremented through all values to
  699|       |       fill the table with replicated entries.
  700|       |
  701|       |       root is the number of index bits for the root table.  When len exceeds
  702|       |       root, sub-tables are created pointed to by the root entry with an index
  703|       |       of the low root bits of huff.  This is saved in low to check for when a
  704|       |       new sub-table should be started.  drop is zero when the root table is
  705|       |       being filled, and drop is root when sub-tables are being filled.
  706|       |
  707|       |       When a new sub-table is needed, it is necessary to look ahead in the
  708|       |       code lengths to determine what size sub-table is needed.  The length
  709|       |       counts are used for this, and so count[] is decremented as codes are
  710|       |       entered in the tables.
  711|       |
  712|       |       used keeps track of how many table entries have been allocated from the
  713|       |       provided *table space.  It is checked for build::lens and DIST tables against
  714|       |       the constants kEnoughLens and kEnoughDists to guard against changes in
  715|       |       the initial root table size constants.  See the comments in inftrees.hpp
  716|       |       for more information.
  717|       |
  718|       |       sym increments through all symbols, and the loop terminates when
  719|       |       all codes of length max, i.e. all codes, have been processed.  This
  720|       |       routine permits incomplete codes, so another loop after this one fills
  721|       |       in the rest of the decoding tables with invalid code markers.
  722|       |     */
  723|       |
  724|       |    /* set up for code type */
  725|  4.72k|    switch (type)
  726|  4.72k|    {
  727|  2.43k|    case build::codes:
  ------------------
  |  Branch (727:5): [True: 2.43k, False: 2.29k]
  ------------------
  728|  2.43k|        base = extra = work;    /* dummy value--not used */
  729|  2.43k|        match = 20;
  730|  2.43k|        break;
  731|  2.29k|    case build::lens:
  ------------------
  |  Branch (731:5): [True: 2.29k, False: 2.43k]
  ------------------
  732|  2.29k|        base = lbase;
  733|  2.29k|        extra = lext;
  734|  2.29k|        match = 257;
  735|  2.29k|        break;
  736|      5|    default:            /* build::dists */
  ------------------
  |  Branch (736:5): [True: 5, False: 4.72k]
  ------------------
  737|      5|        base = dbase;
  738|      5|        extra = dext;
  739|      5|        match = 0;
  740|  4.72k|    }
  741|       |
  742|       |    /* initialize state for loop */
  743|  4.72k|    huff = 0;                   /* starting code */
  744|  4.72k|    sym = 0;                    /* starting code symbol */
  745|  4.72k|    len = min;                  /* starting code length */
  746|  4.72k|    next = *table;              /* current table to fill in */
  747|  4.72k|    curr = root;                /* current table index bits */
  748|  4.72k|    drop = 0;                   /* current bits to drop from code for index */
  749|  4.72k|    low = (unsigned)(-1);       /* trigger new sub-table when len > root */
  750|  4.72k|    used = 1U << root;          /* use root table entries */
  751|  4.72k|    mask = used - 1;            /* mask for comparing low */
  752|       |
  753|  4.72k|    auto const not_enough = []
  754|  4.72k|    {
  755|  4.72k|        BOOST_THROW_EXCEPTION(std::logic_error{
  756|  4.72k|            "insufficient output size when inflating tables"});
  757|  4.72k|    };
  758|       |
  759|       |    // check available table space
  760|  4.72k|    if ((type == build::lens && used > kEnoughLens) ||
  ------------------
  |  Branch (760:10): [True: 2.29k, False: 2.43k]
  |  Branch (760:33): [True: 0, False: 2.29k]
  ------------------
  761|  4.72k|            (type == build::dists && used > kEnoughDists))
  ------------------
  |  Branch (761:14): [True: 5, False: 4.72k]
  |  Branch (761:38): [True: 0, False: 5]
  ------------------
  762|      0|        return not_enough();
  763|       |
  764|       |    /* process all codes and make table entries */
  765|  4.72k|    for (;;)
  766|   553k|    {
  767|       |        /* create table entry */
  768|   553k|        here.bits = (std::uint8_t)(len - drop);
  769|   553k|        if (work[sym] + 1U < match)
  ------------------
  |  Branch (769:13): [True: 539k, False: 13.8k]
  ------------------
  770|   539k|        {
  771|   539k|            here.op = (std::uint8_t)0;
  772|   539k|            here.val = work[sym];
  773|   539k|        }
  774|  13.8k|        else if (work[sym] >= match)
  ------------------
  |  Branch (774:18): [True: 11.5k, False: 2.29k]
  ------------------
  775|  11.5k|        {
  776|  11.5k|            here.op = (std::uint8_t)(extra[work[sym] - match]);
  777|  11.5k|            here.val = base[work[sym] - match];
  778|  11.5k|        }
  779|  2.29k|        else
  780|  2.29k|        {
  781|  2.29k|            here.op = (std::uint8_t)(32 + 64);         /* end of block */
  782|  2.29k|            here.val = 0;
  783|  2.29k|        }
  784|       |
  785|       |        /* replicate for those indices with low len bits equal to huff */
  786|   553k|        incr = 1U << (len - drop);
  787|   553k|        fill = 1U << curr;
  788|   553k|        min = fill;                 /* save offset to next table */
  789|   553k|        do
  790|  1.75M|        {
  791|  1.75M|            fill -= incr;
  792|  1.75M|            next[(huff >> drop) + fill] = here;
  793|  1.75M|        } while (fill != 0);
  ------------------
  |  Branch (793:18): [True: 1.20M, False: 553k]
  ------------------
  794|       |
  795|       |        /* backwards increment the len-bit code huff */
  796|   553k|        incr = 1U << (len - 1);
  797|  1.10M|        while (huff & incr)
  ------------------
  |  Branch (797:16): [True: 549k, False: 553k]
  ------------------
  798|   549k|            incr >>= 1;
  799|   553k|        if (incr != 0)
  ------------------
  |  Branch (799:13): [True: 549k, False: 4.72k]
  ------------------
  800|   549k|        {
  801|   549k|            huff &= incr - 1;
  802|   549k|            huff += incr;
  803|   549k|        }
  804|  4.72k|        else
  805|  4.72k|            huff = 0;
  806|       |
  807|       |        /* go to next symbol, update count, len */
  808|   553k|        sym++;
  809|   553k|        if (--(count[len]) == 0)
  ------------------
  |  Branch (809:13): [True: 28.1k, False: 525k]
  ------------------
  810|  28.1k|        {
  811|  28.1k|            if (len == max) break;
  ------------------
  |  Branch (811:17): [True: 4.72k, False: 23.3k]
  ------------------
  812|  23.3k|            len = lens[work[sym]];
  813|  23.3k|        }
  814|       |
  815|       |        /* create new sub-table if needed */
  816|   549k|        if (len > root && (huff & mask) != low)
  ------------------
  |  Branch (816:13): [True: 370k, False: 178k]
  |  Branch (816:27): [True: 90.2k, False: 280k]
  ------------------
  817|  90.2k|        {
  818|       |            /* if first time, transition to sub-tables */
  819|  90.2k|            if (drop == 0)
  ------------------
  |  Branch (819:17): [True: 2.27k, False: 87.9k]
  ------------------
  820|  2.27k|                drop = root;
  821|       |
  822|       |            /* increment past last table */
  823|  90.2k|            next += min;            /* here min is 1 << curr */
  824|       |
  825|       |            /* determine length of next table */
  826|  90.2k|            curr = len - drop;
  827|  90.2k|            left = (int)(1 << curr);
  828|  94.8k|            while (curr + drop < max)
  ------------------
  |  Branch (828:20): [True: 90.0k, False: 4.83k]
  ------------------
  829|  90.0k|            {
  830|  90.0k|                left -= count[curr + drop];
  831|  90.0k|                if (left <= 0) break;
  ------------------
  |  Branch (831:21): [True: 85.4k, False: 4.59k]
  ------------------
  832|  4.59k|                curr++;
  833|  4.59k|                left <<= 1;
  834|  4.59k|            }
  835|       |
  836|       |            /* check for enough space */
  837|  90.2k|            used += 1U << curr;
  838|  90.2k|            if ((type == build::lens && used > kEnoughLens) ||
  ------------------
  |  Branch (838:18): [True: 90.2k, False: 0]
  |  Branch (838:41): [True: 0, False: 90.2k]
  ------------------
  839|  90.2k|                    (type == build::dists && used > kEnoughDists))
  ------------------
  |  Branch (839:22): [True: 0, False: 90.2k]
  |  Branch (839:46): [True: 0, False: 0]
  ------------------
  840|      0|                return not_enough();
  841|       |
  842|       |            /* point entry in root table to sub-table */
  843|  90.2k|            low = huff & mask;
  844|  90.2k|            (*table)[low].op = (std::uint8_t)curr;
  845|  90.2k|            (*table)[low].bits = (std::uint8_t)root;
  846|  90.2k|            (*table)[low].val = (std::uint16_t)(next - *table);
  847|  90.2k|        }
  848|   549k|    }
  849|       |
  850|       |    /* fill in remaining table entry if code is incomplete (guaranteed to have
  851|       |       at most one remaining entry, since if the code is incomplete, the
  852|       |       maximum code length that was allowed to get this far is one bit) */
  853|  4.72k|    if (huff != 0)
  ------------------
  |  Branch (853:9): [True: 4, False: 4.72k]
  ------------------
  854|      4|    {
  855|      4|        here.op = 64;   // invalid code marker
  856|      4|        here.bits = (std::uint8_t)(len - drop);
  857|      4|        here.val = 0;
  858|      4|        next[huff] = here;
  859|      4|    }
  860|       |
  861|  4.72k|    *table += used;
  862|  4.72k|    *bits = root;
  863|  4.72k|}
_ZN5boost5beast4zlib6detail14inflate_stream12inflate_fastERNS2_6rangesERNS_6system10error_codeE:
  982|  74.4k|{
  983|  74.4k|    unsigned char const* last;  // have enough input while in < last
  984|  74.4k|    unsigned char *end;         // while out < end, enough space available
  985|  74.4k|    std::size_t op;             // code bits, operation, extra bits, or window position, window bytes to copy
  986|  74.4k|    unsigned len;               // match length, unused bytes
  987|  74.4k|    unsigned dist;              // match distance
  988|  74.4k|    unsigned const lmask =
  989|  74.4k|        (1U << lenbits_) - 1;   // mask for first level of length codes
  990|  74.4k|    unsigned const dmask =
  991|  74.4k|        (1U << distbits_) - 1;  // mask for first level of distance codes
  992|       |
  993|  74.4k|    last = r.in.next + (r.in.avail() - 5);
  994|  74.4k|    end = r.out.next + (r.out.avail() - 257);
  995|       |
  996|       |    /* decode literals and length/distances until end-of-block or not enough
  997|       |       input data or output space */
  998|  74.4k|    do
  999|  5.75M|    {
 1000|  5.75M|        if(bi_.size() < 15)
  ------------------
  |  Branch (1000:12): [True: 3.38M, False: 2.37M]
  ------------------
 1001|  3.38M|            bi_.fill_16(r.in.next);
 1002|  5.75M|        auto cp = &lencode_[bi_.peek_fast() & lmask];
 1003|  5.91M|    dolen:
 1004|  5.91M|        bi_.drop(cp->bits);
 1005|  5.91M|        op = (unsigned)(cp->op);
 1006|  5.91M|        if(op == 0)
  ------------------
  |  Branch (1006:12): [True: 3.98M, False: 1.93M]
  ------------------
 1007|  3.98M|        {
 1008|       |            // literal
 1009|  3.98M|            *r.out.next++ = (unsigned char)(cp->val);
 1010|  3.98M|        }
 1011|  1.93M|        else if(op & 16)
  ------------------
  |  Branch (1011:17): [True: 1.77M, False: 164k]
  ------------------
 1012|  1.77M|        {
 1013|       |            // length base
 1014|  1.77M|            len = (unsigned)(cp->val);
 1015|  1.77M|            op &= 15; // number of extra bits
 1016|  1.77M|            if(op)
  ------------------
  |  Branch (1016:16): [True: 654k, False: 1.11M]
  ------------------
 1017|   654k|            {
 1018|   654k|                if(bi_.size() < op)
  ------------------
  |  Branch (1018:20): [True: 1, False: 654k]
  ------------------
 1019|      1|                    bi_.fill_8(r.in.next);
 1020|   654k|                len += (unsigned)bi_.peek_fast() & ((1U << op) - 1);
 1021|   654k|                bi_.drop(op);
 1022|   654k|            }
 1023|  1.77M|            if(bi_.size() < 15)
  ------------------
  |  Branch (1023:16): [True: 834k, False: 936k]
  ------------------
 1024|   834k|                bi_.fill_16(r.in.next);
 1025|  1.77M|            cp = &distcode_[bi_.peek_fast() & dmask];
 1026|  1.77M|        dodist:
 1027|  1.77M|            bi_.drop(cp->bits);
 1028|  1.77M|            op = (unsigned)(cp->op);
 1029|  1.77M|            if(op & 16)
  ------------------
  |  Branch (1029:16): [True: 1.77M, False: 11]
  ------------------
 1030|  1.77M|            {
 1031|       |                // distance base
 1032|  1.77M|                dist = (unsigned)(cp->val);
 1033|  1.77M|                op &= 15; // number of extra bits
 1034|  1.77M|                if(bi_.size() < op)
  ------------------
  |  Branch (1034:20): [True: 1.33k, False: 1.76M]
  ------------------
 1035|  1.33k|                {
 1036|  1.33k|                    bi_.fill_8(r.in.next);
 1037|  1.33k|                    if(bi_.size() < op)
  ------------------
  |  Branch (1037:24): [True: 0, False: 1.33k]
  ------------------
 1038|      0|                        bi_.fill_8(r.in.next);
 1039|  1.33k|                }
 1040|  1.77M|                dist += (unsigned)bi_.peek_fast() & ((1U << op) - 1);
 1041|       |#ifdef INFLATE_STRICT
 1042|       |                if(dist > dmax_)
 1043|       |                {
 1044|       |                    BOOST_BEAST_ASSIGN_EC(ec, error::invalid_distance);
 1045|       |                    mode_ = BAD;
 1046|       |                    break;
 1047|       |                }
 1048|       |#endif
 1049|  1.77M|                bi_.drop(op);
 1050|       |
 1051|  1.77M|                op = r.out.used();
 1052|  1.77M|                if(dist > op)
  ------------------
  |  Branch (1052:20): [True: 225k, False: 1.54M]
  ------------------
 1053|   225k|                {
 1054|       |                    // copy from window
 1055|   225k|                    op = dist - op; // distance back in window
 1056|   225k|                    if(op > w_.size())
  ------------------
  |  Branch (1056:24): [True: 39, False: 225k]
  ------------------
 1057|     39|                    {
 1058|     39|                        BOOST_BEAST_ASSIGN_EC(ec, error::invalid_distance);
  ------------------
  |  |  111|     39|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     39|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     39|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     39|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     39|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1059|     39|                        mode_ = BAD;
 1060|     39|                        break;
 1061|     39|                    }
 1062|   225k|                    auto const n = clamp(len, op);
 1063|   225k|                    w_.read(r.out.next, op, n);
 1064|   225k|                    r.out.next += n;
 1065|   225k|                    len -= n;
 1066|   225k|                }
 1067|  1.77M|                if(len > 0)
  ------------------
  |  Branch (1067:20): [True: 1.55M, False: 215k]
  ------------------
 1068|  1.55M|                {
 1069|       |                    // copy from output
 1070|  1.55M|                    auto in = r.out.next - dist;
 1071|  1.55M|                    auto n = clamp(len, r.out.avail());
 1072|  1.55M|                    len -= n;
 1073|   285M|                    while(n--)
  ------------------
  |  Branch (1073:27): [True: 283M, False: 1.55M]
  ------------------
 1074|   283M|                        *r.out.next++ = *in++;
 1075|  1.55M|                }
 1076|  1.77M|            }
 1077|     11|            else if((op & 64) == 0)
  ------------------
  |  Branch (1077:21): [True: 0, False: 11]
  ------------------
 1078|      0|            {
 1079|       |                // 2nd level distance code
 1080|      0|                cp = &distcode_[cp->val + (bi_.peek_fast() & ((1U << op) - 1))];
 1081|      0|                goto dodist;
 1082|      0|            }
 1083|     11|            else
 1084|     11|            {
 1085|     11|                BOOST_BEAST_ASSIGN_EC(ec, error::invalid_distance_code);
  ------------------
  |  |  111|     11|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|     11|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|     11|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|     11|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|     11|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1086|     11|                mode_ = BAD;
 1087|     11|                break;
 1088|     11|            }
 1089|  1.77M|        }
 1090|   164k|        else if((op & 64) == 0)
  ------------------
  |  Branch (1090:17): [True: 158k, False: 5.95k]
  ------------------
 1091|   158k|        {
 1092|       |            // 2nd level length code
 1093|   158k|            cp = &lencode_[cp->val + (bi_.peek_fast() & ((1U << op) - 1))];
 1094|   158k|            goto dolen;
 1095|   158k|        }
 1096|  5.95k|        else if(op & 32)
  ------------------
  |  Branch (1096:17): [True: 5.94k, False: 7]
  ------------------
 1097|  5.94k|        {
 1098|       |            // end-of-block
 1099|  5.94k|            mode_ = TYPE;
 1100|  5.94k|            break;
 1101|  5.94k|        }
 1102|      7|        else
 1103|      7|        {
 1104|      7|            BOOST_BEAST_ASSIGN_EC(ec, error::invalid_literal_length);
  ------------------
  |  |  111|      7|    static constexpr auto BOOST_PP_CAT(loc_, __LINE__) ((BOOST_CURRENT_LOCATION)); \
  |  |  ------------------
  |  |  |  |  182|      7|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  |  |  ------------------
  |  |  112|      7|    ec.assign(error, & BOOST_PP_CAT(loc_, __LINE__) )
  |  |  ------------------
  |  |  |  |   22|      7|#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
  |  |  |  |  ------------------
  |  |  |  |  |  |   29|      7|#    define BOOST_PP_CAT_I(a, b) a ## b
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1105|      7|            mode_ = BAD;
 1106|      7|            break;
 1107|      7|        }
 1108|  5.91M|    }
 1109|  5.75M|    while(r.in.next < last && r.out.next < end);
  ------------------
  |  Branch (1109:11): [True: 5.72M, False: 25.2k]
  |  Branch (1109:31): [True: 5.68M, False: 43.1k]
  ------------------
 1110|       |
 1111|       |    // return unused bytes (on entry, bits < 8, so in won't go too far back)
 1112|  74.4k|    bi_.rewind(r.in.next);
 1113|  74.4k|}

_ZNK5boost5beast4zlib6detail6ranges5rangeILb1EE4usedEv:
   72|   130M|        {
   73|   130M|            return next - first;
   74|   130M|        }
_ZN5boost5beast4zlib6detail5clampIjmEET_S4_T0_:
   91|  80.5M|{
   92|  80.5M|    if(u > v)
  ------------------
  |  Branch (92:8): [True: 39.3M, False: 41.1M]
  ------------------
   93|  39.3M|        u = static_cast<U>(v);
   94|  80.5M|    return u;
   95|  80.5M|}
_ZNK5boost5beast4zlib6detail6ranges5rangeILb1EE5availEv:
   79|   468M|        {
   80|   468M|            return last - next;
   81|   468M|        }
_ZNK5boost5beast4zlib6detail6ranges5rangeILb0EE5availEv:
   79|   425M|        {
   80|   425M|            return last - next;
   81|   425M|        }
_ZNK5boost5beast4zlib6detail6ranges5rangeILb0EE4usedEv:
   72|   197M|        {
   73|   197M|            return next - first;
   74|   197M|        }
_ZN5boost5beast4zlib6detail5clampIjtEET_S4_T0_:
   91|  56.9k|{
   92|  56.9k|    if(u > v)
  ------------------
  |  Branch (92:8): [True: 38.7k, False: 18.2k]
  ------------------
   93|  38.7k|        u = static_cast<U>(v);
   94|  56.9k|    return u;
   95|  56.9k|}
_ZN5boost5beast4zlib6detail5clampImjEET_S4_T0_:
   91|  10.6k|{
   92|  10.6k|    if(u > v)
  ------------------
  |  Branch (92:8): [True: 9.53k, False: 1.10k]
  ------------------
   93|  9.53k|        u = static_cast<U>(v);
   94|  10.6k|    return u;
   95|  10.6k|}

_ZN5boost5beast4zlib6detail6window5resetEi:
   80|  5.13k|    {
   81|  5.13k|        if(bits_ != bits)
  ------------------
  |  Branch (81:12): [True: 2.56k, False: 2.56k]
  ------------------
   82|  2.56k|        {
   83|  2.56k|            p_.reset();
   84|  2.56k|            bits_ = static_cast<std::uint8_t>(bits);
   85|  2.56k|            capacity_ = 1U << bits_;
   86|  2.56k|        }
   87|  5.13k|        i_ = 0;
   88|  5.13k|        size_ = 0;
   89|  5.13k|    }
_ZN5boost5beast4zlib6detail6window5writeEPKhm:
  114|  65.0M|    {
  115|  65.0M|        if(! p_)
  ------------------
  |  Branch (115:12): [True: 1.88k, False: 65.0M]
  ------------------
  116|  1.88k|            p_ = boost::make_unique<
  117|  1.88k|                std::uint8_t[]>(capacity_);
  118|  65.0M|        if(n >= capacity_)
  ------------------
  |  Branch (118:12): [True: 2.52k, False: 65.0M]
  ------------------
  119|  2.52k|        {
  120|  2.52k|            i_ = 0;
  121|  2.52k|            size_ = capacity_;
  122|  2.52k|            std::memcpy(&p_[0], in + (n - size_), size_);
  123|  2.52k|            return;
  124|  2.52k|        }
  125|  65.0M|        if(i_ + n <= capacity_)
  ------------------
  |  Branch (125:12): [True: 64.9M, False: 12.2k]
  ------------------
  126|  64.9M|        {
  127|  64.9M|            std::memcpy(&p_[i_], in, n);
  128|  64.9M|            if(size_ >= capacity_ - n)
  ------------------
  |  Branch (128:16): [True: 61.4M, False: 3.54M]
  ------------------
  129|  61.4M|                size_ = capacity_;
  130|  3.54M|            else
  131|  3.54M|                size_ = static_cast<std::uint16_t>(size_ + n);
  132|       |
  133|  64.9M|            i_ = static_cast<std::uint16_t>(
  134|  64.9M|                (i_ + n) % capacity_);
  135|  64.9M|            return;
  136|  64.9M|        }
  137|  12.2k|        auto m = capacity_ - i_;
  138|  12.2k|        std::memcpy(&p_[i_], in, m);
  139|  12.2k|        in += m;
  140|  12.2k|        i_ = static_cast<std::uint16_t>(n - m);
  141|  12.2k|        std::memcpy(&p_[0], in, i_);
  142|  12.2k|        size_ = capacity_;
  143|  12.2k|    }
_ZNK5boost5beast4zlib6detail6window4sizeEv:
   74|   282k|    {
   75|   282k|        return size_;
   76|   282k|    }
_ZN5boost5beast4zlib6detail6window4readEPhmm:
   93|   282k|    {
   94|   282k|        if(i_ >= size_)
  ------------------
  |  Branch (94:12): [True: 23.7k, False: 258k]
  ------------------
   95|  23.7k|        {
   96|       |            // window is contiguous
   97|  23.7k|            std::memcpy(out, &p_[i_ - pos], n);
   98|  23.7k|            return;
   99|  23.7k|        }
  100|   258k|        auto i = ((i_ - pos) + capacity_) % capacity_;
  101|   258k|        auto m = capacity_ - i;
  102|   258k|        if(n <= m)
  ------------------
  |  Branch (102:12): [True: 257k, False: 1.14k]
  ------------------
  103|   257k|        {
  104|   257k|            std::memcpy(out, &p_[i], n);
  105|   257k|            return;
  106|   257k|        }
  107|  1.14k|        std::memcpy(out, &p_[i], m);
  108|  1.14k|        out += m;
  109|  1.14k|        std::memcpy(out, &p_[0], n - m);
  110|  1.14k|    }

_ZN5boost5beast4zlib15make_error_codeENS1_5errorE:
  121|  2.19k|{
  122|  2.19k|    static detail::error_codes const cat{};
  123|  2.19k|    return error_code{static_cast<
  124|  2.19k|        std::underlying_type<error>::type>(ev), cat};
  125|  2.19k|}

_ZN5boost5beast4zlib14inflate_streamC2Ev:
   71|  2.56k|    inflate_stream() = default;
_ZN5boost5beast4zlib14inflate_stream5resetEi:
   93|  2.56k|    {
   94|  2.56k|        doReset(windowBits);
   95|  2.56k|    }
_ZN5boost5beast4zlib14inflate_stream5writeERNS1_8z_paramsENS1_5FlushERNS_6system10error_codeE:
  210|  65.0M|    {
  211|  65.0M|        doWrite(zs, flush, ec);
  212|  65.0M|    }

_ZN5boost4core17basic_string_viewIcEC2EPKcm:
  376|  2.08M|    BOOST_CONSTEXPR basic_string_view( Ch const* str, size_type len ) BOOST_NOEXCEPT: p_( str ), n_( len )
  377|  2.08M|    {
  378|  2.08M|    }
_ZNK5boost4core17basic_string_viewIcE4sizeEv:
  489|  4.24M|    {
  490|  4.24M|        return n_;
  491|  4.24M|    }
_ZNK5boost4core17basic_string_viewIcE4dataEv:
  539|   819k|    {
  540|   819k|        return p_;
  541|   819k|    }
_ZNK5boost4core17basic_string_viewIcE5beginEv:
  447|   780k|    {
  448|   780k|        return p_;
  449|   780k|    }
_ZNK5boost4core17basic_string_viewIcE3endEv:
  452|   875k|    {
  453|   875k|        return p_ + n_;
  454|   875k|    }
_ZN5boost4core17basic_string_viewIcEC2Ev:
  369|   438k|    {
  370|   438k|    }
_ZNK5boost4core17basic_string_viewIcE4copyEPcmm:
  569|   185k|    {
  570|   185k|        if( pos > size() )
  ------------------
  |  Branch (570:13): [True: 0, False: 185k]
  ------------------
  571|      0|        {
  572|      0|            boost::throw_exception( std::out_of_range( "basic_string_view::copy" ), BOOST_CURRENT_LOCATION );
  ------------------
  |  |  182|      0|# define BOOST_CURRENT_LOCATION ::boost::source_location(__builtin_FILE(), __builtin_LINE(), __builtin_FUNCTION(), __builtin_COLUMN())
  ------------------
  573|      0|        }
  574|       |
  575|   185k|        std::size_t rlen = (std::min)( n, size() - pos );
  576|       |
  577|   185k|        traits_type::copy( s, data() + pos, rlen );
  578|       |
  579|   185k|        return rlen;
  580|   185k|    }
_ZN5boost4core17basic_string_viewIcEC2EPKc:
  372|  50.0k|    BOOST_CONSTEXPR basic_string_view( Ch const* str ) BOOST_NOEXCEPT: p_( str ), n_( traits_type::length( str ) )
  373|  50.0k|    {
  374|  50.0k|    }
_ZNK5boost4core17basic_string_viewIcE5emptyEv:
  504|   125k|    {
  505|   125k|        return n_ == 0;
  506|   125k|    }
_ZNK5boost4core17basic_string_viewIcEixEm:
  511|  7.88k|    {
  512|  7.88k|        BOOST_ASSERT( pos < size() );
  ------------------
  |  |   66|  7.88k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  513|  7.88k|        return p_[ pos ];
  514|  7.88k|    }
_ZN5boost4core17basic_string_viewIcE13remove_prefixEm:
  546|  7.80k|    {
  547|  7.80k|        BOOST_ASSERT( n <= size() );
  ------------------
  |  |   66|  7.80k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  548|       |
  549|  7.80k|        p_ += n;
  550|  7.80k|        n_ -= n;
  551|  7.80k|    }
_ZN5boost4coreeqENS0_17basic_string_viewIcEES2_:
  961|  12.3k|    {
  962|  12.3k|        return sv1.size() == sv2.size() && traits_type::compare( sv1.data(), sv2.data(), sv1.size() ) == 0;
  ------------------
  |  Branch (962:16): [True: 11.1k, False: 1.21k]
  |  Branch (962:44): [True: 9.81k, False: 1.30k]
  ------------------
  963|  12.3k|    }
_ZN5boost4coreneENS0_17basic_string_viewIcEEPKc:
 1069|  4.68k|    {
 1070|  4.68k|        return !( sv1 == sv2 );
 1071|  4.68k|    }
_ZN5boost4coreeqENS0_17basic_string_viewIcEEPKc:
 1059|  4.68k|    {
 1060|  4.68k|        return sv1 == basic_string_view( sv2 );
 1061|  4.68k|    }
_ZNK5boost4core17basic_string_viewIcE5frontEv:
  527|     40|    {
  528|     40|        BOOST_ASSERT( !empty() );
  ------------------
  |  |   66|     40|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  529|     40|        return p_[ 0 ];
  530|     40|    }

_ZN5boost6empty_11empty_valueINSt3__19allocatorIcEELj0ELb1EEC2Ev:
  153|  38.0k|    empty_value() = default;
_ZN5boost6empty_11empty_valueINSt3__19allocatorIcEELj0ELb1EE3getEv:
  185|   381k|    BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
  186|   381k|        return *this;
  187|   381k|    }
_ZN5boost6empty_11empty_valueINS_5beast4test12basic_streamINS_4asio15any_io_executorEEELj0ELb0EEC2IRNS5_10io_contextEJNS_4core17basic_string_viewIcEEEEENS_12empty_init_tEOT_DpOT0_:
   69|  8.21k|        : value_(std::forward<U>(value), std::forward<Args>(args)...) { }
_ZN5boost6empty_11empty_valueINS_5beast4test12basic_streamINS_4asio15any_io_executorEEELj0ELb0EE3getEv:
   89|   405k|    BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
   90|   405k|        return value_;
   91|   405k|    }
_ZN5boost6empty_11empty_valueINS_5beast4http10empty_body10value_typeELj0ELb1EE3getEv:
  185|  8.21k|    BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
  186|  8.21k|        return *this;
  187|  8.21k|    }
_ZN5boost6empty_11empty_valueINS_5beast4http6detail21opt_token_list_policyELj0ELb1EE3getEv:
  185|  36.5k|    BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
  186|  36.5k|        return *this;
  187|  36.5k|    }
_ZN5boost6empty_11empty_valueINSt3__19allocatorIcEELj0ELb1EEC2IS4_JEEENS_12empty_init_tEOT_DpOT0_:
  165|    450|        : empty_base_(std::forward<U>(value), std::forward<Args>(args)...) { }
_ZN5boost6empty_11empty_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEELj0ELb0EEC2Ev:
   57|  5.13k|    empty_value() = default;
_ZN5boost6empty_11empty_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEELj0ELb0EE3getEv:
   89|    491|    BOOST_CXX14_CONSTEXPR T& get() BOOST_NOEXCEPT {
   90|    491|        return value_;
   91|    491|    }
_ZNK5boost6empty_11empty_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEELj0ELb0EE3getEv:
   85|  5.62k|    BOOST_CONSTEXPR const T& get() const BOOST_NOEXCEPT {
   86|  5.62k|        return value_;
   87|  5.62k|    }
_ZNK5boost6empty_11empty_valueINS_5beast4http10empty_body10value_typeELj0ELb1EE3getEv:
  181|     22|    BOOST_CONSTEXPR const T& get() const BOOST_NOEXCEPT {
  182|     22|        return *this;
  183|     22|    }

_ZN5boost8exchangeIPKNS_5beast9websocket6detail9decorator6vtableES7_EET_RS8_OT0_:
   39|  8.21k|{
   40|  8.21k|    T v = std::move(t);
   41|  8.21k|    t = std::forward<U>(u);
   42|  8.21k|    return v;
   43|  8.21k|}
_ZN5boost8exchangeINS_4core17basic_string_viewIcEES3_EET_RS4_OT0_:
   39|    900|{
   40|    900|    T v = std::move(t);
   41|    900|    t = std::forward<U>(u);
   42|    900|    return v;
   43|    900|}

_ZN5boost13ignore_unusedIJRPKcS3_RmEEEvDpOT_:
   20|  66.3k|{}

_ZN5boost4core7launderINS_5beast6detail12buffers_pairILb1EEEEEPT_S7_:
   46|  19.4k|{
   47|  19.4k|    return __builtin_launder( p );
   48|  19.4k|}
_ZN5boost4core7launderIKNS_5beast6detail12buffers_pairILb1EEEEEPT_S8_:
   46|  19.4k|{
   47|  19.4k|    return __builtin_launder( p );
   48|  19.4k|}
_ZN5boost4core7launderINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEEEPT_SB_:
   46|  5.14k|{
   47|  5.14k|    return __builtin_launder( p );
   48|  5.14k|}
_ZN5boost4core7launderINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEEPT_SH_:
   46|  5.14k|{
   47|  5.14k|    return __builtin_launder( p );
   48|  5.14k|}
_ZN5boost4core7launderIKNS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEEPT_SI_:
   46|  5.14k|{
   47|  5.14k|    return __builtin_launder( p );
   48|  5.14k|}
_ZN5boost4core7launderINSt3__14pairINS_4asio12const_bufferEbEEEEPT_S8_:
   46|  5.13k|{
   47|  5.13k|    return __builtin_launder( p );
   48|  5.13k|}
_ZN5boost4core7launderINS_4asio14mutable_bufferEEEPT_S5_:
   46|  1.43M|{
   47|  1.43M|    return __builtin_launder( p );
   48|  1.43M|}

_ZN5boost6endian13big_to_nativeItEET_S2_:
  147|  4.64k|{
  148|  4.64k|    return boost::endian::conditional_reverse<order::big, order::native>( x );
  149|  4.64k|}
_ZN5boost6endian19conditional_reverseILNS0_5orderE0ELS2_1EtEET1_S3_:
  189|  4.64k|{
  190|  4.64k|    BOOST_ENDIAN_STATIC_ASSERT( std::is_class<EndianReversible>::value || detail::is_endian_reversible<EndianReversible>::value );
  ------------------
  |  |    8|  4.64k|#define BOOST_ENDIAN_STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  191|  4.64k|    return detail::conditional_reverse_impl( x, std::integral_constant<bool, From == To>() );
  192|  4.64k|}
_ZN5boost6endian6detail24conditional_reverse_implItEET_S3_NSt3__117integral_constantIbLb0EEE:
  180|  20.5k|{
  181|  20.5k|    return endian_reverse( x );
  182|  20.5k|}
_ZN5boost6endian13big_to_nativeImEET_S2_:
  147|  1.01k|{
  148|  1.01k|    return boost::endian::conditional_reverse<order::big, order::native>( x );
  149|  1.01k|}
_ZN5boost6endian19conditional_reverseILNS0_5orderE0ELS2_1EmEET1_S3_:
  189|  1.01k|{
  190|  1.01k|    BOOST_ENDIAN_STATIC_ASSERT( std::is_class<EndianReversible>::value || detail::is_endian_reversible<EndianReversible>::value );
  ------------------
  |  |    8|  1.01k|#define BOOST_ENDIAN_STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  191|  1.01k|    return detail::conditional_reverse_impl( x, std::integral_constant<bool, From == To>() );
  192|  1.01k|}
_ZN5boost6endian6detail24conditional_reverse_implImEET_S3_NSt3__117integral_constantIbLb0EEE:
  180|  1.01k|{
  181|  1.01k|    return endian_reverse( x );
  182|  1.01k|}
_ZN5boost6endian16little_to_nativeIjEET_S2_:
  159|   963k|{
  160|   963k|    return boost::endian::conditional_reverse<order::little, order::native>( x );
  161|   963k|}
_ZN5boost6endian19conditional_reverseILNS0_5orderE1ELS2_1EjEET1_S3_:
  189|   963k|{
  190|   963k|    BOOST_ENDIAN_STATIC_ASSERT( std::is_class<EndianReversible>::value || detail::is_endian_reversible<EndianReversible>::value );
  ------------------
  |  |    8|   963k|#define BOOST_ENDIAN_STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  191|   963k|    return detail::conditional_reverse_impl( x, std::integral_constant<bool, From == To>() );
  192|   963k|}
_ZN5boost6endian6detail24conditional_reverse_implIjEET_S3_NSt3__117integral_constantIbLb1EEE:
  174|   963k|{
  175|   963k|    return x;
  176|   963k|}
_ZN5boost6endian13native_to_bigItEET_S2_:
  153|  15.8k|{
  154|  15.8k|    return boost::endian::conditional_reverse<order::native, order::big>( x );
  155|  15.8k|}
_ZN5boost6endian19conditional_reverseILNS0_5orderE1ELS2_0EtEET1_S3_:
  189|  15.8k|{
  190|  15.8k|    BOOST_ENDIAN_STATIC_ASSERT( std::is_class<EndianReversible>::value || detail::is_endian_reversible<EndianReversible>::value );
  ------------------
  |  |    8|  15.8k|#define BOOST_ENDIAN_STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  191|  15.8k|    return detail::conditional_reverse_impl( x, std::integral_constant<bool, From == To>() );
  192|  15.8k|}

_ZN5boost6endian14endian_reverseItEENSt3__19enable_ifIXntsr3std8is_classIT_EE5valueES4_E4typeES4_:
  126|  20.5k|{
  127|  20.5k|    BOOST_ENDIAN_STATIC_ASSERT( detail::is_endian_reversible<T>::value );
  ------------------
  |  |    8|  20.5k|#define BOOST_ENDIAN_STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  128|       |
  129|  20.5k|    typedef typename detail::integral_by_size< sizeof(T) >::type uintN_t;
  130|       |
  131|  20.5k|    return static_cast<T>( detail::endian_reverse_impl( static_cast<uintN_t>( x ) ) );
  132|  20.5k|}
_ZN5boost6endian6detail19endian_reverse_implEt:
   53|  20.5k|{
   54|       |#ifdef BOOST_ENDIAN_NO_INTRINSICS
   55|       |
   56|       |    return (x << 8) | (x >> 8);
   57|       |
   58|       |#else
   59|       |
   60|  20.5k|    return BOOST_ENDIAN_INTRINSIC_BYTE_SWAP_2(x);
  ------------------
  |  |   42|  20.5k|#   define BOOST_ENDIAN_INTRINSIC_BYTE_SWAP_2(x) __builtin_bswap16(x)
  ------------------
   61|       |
   62|  20.5k|#endif
   63|  20.5k|}
_ZN5boost6endian14endian_reverseImEENSt3__19enable_ifIXntsr3std8is_classIT_EE5valueES4_E4typeES4_:
  126|  1.01k|{
  127|  1.01k|    BOOST_ENDIAN_STATIC_ASSERT( detail::is_endian_reversible<T>::value );
  ------------------
  |  |    8|  1.01k|#define BOOST_ENDIAN_STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__)
  ------------------
  128|       |
  129|  1.01k|    typedef typename detail::integral_by_size< sizeof(T) >::type uintN_t;
  130|       |
  131|  1.01k|    return static_cast<T>( detail::endian_reverse_impl( static_cast<uintN_t>( x ) ) );
  132|  1.01k|}
_ZN5boost6endian6detail19endian_reverse_implEm:
   80|  1.01k|{
   81|       |#ifdef BOOST_ENDIAN_NO_INTRINSICS
   82|       |
   83|       |    std::uint64_t step32 = x << 32 | x >> 32;
   84|       |    std::uint64_t step16 = (step32 & 0x0000FFFF0000FFFFULL) << 16 | (step32 & 0xFFFF0000FFFF0000ULL) >> 16;
   85|       |    return (step16 & 0x00FF00FF00FF00FFULL) << 8 | (step16 & 0xFF00FF00FF00FF00ULL) >> 8;
   86|       |
   87|       |#else
   88|       |
   89|  1.01k|    return BOOST_ENDIAN_INTRINSIC_BYTE_SWAP_8(x);
  ------------------
  |  |   47|  1.01k|# define BOOST_ENDIAN_INTRINSIC_BYTE_SWAP_8(x) __builtin_bswap64(x)
  ------------------
   90|       |
   91|  1.01k|# endif
   92|  1.01k|}

_ZN5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE11lower_boundINS_4core17basic_string_viewIcEESH_EENS0_13tree_iteratorISG_Lb0EEERKT_T0_:
  331|  22.1k|   {
  332|  22.1k|      return iterator(node_algorithms::lower_bound
  333|  22.1k|         (this->header_ptr(), key, this->key_node_comp(comp)), this->priv_value_traits_ptr());
  334|  22.1k|   }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE10header_ptrEv:
  130|   277k|   { return holder.root.get_node(); }
_ZNK5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE13key_node_compISH_EENSJ_17key_node_comp_retIT_E4typeESM_:
  370|   174k|   {
  371|   174k|      return detail::key_nodeptr_comp<KeyTypeKeyCompare, value_traits, key_of_value>(comp, &this->get_value_traits());
  372|   174k|   }
_ZNK5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE16get_value_traitsEv:
  136|   611k|   {  return this->holder;  }
_ZNK5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE21priv_value_traits_ptrEv:
  145|   436k|   {  return pointer_traits<const_value_traits_ptr>::pointer_to(this->get_value_traits());  }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE3endEv:
  157|  22.1k|   {  return iterator(node_algorithms::end_node(this->header_ptr()), this->priv_value_traits_ptr());   }
_ZN5boost9intrusive11bstree_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0ELNS0_10algo_typesE5EvE13insert_beforeENS0_13tree_iteratorISG_Lb1EEERSA_:
 1356|  87.5k|   {
 1357|  87.5k|      node_ptr to_insert(this->get_value_traits().to_node_ptr(value));
 1358|  87.5k|      BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::unique(to_insert));
  ------------------
  |  |   33|  87.5k|   #define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  87.5k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
 1359|  87.5k|      this->sz_traits().increment();
 1360|  87.5k|      return iterator(node_algorithms::insert_before
 1361|  87.5k|         (this->header_ptr(), pos.pointed_node(), to_insert), this->priv_value_traits_ptr());
 1362|  87.5k|   }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE16get_value_traitsEv:
  139|  87.9k|   {  return this->holder;  }
_ZNK5boost9intrusive12bstbase_hackINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELb0EmLNS0_10algo_typesE5EvE9sz_traitsEv:
  560|  88.4k|   {  return size_traits();  }
_ZN5boost9intrusive11bstree_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0ELNS0_10algo_typesE5EvEC2Ev:
  688|  13.3k|      :  data_type(key_compare(), value_traits())
  689|  13.3k|   {}
_ZN5boost9intrusive7bstbaseINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELb0EmLNS0_10algo_typesE5EvEC2ERKSH_RKSG_:
  582|  13.8k|      : base_type(comp, vtraits)
  583|  13.8k|   {}
_ZN5boost9intrusive12bstbase_hackINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELb0EmLNS0_10algo_typesE5EvEC2ERKSH_RKSG_:
  554|  13.8k|      : base_type(comp, vtraits)
  555|  13.8k|   {}
_ZN5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvEC2ERKSH_RKSG_:
  300|  13.8k|      : detail::ebo_functor_holder<value_compare>(value_compare(comp)), treeheader_t(vtraits)
  301|  13.8k|   {}
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvEC2ERKSG_:
  124|  13.8k|      : holder(vtraits)
  125|  13.8k|   {
  126|  13.8k|      node_algorithms::init_header(this->header_ptr());
  127|  13.8k|   }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE8holder_tC2ERKSG_:
  108|  13.8k|         : ValueTraits(vtraits)
  109|  13.8k|      {}
_ZN5boost9intrusive7bstbaseINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELb0EmLNS0_10algo_typesE5EvED2Ev:
  588|  13.8k|   {
  589|  13.8k|      if(is_safe_autounlink<value_traits::link_mode>::value){
  ------------------
  |  Branch (589:10): [Folded - Ignored]
  ------------------
  590|      0|         node_algorithms::clear_and_dispose
  591|      0|            ( this->header_ptr()
  592|      0|            , detail::node_disposer<detail::null_disposer, value_traits, AlgoType>
  593|      0|               (detail::null_disposer(), &this->get_value_traits()));
  594|      0|         node_algorithms::init(this->header_ptr());
  595|      0|      }
  596|  13.8k|   }
_ZN5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE11upper_boundINS_4core17basic_string_viewIcEESH_EENS0_13tree_iteratorISG_Lb0EEERKT_T0_:
  349|  65.3k|   {
  350|  65.3k|      return iterator(node_algorithms::upper_bound
  351|  65.3k|         (this->header_ptr(), key, this->key_node_comp(comp)), this->priv_value_traits_ptr());
  352|  65.3k|   }
_ZN5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE5beginEv:
  148|  65.3k|   {  return iterator(node_algorithms::begin_node(this->header_ptr()), this->priv_value_traits_ptr());   }
_ZNK5boost9intrusive11bstree_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0ELNS0_10algo_typesE5EvE5countINS_4core17basic_string_viewIcEESH_EEmRKT_T0_:
 1626|  47.9k|   {
 1627|  47.9k|      std::pair<const_iterator, const_iterator> ret = this->equal_range(key, comp);
 1628|  47.9k|      size_type n = 0;
 1629|  63.7k|      for(; ret.first != ret.second; ++ret.first){ ++n; }
  ------------------
  |  Branch (1629:13): [True: 15.7k, False: 47.9k]
  ------------------
 1630|  47.9k|      return n;
 1631|  47.9k|   }
_ZNK5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE11equal_rangeINS_4core17basic_string_viewIcEESH_EENS6_4pairINS0_13tree_iteratorISG_Lb1EEESQ_EERKT_T0_:
  415|  47.9k|   {
  416|  47.9k|      std::pair<node_ptr, node_ptr> ret =
  417|  47.9k|         node_algorithms::equal_range(this->header_ptr(), key, this->key_node_comp(comp));
  418|  47.9k|      return std::pair<const_iterator, const_iterator>( const_iterator(ret.first, this->priv_value_traits_ptr())
  419|  47.9k|                                                      , const_iterator(ret.second, this->priv_value_traits_ptr()));
  420|  47.9k|   }
_ZNK5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE10header_ptrEv:
  133|   126k|   { return holder.root.get_node(); }
_ZN5boost9intrusive11bstree_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0ELNS0_10algo_typesE5EvEC2EOSJ_:
  737|    450|      : data_type(::boost::move(x.get_comp()), ::boost::move(x.get_value_traits()))
  738|    450|   {
  739|    450|      this->swap(x);
  740|    450|   }
_ZN5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE8get_compEv:
  307|  1.35k|   {  return this->get();  }
_ZN5boost9intrusive11bstree_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0ELNS0_10algo_typesE5EvE4swapERSJ_:
  979|    450|   {
  980|       |      //This can throw
  981|    450|      ::boost::adl_move_swap(this->get_comp(), other.get_comp());
  982|       |      //These can't throw
  983|    450|      node_algorithms::swap_tree(this->header_ptr(), node_ptr(other.header_ptr()));
  984|    450|      this->sz_traits().swap(other.sz_traits());
  985|    450|   }
_ZNK5boost9intrusive8bstbase2INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareELNS0_10algo_typesE5EvE4findINS_4core17basic_string_viewIcEESH_EENS0_13tree_iteratorISG_Lb1EEERKT_T0_:
  390|  39.1k|   {
  391|  39.1k|      return const_iterator
  392|  39.1k|         (node_algorithms::find(this->header_ptr(), key, this->key_node_comp(comp)), this->priv_value_traits_ptr());
  393|  39.1k|   }
_ZNK5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE3endEv:
  160|  39.1k|   {  return cend();  }
_ZNK5boost9intrusive8bstbase3INS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELNS0_10algo_typesE5EvE4cendEv:
  163|  39.1k|   {  return const_iterator(node_algorithms::end_node(this->header_ptr()), this->priv_value_traits_ptr());   }

_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11lower_boundINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEEPNS0_11rbtree_nodeIS3_EEPKSU_RKT_T0_:
  924|  61.3k|   {
  925|  61.3k|      return lower_bound_loop(NodeTraits::get_parent(header), detail::uncast(header), key, comp);
  926|  61.3k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE16lower_bound_loopINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEEPNS0_11rbtree_nodeIS3_EESV_SV_RKT_T0_:
 2032|  71.4k|   {
 2033|   216k|      while(x){
  ------------------
  |  Branch (2033:13): [True: 144k, False: 71.4k]
  ------------------
 2034|   144k|         if(comp(x, key)){
  ------------------
  |  Branch (2034:13): [True: 89.5k, False: 55.0k]
  ------------------
 2035|  89.5k|            x = NodeTraits::get_right(x);
 2036|  89.5k|         }
 2037|  55.0k|         else{
 2038|  55.0k|            y = x;
 2039|  55.0k|            x = NodeTraits::get_left(x);
 2040|  55.0k|         }
 2041|   144k|      }
 2042|  71.4k|      return y;
 2043|  71.4k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE8end_nodeEPKNS0_11rbtree_nodeIS3_EE:
  227|  61.3k|   {  return detail::uncast(header);   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE13insert_beforeEPNS0_11rbtree_nodeIS3_EES8_S8_Pm:
 1205|  87.5k|   {
 1206|  87.5k|      insert_commit_data commit_data;
 1207|  87.5k|      insert_before_check(header, pos, commit_data, pdepth);
 1208|  87.5k|      insert_commit(header, new_node, commit_data);
 1209|  87.5k|      return new_node;
 1210|  87.5k|   }
_ZN5boost9intrusive20insert_commit_data_tIPNS0_11rbtree_nodeIPvEEEC2Ev:
   42|  87.5k|      : link_left(false), node()
   43|  87.5k|   {}
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE19insert_before_checkEPNS0_11rbtree_nodeIS3_EES8_RNS0_20insert_commit_data_tIS8_EEPm:
 1658|  87.5k|   {
 1659|  87.5k|      node_ptr prev(pos);
 1660|  87.5k|      if(pos != NodeTraits::get_left(header))
  ------------------
  |  Branch (1660:10): [True: 65.8k, False: 21.6k]
  ------------------
 1661|  65.8k|         prev = base_type::prev_node(pos);
 1662|  87.5k|      bool link_left = unique(header) || !NodeTraits::get_left(pos);
  ------------------
  |  Branch (1662:24): [True: 12.0k, False: 75.4k]
  |  Branch (1662:42): [True: 21.8k, False: 53.5k]
  ------------------
 1663|  87.5k|      commit_data.link_left = link_left;
 1664|  87.5k|      commit_data.node = link_left ? pos : prev;
  ------------------
  |  Branch (1664:26): [True: 33.9k, False: 53.5k]
  ------------------
 1665|  87.5k|      if(pdepth){
  ------------------
  |  Branch (1665:10): [True: 0, False: 87.5k]
  ------------------
 1666|      0|         *pdepth = commit_data.node == header ? 0 : depth(commit_data.node) + 1;
  ------------------
  |  Branch (1666:20): [True: 0, False: 0]
  ------------------
 1667|      0|      }
 1668|  87.5k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE6uniqueEPKNS0_11rbtree_nodeIS3_EE:
  251|  87.5k|   { return !NodeTraits::get_parent(n); }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE13insert_commitEPNS0_11rbtree_nodeIS3_EES8_RKNS0_20insert_commit_data_tIS8_EE:
 1769|  87.5k|   {
 1770|       |      //Check if commit_data has not been initialized by a insert_unique_check call.
 1771|  87.5k|      BOOST_INTRUSIVE_INVARIANT_ASSERT(commit_data.node != node_ptr());
  ------------------
  |  |   26|  87.5k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  87.5k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
 1772|  87.5k|      node_ptr parent_node(commit_data.node);
 1773|  87.5k|      if(parent_node == header){
  ------------------
  |  Branch (1773:10): [True: 12.0k, False: 75.4k]
  ------------------
 1774|  12.0k|         NodeTraits::set_parent(header, new_node);
 1775|  12.0k|         NodeTraits::set_right(header, new_node);
 1776|  12.0k|         NodeTraits::set_left(header, new_node);
 1777|  12.0k|      }
 1778|  75.4k|      else if(commit_data.link_left){
  ------------------
  |  Branch (1778:15): [True: 21.8k, False: 53.5k]
  ------------------
 1779|  21.8k|         NodeTraits::set_left(parent_node, new_node);
 1780|  21.8k|         if(parent_node == NodeTraits::get_left(header))
  ------------------
  |  Branch (1780:13): [True: 9.57k, False: 12.3k]
  ------------------
 1781|  9.57k|             NodeTraits::set_left(header, new_node);
 1782|  21.8k|      }
 1783|  53.5k|      else{
 1784|  53.5k|         NodeTraits::set_right(parent_node, new_node);
 1785|  53.5k|         if(parent_node == NodeTraits::get_right(header))
  ------------------
  |  Branch (1785:13): [True: 34.9k, False: 18.6k]
  ------------------
 1786|  34.9k|             NodeTraits::set_right(header, new_node);
 1787|  53.5k|      }
 1788|  87.5k|      NodeTraits::set_parent(new_node, parent_node);
 1789|  87.5k|      NodeTraits::set_right(new_node, node_ptr());
 1790|  87.5k|      NodeTraits::set_left(new_node, node_ptr());
 1791|  87.5k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE25rotate_left_no_parent_fixEPNS0_11rbtree_nodeIS3_EES8_:
 1806|  38.1k|   {
 1807|  38.1k|      node_ptr p_right_left(NodeTraits::get_left(p_right));
 1808|  38.1k|      NodeTraits::set_right(p, p_right_left);
 1809|  38.1k|      if(p_right_left){
  ------------------
  |  Branch (1809:10): [True: 10.1k, False: 28.0k]
  ------------------
 1810|  10.1k|         NodeTraits::set_parent(p_right_left, p);
 1811|  10.1k|      }
 1812|  38.1k|      NodeTraits::set_left(p_right, p);
 1813|  38.1k|      NodeTraits::set_parent(p, p_right);
 1814|  38.1k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE12rotate_rightEPNS0_11rbtree_nodeIS3_EES8_S8_S8_:
 1839|  11.0k|   {
 1840|  11.0k|      const bool p_was_left(NodeTraits::get_left(p_parent) == p);
 1841|  11.0k|      rotate_right_no_parent_fix(p, p_left);
 1842|  11.0k|      NodeTraits::set_parent(p_left, p_parent);
 1843|  11.0k|      set_child(header, p_left, p_parent, p_was_left);
 1844|  11.0k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE9set_childEPNS0_11rbtree_nodeIS3_EES8_S8_b:
 1795|  39.7k|   {
 1796|  39.7k|      if(new_parent == header)
  ------------------
  |  Branch (1796:10): [True: 10.5k, False: 29.2k]
  ------------------
 1797|  10.5k|         NodeTraits::set_parent(header, new_child);
 1798|  29.2k|      else if(link_left)
  ------------------
  |  Branch (1798:15): [True: 4.28k, False: 24.9k]
  ------------------
 1799|  4.28k|         NodeTraits::set_left(new_parent, new_child);
 1800|  24.9k|      else
 1801|  24.9k|         NodeTraits::set_right(new_parent, new_child);
 1802|  39.7k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE26rotate_right_no_parent_fixEPNS0_11rbtree_nodeIS3_EES8_:
 1827|  12.9k|   {
 1828|  12.9k|      node_ptr p_left_right(NodeTraits::get_right(p_left));
 1829|  12.9k|      NodeTraits::set_left(p, p_left_right);
 1830|  12.9k|      if(p_left_right){
  ------------------
  |  Branch (1830:10): [True: 2.61k, False: 10.3k]
  ------------------
 1831|  2.61k|         NodeTraits::set_parent(p_left_right, p);
 1832|  2.61k|      }
 1833|  12.9k|      NodeTraits::set_right(p_left, p);
 1834|  12.9k|      NodeTraits::set_parent(p, p_left);
 1835|  12.9k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11rotate_leftEPNS0_11rbtree_nodeIS3_EES8_S8_S8_:
 1818|  28.6k|   {
 1819|  28.6k|      const bool p_was_left(NodeTraits::get_left(p_parent) == p);
 1820|  28.6k|      rotate_left_no_parent_fix(p, p_right);
 1821|  28.6k|      NodeTraits::set_parent(p_right, p_parent);
 1822|  28.6k|      set_child(header, p_right, p_parent, p_was_left);
 1823|  28.6k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11init_headerEPNS0_11rbtree_nodeIS3_EE:
  597|  13.8k|   {
  598|  13.8k|      NodeTraits::set_parent(header, node_ptr());
  599|  13.8k|      NodeTraits::set_left(header, header);
  600|  13.8k|      NodeTraits::set_right(header, header);
  601|  13.8k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11upper_boundINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEEPNS0_11rbtree_nodeIS3_EEPKSU_RKT_T0_:
  942|  65.3k|   {
  943|  65.3k|      return upper_bound_loop(NodeTraits::get_parent(header), detail::uncast(header), key, comp);
  944|  65.3k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE16upper_bound_loopINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEEPNS0_11rbtree_nodeIS3_EESV_SV_RKT_T0_:
 2048|  75.4k|   {
 2049|   399k|      while(x){
  ------------------
  |  Branch (2049:13): [True: 323k, False: 75.4k]
  ------------------
 2050|   323k|         if(comp(key, x)){
  ------------------
  |  Branch (2050:13): [True: 58.5k, False: 265k]
  ------------------
 2051|  58.5k|            y = x;
 2052|  58.5k|            x = NodeTraits::get_left(x);
 2053|  58.5k|         }
 2054|   265k|         else{
 2055|   265k|            x = NodeTraits::get_right(x);
 2056|   265k|         }
 2057|   323k|      }
 2058|  75.4k|      return y;
 2059|  75.4k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE10begin_nodeEPKNS0_11rbtree_nodeIS3_EE:
  217|  65.3k|   {  return node_traits::get_left(header);   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11equal_rangeINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEENSF_4pairIPNS0_11rbtree_nodeIS3_EESW_EEPKSV_RKT_T0_:
  880|  47.9k|   {
  881|  47.9k|      return bounded_range(header, key, key, comp, true, true);
  882|  47.9k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE13bounded_rangeINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEENSF_4pairIPNS0_11rbtree_nodeIS3_EESW_EEPKSV_RKT_S12_T0_bb:
  792|  47.9k|   {
  793|  47.9k|      node_ptr y = detail::uncast(header);
  794|  47.9k|      node_ptr x = NodeTraits::get_parent(header);
  795|       |
  796|   142k|      while(x){
  ------------------
  |  Branch (796:13): [True: 105k, False: 37.8k]
  ------------------
  797|       |         //If x is less than lower_key the target
  798|       |         //range is on the right part
  799|   105k|         if(comp(x, lower_key)){
  ------------------
  |  Branch (799:13): [True: 52.9k, False: 52.2k]
  ------------------
  800|       |            //Check for invalid input range
  801|  52.9k|            BOOST_INTRUSIVE_INVARIANT_ASSERT(comp(x, upper_key));
  ------------------
  |  |   26|  52.9k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  52.9k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  802|  52.9k|            x = NodeTraits::get_right(x);
  803|  52.9k|         }
  804|       |         //If the upper_key is less than x, the target
  805|       |         //range is on the left part
  806|  52.2k|         else if(comp(upper_key, x)){
  ------------------
  |  Branch (806:18): [True: 42.1k, False: 10.1k]
  ------------------
  807|  42.1k|            y = x;
  808|  42.1k|            x = NodeTraits::get_left(x);
  809|  42.1k|         }
  810|  10.1k|         else{
  811|       |            //x is inside the bounded range(lower_key <= x <= upper_key),
  812|       |            //so we must split lower and upper searches
  813|       |            //
  814|       |            //Sanity check: if lower_key and upper_key are equal, then both left_closed and right_closed can't be false
  815|  10.1k|            BOOST_INTRUSIVE_INVARIANT_ASSERT(left_closed || right_closed || comp(lower_key, x) || comp(x, upper_key));
  ------------------
  |  |   26|  10.1k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  10.1k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  816|  10.1k|            return std::pair<node_ptr,node_ptr>(
  817|  10.1k|               left_closed
  ------------------
  |  Branch (817:16): [True: 10.1k, False: 0]
  ------------------
  818|       |                  //If left_closed, then comp(x, lower_key) is already the lower_bound
  819|       |                  //condition so we save one comparison and go to the next level
  820|       |                  //following traditional lower_bound algo
  821|  10.1k|                  ? lower_bound_loop(NodeTraits::get_left(x), x, lower_key, comp)
  822|       |                  //If left-open, comp(x, lower_key) is not the upper_bound algo
  823|       |                  //condition so we must recheck current 'x' node with upper_bound algo
  824|  10.1k|                  : upper_bound_loop(x, y, lower_key, comp)
  825|  10.1k|            ,
  826|  10.1k|               right_closed
  ------------------
  |  Branch (826:16): [True: 10.1k, False: 0]
  ------------------
  827|       |                  //If right_closed, then comp(upper_key, x) is already the upper_bound
  828|       |                  //condition so we can save one comparison and go to the next level
  829|       |                  //following lower_bound algo
  830|  10.1k|                  ? upper_bound_loop(NodeTraits::get_right(x), y, upper_key, comp)
  831|       |                  //If right-open, comp(upper_key, x) is not the lower_bound algo
  832|       |                  //condition so we must recheck current 'x' node with lower_bound algo
  833|  10.1k|                  : lower_bound_loop(x, y, upper_key, comp)
  834|  10.1k|            );
  835|  10.1k|         }
  836|   105k|      }
  837|  37.8k|      return std::pair<node_ptr,node_ptr> (y, y);
  838|  47.9k|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE9swap_treeEPNS0_11rbtree_nodeIS3_EES8_:
  693|    450|   {
  694|    450|      if(header1 == header2)
  ------------------
  |  Branch (694:10): [True: 0, False: 450]
  ------------------
  695|      0|         return;
  696|       |
  697|    450|      node_ptr tmp;
  698|       |
  699|       |      //Parent swap
  700|    450|      tmp = NodeTraits::get_parent(header1);
  701|    450|      NodeTraits::set_parent(header1, NodeTraits::get_parent(header2));
  702|    450|      NodeTraits::set_parent(header2, tmp);
  703|       |      //Left swap
  704|    450|      tmp = NodeTraits::get_left(header1);
  705|    450|      NodeTraits::set_left(header1, NodeTraits::get_left(header2));
  706|    450|      NodeTraits::set_left(header2, tmp);
  707|       |      //Right swap
  708|    450|      tmp = NodeTraits::get_right(header1);
  709|    450|      NodeTraits::set_right(header1, NodeTraits::get_right(header2));
  710|    450|      NodeTraits::set_right(header2, tmp);
  711|       |
  712|       |      //Now test parent
  713|    450|      node_ptr h1_parent(NodeTraits::get_parent(header1));
  714|    450|      if(h1_parent){
  ------------------
  |  Branch (714:10): [True: 450, False: 0]
  ------------------
  715|    450|         NodeTraits::set_parent(h1_parent, header1);
  716|    450|      }
  717|      0|      else{
  718|      0|         NodeTraits::set_left(header1, header1);
  719|      0|         NodeTraits::set_right(header1, header1);
  720|      0|      }
  721|       |
  722|    450|      node_ptr h2_parent(NodeTraits::get_parent(header2));
  723|    450|      if(h2_parent){
  ------------------
  |  Branch (723:10): [True: 0, False: 450]
  ------------------
  724|      0|         NodeTraits::set_parent(h2_parent, header2);
  725|      0|      }
  726|    450|      else{
  727|    450|         NodeTraits::set_left(header2, header2);
  728|    450|         NodeTraits::set_right(header2, header2);
  729|    450|      }
  730|    450|   }
_ZN5boost9intrusive17bstree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE4findINS_4core17basic_string_viewIcEENS0_6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINSI_7elementES4_LNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISL_EEEEEEPNS0_11rbtree_nodeIS3_EEPKSU_RKT_T0_:
  757|  39.1k|   {
  758|  39.1k|      node_ptr end = detail::uncast(header);
  759|  39.1k|      node_ptr y = lower_bound(header, key, comp);
  760|  39.1k|      return (y == end || comp(key, y)) ? end : y;
  ------------------
  |  Branch (760:15): [True: 4.75k, False: 34.4k]
  |  Branch (760:27): [True: 9.68k, False: 24.7k]
  ------------------
  761|  39.1k|   }

_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE11link_beforeEPNS0_9list_nodeIS3_EES8_:
  183|  87.5k|   {
  184|  87.5k|      node_ptr prev(NodeTraits::get_previous(nxt_node));
  185|  87.5k|      NodeTraits::set_previous(this_node, prev);
  186|  87.5k|      NodeTraits::set_next(this_node, nxt_node);
  187|       |      //nxt_node might be an alias for prev->next_
  188|       |      //so use it before NodeTraits::set_next(prev, ...)
  189|       |      //is called and the reference changes its value
  190|  87.5k|      NodeTraits::set_previous(nxt_node, this_node);
  191|  87.5k|      NodeTraits::set_next(prev, this_node);
  192|  87.5k|   }
_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE6initedEPKNS0_9list_nodeIS3_EE:
   84|  53.1k|   {  return !NodeTraits::get_next(this_node); }
_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE11init_headerEPNS0_9list_nodeIS3_EE:
   95|  13.8k|   {
   96|  13.8k|      NodeTraits::set_next(this_node, this_node);
   97|  13.8k|      NodeTraits::set_previous(this_node, this_node);
   98|  13.8k|   }
_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE10swap_nodesEPNS0_9list_nodeIS3_EES8_:
  224|    450|   {
  225|    450|      if (other_node == this_node)
  ------------------
  |  Branch (225:11): [True: 0, False: 450]
  ------------------
  226|      0|         return;
  227|    450|      bool this_inited  = inited(this_node);
  228|    450|      bool other_inited = inited(other_node);
  229|    450|      if(this_inited){
  ------------------
  |  Branch (229:10): [True: 0, False: 450]
  ------------------
  230|      0|         init_header(this_node);
  231|      0|      }
  232|    450|      if(other_inited){
  ------------------
  |  Branch (232:10): [True: 0, False: 450]
  ------------------
  233|      0|         init_header(other_node);
  234|      0|      }
  235|       |
  236|    450|      node_ptr next_this(NodeTraits::get_next(this_node));
  237|    450|      node_ptr prev_this(NodeTraits::get_previous(this_node));
  238|    450|      node_ptr next_other(NodeTraits::get_next(other_node));
  239|    450|      node_ptr prev_other(NodeTraits::get_previous(other_node));
  240|       |      //these first two swaps must happen before the other two
  241|    450|      swap_prev(next_this, next_other);
  242|    450|      swap_next(prev_this, prev_other);
  243|    450|      swap_next(this_node, other_node);
  244|    450|      swap_prev(this_node, other_node);
  245|       |
  246|    450|      if(this_inited){
  ------------------
  |  Branch (246:10): [True: 0, False: 450]
  ------------------
  247|      0|         init(other_node);
  248|      0|      }
  249|    450|      if(other_inited){
  ------------------
  |  Branch (249:10): [True: 0, False: 450]
  ------------------
  250|      0|         init(this_node);
  251|      0|      }
  252|    450|   }
_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE9swap_prevEPNS0_9list_nodeIS3_EES8_:
  447|    900|   {
  448|    900|      node_ptr temp(NodeTraits::get_previous(this_node));
  449|    900|      NodeTraits::set_previous(this_node, NodeTraits::get_previous(other_node));
  450|    900|      NodeTraits::set_previous(other_node, temp);
  451|    900|   }
_ZN5boost9intrusive24circular_list_algorithmsINS0_16list_node_traitsIPvEEE9swap_nextEPNS0_9list_nodeIS3_EES8_:
  454|    900|   {
  455|    900|      node_ptr temp(NodeTraits::get_next(this_node));
  456|    900|      NodeTraits::set_next(this_node, NodeTraits::get_next(other_node));
  457|    900|      NodeTraits::set_next(other_node, temp);
  458|    900|   }

_ZN5boost9intrusive22bstree_algorithms_baseINS0_18rbtree_node_traitsIPvLb0EEEE9prev_nodeEPNS0_11rbtree_nodeIS3_EE:
   69|   119k|   {
   70|   119k|      if(is_header(n)){
  ------------------
  |  Branch (70:10): [True: 58.0k, False: 61.8k]
  ------------------
   71|  58.0k|         return NodeTraits::get_right(n);
   72|  58.0k|      }
   73|  61.8k|      else if(NodeTraits::get_left(n)){
  ------------------
  |  Branch (73:15): [True: 37.2k, False: 24.6k]
  ------------------
   74|  37.2k|         return maximum(NodeTraits::get_left(n));
   75|  37.2k|      }
   76|  24.6k|      else {
   77|  24.6k|         node_ptr p(n);
   78|  24.6k|         node_ptr x = NodeTraits::get_parent(p);
   79|  28.0k|         while(p == NodeTraits::get_left(x)){
  ------------------
  |  Branch (79:16): [True: 3.37k, False: 24.6k]
  ------------------
   80|  3.37k|            p = x;
   81|  3.37k|            x = NodeTraits::get_parent(x);
   82|  3.37k|         }
   83|  24.6k|         return x;
   84|  24.6k|      }
   85|   119k|   }
_ZN5boost9intrusive22bstree_algorithms_baseINS0_18rbtree_node_traitsIPvLb0EEEE9is_headerEPKNS0_11rbtree_nodeIS3_EE:
  129|   119k|   {
  130|   119k|      node_ptr p_left (NodeTraits::get_left(p));
  131|   119k|      node_ptr p_right(NodeTraits::get_right(p));
  132|   119k|      if(!NodeTraits::get_parent(p) || //Header condition when empty tree
  ------------------
  |  Branch (132:10): [True: 0, False: 119k]
  ------------------
  133|   119k|         (p_left && p_right &&         //Header always has leftmost and rightmost
  ------------------
  |  Branch (133:11): [True: 95.2k, False: 24.6k]
  |  Branch (133:21): [True: 80.2k, False: 14.9k]
  ------------------
  134|   119k|            (p_left == p_right ||      //Header condition when only node
  ------------------
  |  Branch (134:14): [True: 12.7k, False: 67.5k]
  ------------------
  135|  80.2k|               (NodeTraits::get_parent(p_left)  != p ||
  ------------------
  |  Branch (135:17): [True: 35.5k, False: 31.9k]
  ------------------
  136|  67.5k|                NodeTraits::get_parent(p_right) != p ))
  ------------------
  |  Branch (136:17): [True: 9.74k, False: 22.2k]
  ------------------
  137|       |               //When tree size > 1 headers can't be leftmost's
  138|       |               //and rightmost's parent
  139|   119k|          )){
  140|  58.0k|         return true;
  141|  58.0k|      }
  142|  61.8k|      return false;
  143|   119k|   }
_ZN5boost9intrusive22bstree_algorithms_baseINS0_18rbtree_node_traitsIPvLb0EEEE7maximumEPNS0_11rbtree_nodeIS3_EE:
  112|  37.2k|   {
  113|  37.2k|      for(node_ptr p_right = NodeTraits::get_right(n)
  114|  88.1k|         ;p_right
  ------------------
  |  Branch (114:11): [True: 50.8k, False: 37.2k]
  ------------------
  115|  50.8k|         ;p_right = NodeTraits::get_right(n)){
  116|  50.8k|         n = p_right;
  117|  50.8k|      }
  118|  37.2k|      return n;
  119|  37.2k|   }
_ZN5boost9intrusive22bstree_algorithms_baseINS0_18rbtree_node_traitsIPvLb0EEEE9next_nodeEPNS0_11rbtree_nodeIS3_EE:
   46|  15.7k|   {
   47|  15.7k|      node_ptr const n_right(NodeTraits::get_right(n));
   48|  15.7k|      if(n_right){
  ------------------
  |  Branch (48:10): [True: 3.86k, False: 11.8k]
  ------------------
   49|  3.86k|         return minimum(n_right);
   50|  3.86k|      }
   51|  11.8k|      else {
   52|  11.8k|         node_ptr p(NodeTraits::get_parent(n));
   53|  14.8k|         while(n == NodeTraits::get_right(p)){
  ------------------
  |  Branch (53:16): [True: 2.91k, False: 11.8k]
  ------------------
   54|  2.91k|            n = p;
   55|  2.91k|            p = NodeTraits::get_parent(p);
   56|  2.91k|         }
   57|  11.8k|         return NodeTraits::get_right(n) != p ? p : n;
  ------------------
  |  Branch (57:17): [True: 11.8k, False: 13]
  ------------------
   58|  11.8k|      }
   59|  15.7k|   }
_ZN5boost9intrusive22bstree_algorithms_baseINS0_18rbtree_node_traitsIPvLb0EEEE7minimumEPNS0_11rbtree_nodeIS3_EE:
   95|  3.86k|   {
   96|  3.86k|      for(node_ptr p_left = NodeTraits::get_left(n)
   97|  7.08k|         ;p_left
  ------------------
  |  Branch (97:11): [True: 3.22k, False: 3.86k]
  ------------------
   98|  3.86k|         ;p_left = NodeTraits::get_left(n)){
   99|  3.22k|         n = p_left;
  100|  3.22k|      }
  101|  3.86k|      return n;
  102|  3.86k|   }

_ZN5boost9intrusive6detail21default_header_holderINS0_18rbtree_node_traitsIPvLb0EEEE8get_nodeEv:
   47|   277k|   { return pointer_traits< node_ptr >::pointer_to(*static_cast< node* >(this)); }
_ZN5boost9intrusive6detail21default_header_holderINS0_16list_node_traitsIPvEEE8get_nodeEv:
   47|   189k|   { return pointer_traits< node_ptr >::pointer_to(*static_cast< node* >(this)); }
_ZN5boost9intrusive6detail21default_header_holderINS0_18rbtree_node_traitsIPvLb0EEEEC2Ev:
   41|  13.8k|   default_header_holder() : node() {}
_ZN5boost9intrusive6detail21default_header_holderINS0_16list_node_traitsIPvEEEC2Ev:
   41|  13.8k|   default_header_holder() : node() {}
_ZNK5boost9intrusive6detail21default_header_holderINS0_18rbtree_node_traitsIPvLb0EEEE8get_nodeEv:
   44|   126k|   { return pointer_traits< const_node_ptr >::pointer_to(*static_cast< const node* >(this)); }
_ZNK5boost9intrusive6detail21default_header_holderINS0_16list_node_traitsIPvEEE8get_nodeEv:
   44|  63.9k|   { return pointer_traits< const_node_ptr >::pointer_to(*static_cast< const node* >(this)); }

_ZNK5boost9intrusive6detail18ebo_functor_holderINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareEvLb0EE3getEv:
  285|   962k|   inline const T& get()const{return *this;}
_ZN5boost9intrusive6detail18ebo_functor_holderINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareEvLb0EEC2ERKSA_:
  239|  1.15M|      : T(t)
  240|  1.15M|   {}
_ZN5boost9intrusive6detail18ebo_functor_holderINS0_18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENSA_11key_compareENS_11move_detail8identityISB_EEbLb1EEEvLb0EEC2EOSH_:
  243|  13.8k|      : T(::boost::move(t))
  244|  13.8k|   {}
_ZN5boost9intrusive6detail18ebo_functor_holderINS0_18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENSA_11key_compareENS_11move_detail8identityISB_EEbLb1EEEvLb0EE3getEv:
  284|  1.35k|   inline T&       get(){return *this;}
_ZN5boost9intrusive6detail18ebo_functor_holderINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareEvLb0EE3getEv:
  284|    900|   inline T&       get(){return *this;}

_ZN5boost9intrusive12generic_hookILNS0_10algo_typesE5ENS0_18rbtree_node_traitsIPvLb0EEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE3EED2Ev:
  190|  87.5k|   {
  191|  87.5k|      destructor_impl
  192|  87.5k|         (*this, detail::link_dispatch<hooktags::link_mode>());
  193|  87.5k|   }
_ZN5boost9intrusive6detail15destructor_implINS0_12generic_hookILNS0_10algo_typesE5ENS0_18rbtree_node_traitsIPvLb0EEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE3EEEEEvRT_NS1_13link_dispatchILS9_0EEE:
   56|  87.5k|{}
_ZN5boost9intrusive12generic_hookILNS0_10algo_typesE0ENS0_16list_node_traitsIPvEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE1EED2Ev:
  190|  87.5k|   {
  191|  87.5k|      destructor_impl
  192|  87.5k|         (*this, detail::link_dispatch<hooktags::link_mode>());
  193|  87.5k|   }
_ZN5boost9intrusive6detail15destructor_implINS0_12generic_hookILNS0_10algo_typesE0ENS0_16list_node_traitsIPvEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE1EEEEEvRT_NS1_13link_dispatchILS9_0EEE:
   56|  87.5k|{}
_ZN5boost9intrusive12generic_hookILNS0_10algo_typesE0ENS0_16list_node_traitsIPvEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE1EEC2Ev:
  173|  87.5k|   {
  174|  87.5k|      if(hooktags::safemode_or_autounlink){
  ------------------
  |  Branch (174:10): [Folded - Ignored]
  ------------------
  175|      0|         node_algorithms::init(this->this_ptr());
  176|      0|      }
  177|  87.5k|   }
_ZN5boost9intrusive12generic_hookILNS0_10algo_typesE5ENS0_18rbtree_node_traitsIPvLb0EEENS0_7dft_tagELNS0_14link_mode_typeE0ELNS0_14base_hook_typeE3EEC2Ev:
  173|  87.5k|   {
  174|  87.5k|      if(hooktags::safemode_or_autounlink){
  ------------------
  |  Branch (174:10): [Folded - Ignored]
  ------------------
  175|      0|         node_algorithms::init(this->this_ptr());
  176|      0|      }
  177|  87.5k|   }

_ZN5boost9intrusive13bhtraits_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEPNS0_11rbtree_nodeIPvEENS0_7dft_tagELj3EE12to_value_ptrESD_:
   61|   824k|   {
   62|   824k|      return pointer_traits<pointer>::
   63|   824k|         static_cast_from(pointer_traits<node_holder_ptr>::static_cast_from(n));
   64|   824k|   }
_ZN5boost9intrusive13bhtraits_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEPNS0_11rbtree_nodeIPvEENS0_7dft_tagELj3EE11to_node_ptrERS9_:
   73|  87.5k|   {
   74|  87.5k|      node_ptr p = pointer_traits<node_ptr>::pointer_to
   75|  87.5k|         (static_cast<node_reference>(static_cast<node_holder_reference>(value)));
   76|  87.5k|      return p;
   77|  87.5k|   }
_ZN5boost9intrusive13bhtraits_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEPNS0_9list_nodeIPvEENS0_7dft_tagELj1EE11to_node_ptrERS9_:
   73|   192k|   {
   74|   192k|      node_ptr p = pointer_traits<node_ptr>::pointer_to
   75|   192k|         (static_cast<node_reference>(static_cast<node_holder_reference>(value)));
   76|   192k|      return p;
   77|   192k|   }
_ZN5boost9intrusive13bhtraits_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEPNS0_9list_nodeIPvEENS0_7dft_tagELj1EE12to_value_ptrESD_:
   61|   578k|   {
   62|   578k|      return pointer_traits<pointer>::
   63|   578k|         static_cast_from(pointer_traits<node_holder_ptr>::static_cast_from(n));
   64|   578k|   }

_ZN5boost9intrusive17iiterator_membersIPNS0_11rbtree_nodeIPvEEPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIS3_Lb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEC2ERKS5_RKSL_:
  110|   728k|      : nodeptr_(n_ptr)
  111|   728k|   {}
_ZNK5boost9intrusive17iiterator_membersIPNS0_11rbtree_nodeIPvEEPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIS3_Lb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EE7get_ptrEv:
  114|   291k|   {  return StoredPointer();  }
_ZNK5boost9intrusive17iiterator_membersIPNS0_9list_nodeIPvEEPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIS3_EELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE7get_ptrEv:
  114|   460k|   {  return StoredPointer();  }
_ZN5boost9intrusive17iiterator_membersIPNS0_9list_nodeIPvEEPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIS3_EELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2ERKS5_RKSL_:
  110|   719k|      : nodeptr_(n_ptr)
  111|   719k|   {}

_ZNK5boost9intrusive6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINS9_7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISC_EEEclIPNS0_11rbtree_nodeISE_EENS_4core17basic_string_viewIcEEEEbRKT_RKT0_NSJ_11enable_if_cIXaasr30is_same_or_nodeptr_convertibleISU_EE5valuentsr30is_same_or_nodeptr_convertibleISX_EE5valueEPNSM_11sfinae_typeEE4typeE:
  104|   302k|   {  return base()(*traits_->to_value_ptr(t1), t2);  }
_ZNK5boost9intrusive6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINS9_7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISC_EEE4baseEv:
   82|   713k|   {  return static_cast<const base_t&>(*this); }
_ZN5boost9intrusive6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINS9_7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISC_EEEC2ESA_PKSI_:
   85|   174k|      :  base_t(kcomp), traits_(traits)
   86|   174k|   {}
_ZNK5boost9intrusive6detail16key_nodeptr_compINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE11key_compareENS0_8bhtraitsINS9_7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEENS_11move_detail8identityISC_EEEclINS_4core17basic_string_viewIcEEPNS0_11rbtree_nodeISE_EEEEbRKT_RKT0_NSJ_11enable_if_cIXaantsr30is_same_or_nodeptr_convertibleISU_EE5valuesr30is_same_or_nodeptr_convertibleISX_EE5valueEPNSM_11sfinae_typeEE4typeE:
  110|   410k|   {  return base()(t1, *traits_->to_value_ptr(t2));  }

_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EE12pointed_nodeEv:
   82|   779k|   { return members_.nodeptr_; }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEppEv:
   92|   133k|   {
   93|   133k|      node_ptr p = node_traits::get_next(members_.nodeptr_);
   94|   133k|      members_.nodeptr_ = p;
   95|   133k|      return static_cast<list_iterator&> (*this);
   96|   133k|   }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EE16get_value_traitsEv:
   88|   345k|   {  return members_.get_ptr(); }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2EPNS0_9list_nodeISC_EEPKSG_:
   67|   170k|      : members_(nodeptr, traits_ptr)
   68|   170k|   {}
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEC2ERKSH_:
   71|   345k|      :  members_(other.pointed_node(), other.get_value_traits())
   72|   345k|   {}
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEC2ERKNS1_ISG_Lb0EEE:
   75|  27.5k|      :  members_(other.pointed_node(), other.get_value_traits())
   76|  27.5k|   {}
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE12pointed_nodeEv:
   82|   317k|   { return members_.nodeptr_; }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE16get_value_traitsEv:
   88|   115k|   {  return members_.get_ptr(); }
_ZN5boost9intrusiveneERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEESJ_:
  122|   101k|   {  return !(l == r); }
_ZN5boost9intrusiveeqERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEESJ_:
  119|   101k|   {  return l.pointed_node() == r.pointed_node();   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEppEi:
   99|  87.5k|   {
  100|  87.5k|      list_iterator result (*this);
  101|  87.5k|      members_.nodeptr_ = node_traits::get_next(members_.nodeptr_);
  102|  87.5k|      return result;
  103|  87.5k|   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEC2ERKSH_:
   71|  87.5k|      :  members_(other.pointed_node(), other.get_value_traits())
   72|  87.5k|   {}
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEdeEv:
  125|  87.5k|   {  return *operator->();   }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEptEv:
  128|  87.5k|   { return this->operator_arrow(detail::bool_<stateful_value_traits>()); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EE14operator_arrowENS_11move_detail5bool_ILb0EEE:
  135|  87.5k|   { return ValueTraits::to_value_ptr(members_.nodeptr_); }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb0EEppEv:
   92|  27.5k|   {
   93|  27.5k|      node_ptr p = node_traits::get_next(members_.nodeptr_);
   94|  27.5k|      members_.nodeptr_ = p;
   95|  27.5k|      return static_cast<list_iterator&> (*this);
   96|  27.5k|   }
_ZN5boost9intrusiveeqERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEESJ_:
  119|   203k|   {  return l.pointed_node() == r.pointed_node();   }
_ZN5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEC2EPNS0_9list_nodeISC_EEPKSG_:
   67|  88.6k|      : members_(nodeptr, traits_ptr)
   68|  88.6k|   {}
_ZN5boost9intrusiveneERKNS0_13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEESJ_:
  122|  5.13k|   {  return !(l == r); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EEptEv:
  128|   490k|   { return this->operator_arrow(detail::bool_<stateful_value_traits>()); }
_ZNK5boost9intrusive13list_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEELb1EE14operator_arrowENS_11move_detail5bool_ILb0EEE:
  135|   490k|   { return ValueTraits::to_value_ptr(members_.nodeptr_); }

_ZN5boost9intrusive16list_node_traitsIPvE12get_previousEPNS0_9list_nodeIS2_EE:
   54|  90.2k|   {  return n->prev_;  }
_ZN5boost9intrusive16list_node_traitsIPvE12set_previousEPNS0_9list_nodeIS2_EES6_:
   57|   190k|   {  n->prev_ = prev;  }
_ZN5boost9intrusive16list_node_traitsIPvE8set_nextEPNS0_9list_nodeIS2_EES6_:
   66|   190k|   {  n->next_ = next;  }
_ZN5boost9intrusive16list_node_traitsIPvE8get_nextEPNS0_9list_nodeIS2_EE:
   63|   264k|   {  return n->next_;  }
_ZN5boost9intrusive16list_node_traitsIPvE8get_nextEPKNS0_9list_nodeIS2_EE:
   60|  58.3k|   {  return n->next_;  }

_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9get_rightEPNS0_11rbtree_nodeIS2_EE:
   99|   690k|   {  return n->right_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE8get_leftEPNS0_11rbtree_nodeIS2_EE:
   90|   680k|   {  return n->left_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE10get_parentEPKNS0_11rbtree_nodeIS2_EE:
   78|   382k|   {  return n->parent_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE8get_leftEPKNS0_11rbtree_nodeIS2_EE:
   87|   185k|   {  return n->left_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9get_rightEPKNS0_11rbtree_nodeIS2_EE:
   96|   119k|   {  return n->right_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE10get_parentEPNS0_11rbtree_nodeIS2_EE:
   81|   522k|   {  return n->parent_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE10set_parentEPNS0_11rbtree_nodeIS2_EES6_:
   84|   228k|   {  n->parent_ = p;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9set_rightEPNS0_11rbtree_nodeIS2_EES6_:
  102|   279k|   {  n->right_ = r;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE8set_leftEPNS0_11rbtree_nodeIS2_EES6_:
   93|   201k|   {  n->left_ = l;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9set_colorEPNS0_11rbtree_nodeIS2_EENS5_5colorE:
  111|   381k|   {  n->color_ = c;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE3redEv:
  117|   227k|   {  return node::red_t;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE9get_colorEPNS0_11rbtree_nodeIS2_EE:
  108|   150k|   {  return n->color_;  }
_ZN5boost9intrusive31default_rbtree_node_traits_implIPvE5blackEv:
  114|   305k|   {  return node::black_t;  }

_ZN5boost9intrusive6detail11size_holderILb0EmvE9incrementEv:
   76|   175k|   {}
_ZN5boost9intrusive6detail11size_holderILb0EmvE8set_sizeEm:
   70|  13.8k|   {}
_ZN5boost9intrusive6detail11size_holderILb0EmvE4swapES3_:
   84|    900|   inline void swap(size_holder){}

_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEC2EPNS0_11rbtree_nodeISC_EEPKSG_:
   75|   262k|      : members_(nodeptr, traits_ptr)
   76|   262k|   {}
_ZN5boost9intrusiveeqERKNS0_13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEESJ_:
  147|  87.5k|   { return l.pointed_node() == r.pointed_node(); }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EE12pointed_nodeEv:
   93|   370k|   { return members_.nodeptr_; }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEptEv:
  156|  86.7k|   { return this->operator_arrow(detail::bool_<stateful_value_traits>()); }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EE14operator_arrowENS_11move_detail5bool_ILb0EEE:
  171|  86.7k|   { return ValueTraits::to_value_ptr(members_.nodeptr_); }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EE12pointed_nodeEv:
   93|   389k|   { return members_.nodeptr_; }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEC2ERKNS1_ISG_Lb0EEE:
   83|  87.5k|      :  members_(other.pointed_node(), other.get_value_traits())
   84|  87.5k|   {}
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EE16get_value_traitsEv:
  159|   195k|   {  return members_.get_ptr();  }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEC2ERKSH_:
   79|   108k|      :  members_(other.pointed_node(), other.get_value_traits())
   80|   108k|   {}
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEC2ERKSH_:
   79|  95.9k|      :  members_(other.pointed_node(), other.get_value_traits())
   80|  95.9k|   {}
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EE16get_value_traitsEv:
  159|  95.9k|   {  return members_.get_ptr();  }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEppEv:
   97|  15.7k|   {
   98|  15.7k|      members_.nodeptr_ = node_algorithms::next_node(members_.nodeptr_);
   99|  15.7k|      return *this;
  100|  15.7k|   }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEdeEv:
  153|  27.5k|   {  return *operator->();   }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEC2EPNS0_11rbtree_nodeISC_EEPKSG_:
   75|   174k|      : members_(nodeptr, traits_ptr)
   76|   174k|   {}
_ZN5boost9intrusiveneERKNS0_13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEESJ_:
  150|  63.7k|   {  return !(l == r);   }
_ZN5boost9intrusiveeqERKNS0_13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEESJ_:
  147|   102k|   { return l.pointed_node() == r.pointed_node(); }
_ZN5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb0EEmmEv:
  110|  54.0k|   {
  111|  54.0k|      members_.nodeptr_ = node_algorithms::prev_node(members_.nodeptr_);
  112|  54.0k|      return *this;
  113|  54.0k|   }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEdeEv:
  153|  24.7k|   {  return *operator->();   }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EEptEv:
  156|  24.7k|   { return this->operator_arrow(detail::bool_<stateful_value_traits>()); }
_ZNK5boost9intrusive13tree_iteratorINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEELb1EE14operator_arrowENS_11move_detail5bool_ILb0EEE:
  171|  24.7k|   { return ValueTraits::to_value_ptr(members_.nodeptr_); }

_ZN5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEC2ERKSF_:
  149|   961k|      :  base_t(x.base_t::get())
  150|   961k|   {}
_ZNK5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEclINS_4core17basic_string_viewIcEEEEbRKS9_RKT_PNS0_22disable_if_smartref_toISM_SA_E4typeE:
  175|   302k|   {  return this->key_comp()(key1, nonkey2);  }
_ZNK5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EE8key_compEv:
  159|   713k|   {  return static_cast<const key_compare &>(*this);  }
_ZN5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEC2ERKSB_:
  145|   188k|      :  base_t(kcomp)
  146|   188k|   {}
_ZNK5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEclINS_4core17basic_string_viewIcEEEEbRKT_RKS9_PNS0_22disable_if_smartref_toISK_SA_E4typeE:
  180|   410k|   {  return this->key_comp()(nonkey1, key2);  }
_ZN5boost9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS8_11key_compareENS_11move_detail8identityIS9_EEbLb1EEaSERKSF_:
  153|    900|   {  this->base_t::get() = x.base_t::get();   return *this;  }

websocket_server.cpp:_ZN5boost9intrusive6detailL6uncastIPKNS0_11rbtree_nodeIPvEEEENS1_12uncast_typesIT_E17non_const_pointerERKS9_:
   45|   275k|{
   46|   275k|   return uncast_types<ConstNodePtr>::non_const_traits::const_cast_from(ptr);
   47|   275k|}
websocket_server.cpp:_ZN5boost9intrusive6detailL6uncastIPKNS0_9list_nodeIPvEEEENS1_12uncast_typesIT_E17non_const_pointerERKS9_:
   45|  58.7k|{
   46|  58.7k|   return uncast_types<ConstNodePtr>::non_const_traits::const_cast_from(ptr);
   47|  58.7k|}
websocket_server.cpp:_ZN5boost9intrusive6detailL6uncastIPKNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEEENS1_12uncast_typesIT_E17non_const_pointerERKSE_:
   45|  24.7k|{
   46|  24.7k|   return uncast_types<ConstNodePtr>::non_const_traits::const_cast_from(ptr);
   47|  24.7k|}

_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE9push_backERSA_:
  270|  60.0k|   {
  271|  60.0k|      node_ptr to_insert = priv_value_traits().to_node_ptr(value);
  272|  60.0k|      BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(to_insert));
  ------------------
  |  |   33|  60.0k|   #define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  60.0k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  273|  60.0k|      node_algorithms::link_before(this->get_root_node(), to_insert);
  274|  60.0k|      this->priv_size_traits().increment();
  275|  60.0k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE17priv_value_traitsEv:
  160|   143k|   {  return data_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE13get_root_nodeEv:
  130|   189k|   { return data_.root_plus_size_.m_header.get_node(); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE16priv_size_traitsEv:
  151|   102k|   {  return data_.root_plus_size_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE11iterator_toERSA_:
 1310|  27.5k|   {
 1311|  27.5k|      BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::inited(this->priv_value_traits().to_node_ptr(value)));
  ------------------
  |  |   26|  27.5k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  27.5k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
 1312|  27.5k|      return iterator(this->priv_value_traits().to_node_ptr(value), this->priv_value_traits_ptr());
 1313|  27.5k|   }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE21priv_value_traits_ptrEv:
  166|   258k|   {  return pointer_traits<const_value_traits_ptr>::pointer_to(this->priv_value_traits());  }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE17priv_value_traitsEv:
  157|   308k|   {  return data_;  }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvEC2Ev:
  179|  13.3k|      :  data_(value_traits())
  180|  13.3k|   {
  181|  13.3k|      this->priv_size_traits().set_size(size_type(0));
  182|  13.3k|      node_algorithms::init_header(this->get_root_node());
  183|  13.3k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE6data_tC2ERKSG_:
  144|  13.8k|         :  value_traits(val_traits)
  145|  13.8k|      {}
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE5beginEv:
  399|  13.8k|   { return iterator(node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE3endEv:
  423|   101k|   { return iterator(this->get_root_node(), this->priv_value_traits_ptr()); }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvED2Ev:
  252|  13.8k|   {
  253|       |      BOOST_IF_CONSTEXPR(is_safe_autounlink<ValueTraits::link_mode>::value){
  254|       |         this->clear();
  255|       |         node_algorithms::init(this->get_root_node());
  256|       |      }
  257|  13.8k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE6insertENS0_13list_iteratorISG_Lb1EEERSA_:
  830|  27.5k|   {
  831|  27.5k|      node_ptr to_insert = this->priv_value_traits().to_node_ptr(value);
  832|  27.5k|      BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(to_insert));
  ------------------
  |  |   33|  27.5k|   #define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  27.5k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
  833|  27.5k|      node_algorithms::link_before(p.pointed_node(), to_insert);
  834|  27.5k|      this->priv_size_traits().increment();
  835|  27.5k|      return iterator(to_insert, this->priv_value_traits_ptr());
  836|  27.5k|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvEC2EOSH_:
  227|    450|      : data_(::boost::move(x.priv_value_traits()))
  228|    450|   {
  229|    450|      this->priv_size_traits().set_size(size_type(0));
  230|    450|      node_algorithms::init_header(this->get_root_node());
  231|       |      //nothrow, no need to rollback to release elements on exception
  232|    450|      this->swap(x);
  233|    450|   }
_ZN5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE4swapERSH_:
  553|    450|   {
  554|    450|      node_algorithms::swap_nodes(this->get_root_node(), other.get_root_node());
  555|    450|      this->priv_size_traits().swap(other.priv_size_traits());
  556|    450|   }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE3endEv:
  431|  19.5k|   { return this->cend(); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE4cendEv:
  439|  58.7k|   { return const_iterator(detail::uncast(this->get_root_node()), this->priv_value_traits_ptr()); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE13get_root_nodeEv:
  133|  63.9k|   { return data_.root_plus_size_.m_header.get_node(); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE11iterator_toERKSA_:
 1325|  24.7k|   {
 1326|  24.7k|      reference r = *detail::uncast(pointer_traits<const_pointer>::pointer_to(value));
 1327|  24.7k|      BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::inited(this->priv_value_traits().to_node_ptr(r)));
  ------------------
  |  |   26|  24.7k|   #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
  |  |  ------------------
  |  |  |  |   66|  24.7k|# define BOOST_ASSERT(expr) assert(expr)
  |  |  ------------------
  ------------------
 1328|  24.7k|      return const_iterator(this->priv_value_traits().to_node_ptr(r), this->priv_value_traits_ptr());
 1329|  24.7k|   }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE5beginEv:
  407|  5.14k|   { return this->cbegin(); }
_ZNK5boost9intrusive9list_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEmLb0EvE6cbeginEv:
  415|  5.14k|   { return const_iterator(node_traits::get_next(this->get_root_node()), this->priv_value_traits_ptr()); }

_ZN5boost9intrusive14pointer_traitsIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEE16static_cast_fromINS0_11node_holderINS0_11rbtree_nodeIPvEENS0_7dft_tagELj3EEEEESA_PT_:
  306|   824k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS0_11node_holderINS0_11rbtree_nodeIPvEENS0_7dft_tagELj3EEEE16static_cast_fromIS5_EES8_PT_:
  306|   824k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS0_11rbtree_nodeIPvEEE15const_cast_fromIKS4_EES5_PT_:
  312|   275k|   {  return const_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS0_11rbtree_nodeIPvEEE10pointer_toERS4_:
  300|   364k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEE10pointer_toERSH_:
  300|   436k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPNS0_9list_nodeIPvEEE10pointer_toERS4_:
  300|   381k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEE16static_cast_fromINS0_11node_holderINS0_9list_nodeIPvEENS0_7dft_tagELj1EEEEESA_PT_:
  306|   578k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPNS0_11node_holderINS0_9list_nodeIPvEENS0_7dft_tagELj1EEEE16static_cast_fromIS5_EES8_PT_:
  306|   578k|   {  return static_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPKNS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_16list_node_traitsIPvEELNS0_14link_mode_typeE0ENS0_7dft_tagELj1EEEE10pointer_toERSH_:
  300|   258k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPKNS0_11rbtree_nodeIPvEEE10pointer_toERS5_:
  300|   126k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPNS0_9list_nodeIPvEEE15const_cast_fromIKS4_EES5_PT_:
  312|  58.7k|   {  return const_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPKNS0_9list_nodeIPvEEE10pointer_toERS5_:
  300|  63.9k|   { return boost::intrusive::detail::addressof(r); }
_ZN5boost9intrusive14pointer_traitsIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEE15const_cast_fromIKS9_EESA_PT_:
  312|  24.7k|   {  return const_cast<pointer>(uptr);  }
_ZN5boost9intrusive14pointer_traitsIPKNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEE10pointer_toERSA_:
  300|  24.7k|   { return boost::intrusive::detail::addressof(r); }

_ZN5boost9intrusive17rbtree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE13insert_beforeEPNS0_11rbtree_nodeIS3_EES8_S8_:
  395|  87.5k|   {
  396|  87.5k|      bstree_algo::insert_before(header, pos, new_node);
  397|  87.5k|      rebalance_after_insertion(header, new_node);
  398|  87.5k|      return new_node;
  399|  87.5k|   }
_ZN5boost9intrusive17rbtree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE25rebalance_after_insertionEPNS0_11rbtree_nodeIS3_EES8_:
  549|  87.5k|   {
  550|  87.5k|      NodeTraits::set_color(p, NodeTraits::red());
  551|   125k|      while(1){
  ------------------
  |  Branch (551:13): [Folded - Ignored]
  ------------------
  552|   125k|         node_ptr p_parent(NodeTraits::get_parent(p));
  553|   125k|         const node_ptr p_grandparent(NodeTraits::get_parent(p_parent));
  554|   125k|         if(p_parent == header || NodeTraits::get_color(p_parent) == NodeTraits::black() || p_grandparent == header){
  ------------------
  |  Branch (554:13): [True: 23.2k, False: 102k]
  |  Branch (554:35): [True: 24.6k, False: 77.5k]
  |  Branch (554:93): [True: 0, False: 77.5k]
  ------------------
  555|  47.8k|            break;
  556|  47.8k|         }
  557|       |
  558|  77.5k|         NodeTraits::set_color(p_grandparent, NodeTraits::red());
  559|  77.5k|         node_ptr const p_grandparent_left (NodeTraits::get_left (p_grandparent));
  560|  77.5k|         bool const p_parent_is_left_child = p_parent == p_grandparent_left;
  561|  77.5k|         node_ptr const x(p_parent_is_left_child ? NodeTraits::get_right(p_grandparent) : p_grandparent_left);
  ------------------
  |  Branch (561:27): [True: 16.4k, False: 61.0k]
  ------------------
  562|       |
  563|  77.5k|         if(x && NodeTraits::get_color(x) == NodeTraits::red()){
  ------------------
  |  Branch (563:13): [True: 48.1k, False: 29.3k]
  |  Branch (563:18): [True: 37.8k, False: 10.3k]
  ------------------
  564|  37.8k|            NodeTraits::set_color(x, NodeTraits::black());
  565|  37.8k|            NodeTraits::set_color(p_parent, NodeTraits::black());
  566|  37.8k|            p = p_grandparent;
  567|  37.8k|         }
  568|  39.7k|         else{ //Final step
  569|  39.7k|            const bool p_is_left_child(NodeTraits::get_left(p_parent) == p);
  570|  39.7k|            if(p_parent_is_left_child){ //p_parent is left child
  ------------------
  |  Branch (570:16): [True: 11.0k, False: 28.6k]
  ------------------
  571|  11.0k|               if(!p_is_left_child){ //p is right child
  ------------------
  |  Branch (571:19): [True: 9.57k, False: 1.52k]
  ------------------
  572|  9.57k|                  bstree_algo::rotate_left_no_parent_fix(p_parent, p);
  573|       |                  //No need to link p and p_grandparent:
  574|       |                  //    [NodeTraits::set_parent(p, p_grandparent) + NodeTraits::set_left(p_grandparent, p)]
  575|       |                  //as p_grandparent is not the header, another rotation is coming and p_parent
  576|       |                  //will be the left child of p_grandparent
  577|  9.57k|                  p_parent = p;
  578|  9.57k|               }
  579|  11.0k|               bstree_algo::rotate_right(p_grandparent, p_parent, NodeTraits::get_parent(p_grandparent), header);
  580|  11.0k|            }
  581|  28.6k|            else{  //p_parent is right child
  582|  28.6k|               if(p_is_left_child){ //p is left child
  ------------------
  |  Branch (582:19): [True: 1.88k, False: 26.7k]
  ------------------
  583|  1.88k|                  bstree_algo::rotate_right_no_parent_fix(p_parent, p);
  584|       |                  //No need to link p and p_grandparent:
  585|       |                  //    [NodeTraits::set_parent(p, p_grandparent) + NodeTraits::set_right(p_grandparent, p)]
  586|       |                  //as p_grandparent is not the header, another rotation is coming and p_parent
  587|       |                  //will be the right child of p_grandparent
  588|  1.88k|                  p_parent = p;
  589|  1.88k|               }
  590|  28.6k|               bstree_algo::rotate_left(p_grandparent, p_parent, NodeTraits::get_parent(p_grandparent), header);
  591|  28.6k|            }
  592|  39.7k|            NodeTraits::set_color(p_parent, NodeTraits::black());
  593|  39.7k|            break;
  594|  39.7k|         }
  595|  77.5k|      }
  596|  87.5k|      NodeTraits::set_color(NodeTraits::get_parent(header), NodeTraits::black());
  597|  87.5k|   }
_ZN5boost9intrusive17rbtree_algorithmsINS0_18rbtree_node_traitsIPvLb0EEEE11init_headerEPNS0_11rbtree_nodeIS3_EE:
  277|  13.8k|   {
  278|  13.8k|      bstree_algo::init_header(header);
  279|  13.8k|      NodeTraits::set_color(header, NodeTraits::red());
  280|  13.8k|   }

_ZN5boost9intrusive13multiset_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0EvEC2Ev:
  633|  13.3k|      :  tree_type()
  634|  13.3k|   {}
_ZN5boost9intrusive13multiset_implINS0_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS0_18rbtree_node_traitsIPvLb0EEELNS0_14link_mode_typeE0ENS0_7dft_tagELj3EEEvNS9_11key_compareEmLb0EvEC2EOSI_:
  651|    450|      :  tree_type(BOOST_MOVE_BASE(tree_type, x))
  ------------------
  |  |  490|    450|      ::boost::move((BASE_TYPE&)(ARG))
  ------------------
  652|    450|   {}

_ZN5boost13adl_move_swapINS_9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS9_11key_compareENS_11move_detail8identityISA_EEbLb1EEEEEvRT_SI_:
  228|    450|{
  229|    450|   ::boost_move_adl_swap::swap_proxy(x, y);
  230|    450|}
_ZN19boost_move_adl_swap10swap_proxyIN5boost9intrusive18tree_value_compareIPNS1_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENSA_11key_compareENS1_11move_detail8identityISB_EEbLb1EEEEEvRT_SJ_:
  191|    450|{
  192|    450|   using std::swap;
  193|    450|   swap(x, y);
  194|    450|}

_ZN5boost11move_detail9addressofINS_9intrusive11rbtree_nodeIPvEEEEPT_RS6_:
   40|   364k|{
   41|   364k|   return __builtin_addressof(v);
   42|   364k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS2_18rbtree_node_traitsIPvLb0EEELNS2_14link_mode_typeE0ENS2_7dft_tagELj3EEEEEPT_RSJ_:
   40|   436k|{
   41|   436k|   return __builtin_addressof(v);
   42|   436k|}
_ZN5boost11move_detail9addressofINS_9intrusive9list_nodeIPvEEEEPT_RS6_:
   40|   381k|{
   41|   381k|   return __builtin_addressof(v);
   42|   381k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS2_16list_node_traitsIPvEELNS2_14link_mode_typeE0ENS2_7dft_tagELj1EEEEEPT_RSJ_:
   40|   258k|{
   41|   258k|   return __builtin_addressof(v);
   42|   258k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive11rbtree_nodeIPvEEEEPT_RS7_:
   40|   126k|{
   41|   126k|   return __builtin_addressof(v);
   42|   126k|}
_ZN5boost11move_detail9addressofIKNS_9intrusive9list_nodeIPvEEEEPT_RS7_:
   40|  63.9k|{
   41|  63.9k|   return __builtin_addressof(v);
   42|  63.9k|}
_ZN5boost11move_detail9addressofIKNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementEEEPT_RSB_:
   40|  24.7k|{
   41|  24.7k|   return __builtin_addressof(v);
   42|  24.7k|}

_ZN5boost4moveIRNS_9intrusive18tree_value_compareIPNS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS9_11key_compareENS_11move_detail8identityISA_EEbLb1EEEEEONSD_16remove_referenceIT_E4typeEOSJ_:
  213|  14.2k|         { return static_cast<typename ::boost::move_detail::remove_reference<T>::type &&>(t); }
_ZN5boost4moveIRNS_9intrusive11bstree_implINS1_8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS1_18rbtree_node_traitsIPvLb0EEELNS1_14link_mode_typeE0ENS1_7dft_tagELj3EEEvNSA_11key_compareEmLb0ELNS1_10algo_typesE5EvEEEEONS_11move_detail16remove_referenceIT_E4typeEOSO_:
  213|    450|         { return static_cast<typename ::boost::move_detail::remove_reference<T>::type &&>(t); }
_ZN5boost4moveIRNS_9intrusive8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS1_18rbtree_node_traitsIPvLb0EEELNS1_14link_mode_typeE0ENS1_7dft_tagELj3EEEEEONS_11move_detail16remove_referenceIT_E4typeEOSK_:
  213|    450|         { return static_cast<typename ::boost::move_detail::remove_reference<T>::type &&>(t); }
_ZN5boost4moveIRNS_9intrusive8bhtraitsINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE7elementENS1_16list_node_traitsIPvEELNS1_14link_mode_typeE0ENS1_7dft_tagELj1EEEEEONS_11move_detail16remove_referenceIT_E4typeEOSK_:
  213|    450|         { return static_cast<typename ::boost::move_detail::remove_reference<T>::type &&>(t); }

_ZN5boost4mp1113mp_with_indexILm9ENS_5beast6detail7variantIJNS2_14buffers_suffixINS3_11buffers_refINS2_16buffers_cat_viewIJNS_4asio12const_bufferES9_S9_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSA_10chunk_crlfEEEEEEEENS5_INS7_IJSK_S9_EEEEENS5_IS9_EENS5_INS7_IJSK_NSA_6detail10chunk_sizeES9_SI_S9_SI_EEEEENS5_INS7_IJSQ_S9_SI_S9_SI_EEEEENS5_INS7_IJSQ_S9_SI_S9_SI_S9_S9_SI_EEEEENS5_INS7_IJSK_SQ_S9_SI_S9_SI_S9_S9_SI_EEEEENS5_INS7_IJS9_S9_SI_EEEEEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSC_7declvalB8ne180100INSC_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOS13_:
  369|  15.4k|{
  370|  15.4k|    assert( i < N );
  371|  15.4k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  15.4k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm9EE4callILm0ENS_5beast6detail7variantIJNS5_14buffers_suffixINS6_11buffers_refINS5_16buffers_cat_viewIJNS_4asio12const_bufferESC_SC_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSD_10chunk_crlfEEEEEEEENS8_INSA_IJSN_SC_EEEEENS8_ISC_EENS8_INSA_IJSN_NSD_6detail10chunk_sizeESC_SL_SC_SL_EEEEENS8_INSA_IJST_SC_SL_SC_SL_EEEEENS8_INSA_IJST_SC_SL_SC_SL_SC_SC_SL_EEEEENS8_INSA_IJSN_ST_SC_SL_SC_SL_SC_SC_SL_EEEEENS8_INSA_IJSC_SC_SL_EEEEEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSF_7declvalB8ne180100INSF_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOS16_:
  181|  15.4k|    {
  182|  15.4k|        switch( i )
  183|  15.4k|        {
  184|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 15.4k]
  |  |  ------------------
  ------------------
  185|  10.2k|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (185:9): [True: 10.2k, False: 5.14k]
  ------------------
  186|     11|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (186:9): [True: 11, False: 15.4k]
  ------------------
  187|  5.13k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (187:9): [True: 5.13k, False: 10.2k]
  ------------------
  188|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (188:9): [True: 0, False: 15.4k]
  ------------------
  189|      0|        case 4: return std::forward<F>(f)( mp_size_t<K+4>() );
  ------------------
  |  Branch (189:9): [True: 0, False: 15.4k]
  ------------------
  190|      0|        case 5: return std::forward<F>(f)( mp_size_t<K+5>() );
  ------------------
  |  Branch (190:9): [True: 0, False: 15.4k]
  ------------------
  191|      0|        case 6: return std::forward<F>(f)( mp_size_t<K+6>() );
  ------------------
  |  Branch (191:9): [True: 0, False: 15.4k]
  ------------------
  192|      0|        case 7: return std::forward<F>(f)( mp_size_t<K+7>() );
  ------------------
  |  Branch (192:9): [True: 0, False: 15.4k]
  ------------------
  193|      0|        case 8: return std::forward<F>(f)( mp_size_t<K+8>() );
  ------------------
  |  Branch (193:9): [True: 0, False: 15.4k]
  ------------------
  194|  15.4k|        }
  195|  15.4k|    }
_ZN5boost4mp1113mp_with_indexILm7ENS_5beast6detail7variantIJPKNS_4asio12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES8_NS3_30buffers_cat_view_iterator_base8past_endEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSB_7declvalB8ne180100INSB_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSL_:
  369|   940k|{
  370|   940k|    assert( i < N );
  371|   940k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   940k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm7EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio12const_bufferESB_SB_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorESB_NS6_30buffers_cat_view_iterator_base8past_endEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSE_7declvalB8ne180100INSE_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSO_:
  144|   940k|    {
  145|   940k|        switch( i )
  146|   940k|        {
  147|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 940k]
  |  |  ------------------
  ------------------
  148|   266k|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (148:9): [True: 266k, False: 674k]
  ------------------
  149|   108k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (149:9): [True: 108k, False: 832k]
  ------------------
  150|  51.4k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (150:9): [True: 51.4k, False: 889k]
  ------------------
  151|  51.4k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (151:9): [True: 51.4k, False: 889k]
  ------------------
  152|   119k|        case 4: return std::forward<F>(f)( mp_size_t<K+4>() );
  ------------------
  |  Branch (152:9): [True: 119k, False: 821k]
  ------------------
  153|  51.4k|        case 5: return std::forward<F>(f)( mp_size_t<K+5>() );
  ------------------
  |  Branch (153:9): [True: 51.4k, False: 889k]
  ------------------
  154|   292k|        case 6: return std::forward<F>(f)( mp_size_t<K+6>() );
  ------------------
  |  Branch (154:9): [True: 292k, False: 648k]
  ------------------
  155|   940k|        }
  156|   940k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJNS2_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEE14const_iteratorEPKS7_NS3_30buffers_cat_view_iterator_base8past_endEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSA_7declvalB8ne180100INSA_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSP_:
  369|   414k|{
  370|   414k|    assert( i < N );
  371|   414k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   414k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJNS5_16buffers_cat_viewIJNS_4asio12const_bufferESA_SA_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSB_10chunk_crlfEEE14const_iteratorEPKSA_NS6_30buffers_cat_view_iterator_base8past_endEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSD_7declvalB8ne180100INSD_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSS_:
   96|   414k|    {
   97|   414k|        switch( i )
   98|   414k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 414k]
  |  |  ------------------
  ------------------
  100|  30.8k|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 30.8k, False: 383k]
  ------------------
  101|   252k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 252k, False: 161k]
  ------------------
  102|  32.7k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 32.7k, False: 381k]
  ------------------
  103|  97.5k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 97.5k, False: 316k]
  ------------------
  104|   414k|        }
  105|   414k|    }
_ZN5boost4mp1113mp_with_indexILm7ENS_5beast6detail7variantIJPKNS_4asio12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES8_NS3_30buffers_cat_view_iterator_base8past_endEEE4copyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSB_7declvalB8ne180100INSB_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSL_:
  369|   253k|{
  370|   253k|    assert( i < N );
  371|   253k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   253k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm7EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio12const_bufferESB_SB_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorESB_NS6_30buffers_cat_view_iterator_base8past_endEEE4copyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSE_7declvalB8ne180100INSE_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSO_:
  144|   253k|    {
  145|   253k|        switch( i )
  146|   253k|        {
  147|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 253k]
  |  |  ------------------
  ------------------
  148|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (148:9): [True: 0, False: 253k]
  ------------------
  149|   102k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (149:9): [True: 102k, False: 150k]
  ------------------
  150|  20.5k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (150:9): [True: 20.5k, False: 232k]
  ------------------
  151|  20.5k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (151:9): [True: 20.5k, False: 232k]
  ------------------
  152|  88.7k|        case 4: return std::forward<F>(f)( mp_size_t<K+4>() );
  ------------------
  |  Branch (152:9): [True: 88.7k, False: 164k]
  ------------------
  153|  20.5k|        case 5: return std::forward<F>(f)( mp_size_t<K+5>() );
  ------------------
  |  Branch (153:9): [True: 20.5k, False: 232k]
  ------------------
  154|     99|        case 6: return std::forward<F>(f)( mp_size_t<K+6>() );
  ------------------
  |  Branch (154:9): [True: 99, False: 253k]
  ------------------
  155|   253k|        }
  156|   253k|    }
_ZN5boost4mp1113mp_with_indexILm7ENS_5beast6detail7variantIJPKNS_4asio12const_bufferES8_S8_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorES8_NS3_30buffers_cat_view_iterator_base8past_endEEE6equalsEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSB_7declvalB8ne180100INSB_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSL_:
  369|  72.0k|{
  370|  72.0k|    assert( i < N );
  371|  72.0k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  72.0k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm7EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio12const_bufferESB_SB_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer14field_iteratorESB_NS6_30buffers_cat_view_iterator_base8past_endEEE6equalsEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSE_7declvalB8ne180100INSE_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSO_:
  144|  72.0k|    {
  145|  72.0k|        switch( i )
  146|  72.0k|        {
  147|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 72.0k]
  |  |  ------------------
  ------------------
  148|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (148:9): [True: 0, False: 72.0k]
  ------------------
  149|  41.1k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (149:9): [True: 41.1k, False: 30.8k]
  ------------------
  150|      0|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (150:9): [True: 0, False: 72.0k]
  ------------------
  151|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (151:9): [True: 0, False: 72.0k]
  ------------------
  152|      0|        case 4: return std::forward<F>(f)( mp_size_t<K+4>() );
  ------------------
  |  Branch (152:9): [True: 0, False: 72.0k]
  ------------------
  153|      0|        case 5: return std::forward<F>(f)( mp_size_t<K+5>() );
  ------------------
  |  Branch (153:9): [True: 0, False: 72.0k]
  ------------------
  154|  30.8k|        case 6: return std::forward<F>(f)( mp_size_t<K+6>() );
  ------------------
  |  Branch (154:9): [True: 30.8k, False: 41.1k]
  ------------------
  155|  72.0k|        }
  156|  72.0k|    }
_ZN5boost4mp1113mp_with_indexILm7ENS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iterator11dereferenceEEEDTclclsr3stdE7declvalIT0_EEclL_ZNS8_7declvalB8ne180100INS8_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSI_:
  369|   615k|{
  370|   615k|    assert( i < N );
  371|   615k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   615k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm7EE4callILm0ENS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEE14const_iterator11dereferenceEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSB_7declvalB8ne180100INSB_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSL_:
  144|   615k|    {
  145|   615k|        switch( i )
  146|   615k|        {
  147|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 615k]
  |  |  ------------------
  ------------------
  148|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (148:9): [True: 0, False: 615k]
  ------------------
  149|  51.4k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (149:9): [True: 51.4k, False: 563k]
  ------------------
  150|  77.1k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (150:9): [True: 77.1k, False: 538k]
  ------------------
  151|  77.1k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (151:9): [True: 77.1k, False: 538k]
  ------------------
  152|   332k|        case 4: return std::forward<F>(f)( mp_size_t<K+4>() );
  ------------------
  |  Branch (152:9): [True: 332k, False: 282k]
  ------------------
  153|  77.1k|        case 5: return std::forward<F>(f)( mp_size_t<K+5>() );
  ------------------
  |  Branch (153:9): [True: 77.1k, False: 538k]
  ------------------
  154|      0|        case 6: return std::forward<F>(f)( mp_size_t<K+6>() );
  ------------------
  |  Branch (154:9): [True: 0, False: 615k]
  ------------------
  155|   615k|        }
  156|   615k|    }
_ZN5boost4mp1113mp_with_indexILm7ENS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEE14const_iterator9incrementEEEDTclclsr3stdE7declvalIT0_EEclL_ZNS8_7declvalB8ne180100INS8_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSI_:
  369|   256k|{
  370|   256k|    assert( i < N );
  371|   256k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   256k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm7EE4callILm0ENS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES8_S8_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS9_10chunk_crlfEEE14const_iterator9incrementEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSB_7declvalB8ne180100INSB_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSL_:
  144|   256k|    {
  145|   256k|        switch( i )
  146|   256k|        {
  147|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 256k]
  |  |  ------------------
  ------------------
  148|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (148:9): [True: 0, False: 256k]
  ------------------
  149|  30.8k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (149:9): [True: 30.8k, False: 225k]
  ------------------
  150|  30.8k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (150:9): [True: 30.8k, False: 225k]
  ------------------
  151|  30.8k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (151:9): [True: 30.8k, False: 225k]
  ------------------
  152|   133k|        case 4: return std::forward<F>(f)( mp_size_t<K+4>() );
  ------------------
  |  Branch (152:9): [True: 133k, False: 123k]
  ------------------
  153|  30.8k|        case 5: return std::forward<F>(f)( mp_size_t<K+5>() );
  ------------------
  |  Branch (153:9): [True: 30.8k, False: 225k]
  ------------------
  154|      0|        case 6: return std::forward<F>(f)( mp_size_t<K+6>() );
  ------------------
  |  Branch (154:9): [True: 0, False: 256k]
  ------------------
  155|   256k|        }
  156|   256k|    }
_ZN5boost4mp1113mp_with_indexILm9ENS_5beast6detail7variantIJNS2_19buffers_prefix_viewIRKNS2_14buffers_suffixINS3_11buffers_refINS2_16buffers_cat_viewIJNS_4asio12const_bufferESA_SA_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSB_10chunk_crlfEEEEEEEEEENS5_IRKNS6_INS8_IJSL_SA_EEEEEEENS5_IRKNS6_ISA_EEEENS5_IRKNS6_INS8_IJSL_NSB_6detail10chunk_sizeESA_SJ_SA_SJ_EEEEEEENS5_IRKNS6_INS8_IJS10_SA_SJ_SA_SJ_EEEEEEENS5_IRKNS6_INS8_IJS10_SA_SJ_SA_SJ_SA_SA_SJ_EEEEEEENS5_IRKNS6_INS8_IJSL_S10_SA_SJ_SA_SJ_SA_SA_SJ_EEEEEEENS5_IRKNS6_INS8_IJSA_SA_SJ_EEEEEEEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSD_7declvalB8ne180100INSD_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOS1S_:
  369|  10.2k|{
  370|  10.2k|    assert( i < N );
  371|  10.2k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  10.2k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm9EE4callILm0ENS_5beast6detail7variantIJNS5_19buffers_prefix_viewIRKNS5_14buffers_suffixINS6_11buffers_refINS5_16buffers_cat_viewIJNS_4asio12const_bufferESD_SD_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSE_10chunk_crlfEEEEEEEEEENS8_IRKNS9_INSB_IJSO_SD_EEEEEEENS8_IRKNS9_ISD_EEEENS8_IRKNS9_INSB_IJSO_NSE_6detail10chunk_sizeESD_SM_SD_SM_EEEEEEENS8_IRKNS9_INSB_IJS13_SD_SM_SD_SM_EEEEEEENS8_IRKNS9_INSB_IJS13_SD_SM_SD_SM_SD_SD_SM_EEEEEEENS8_IRKNS9_INSB_IJSO_S13_SD_SM_SD_SM_SD_SD_SM_EEEEEEENS8_IRKNS9_INSB_IJSD_SD_SM_EEEEEEEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSG_7declvalB8ne180100INSG_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOS1V_:
  181|  10.2k|    {
  182|  10.2k|        switch( i )
  183|  10.2k|        {
  184|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 10.2k]
  |  |  ------------------
  ------------------
  185|  5.14k|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (185:9): [True: 5.14k, False: 5.14k]
  ------------------
  186|     11|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (186:9): [True: 11, False: 10.2k]
  ------------------
  187|  5.13k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (187:9): [True: 5.13k, False: 5.15k]
  ------------------
  188|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (188:9): [True: 0, False: 10.2k]
  ------------------
  189|      0|        case 4: return std::forward<F>(f)( mp_size_t<K+4>() );
  ------------------
  |  Branch (189:9): [True: 0, False: 10.2k]
  ------------------
  190|      0|        case 5: return std::forward<F>(f)( mp_size_t<K+5>() );
  ------------------
  |  Branch (190:9): [True: 0, False: 10.2k]
  ------------------
  191|      0|        case 6: return std::forward<F>(f)( mp_size_t<K+6>() );
  ------------------
  |  Branch (191:9): [True: 0, False: 10.2k]
  ------------------
  192|      0|        case 7: return std::forward<F>(f)( mp_size_t<K+7>() );
  ------------------
  |  Branch (192:9): [True: 0, False: 10.2k]
  ------------------
  193|      0|        case 8: return std::forward<F>(f)( mp_size_t<K+8>() );
  ------------------
  |  Branch (193:9): [True: 0, False: 10.2k]
  ------------------
  194|  10.2k|        }
  195|  10.2k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJNS2_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEE14const_iteratorEPKS7_NS3_30buffers_cat_view_iterator_base8past_endEEE4copyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSA_7declvalB8ne180100INSA_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSP_:
  369|   295k|{
  370|   295k|    assert( i < N );
  371|   295k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   295k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJNS5_16buffers_cat_viewIJNS_4asio12const_bufferESA_SA_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSB_10chunk_crlfEEE14const_iteratorEPKSA_NS6_30buffers_cat_view_iterator_base8past_endEEE4copyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSD_7declvalB8ne180100INSD_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSS_:
   96|   295k|    {
   97|   295k|        switch( i )
   98|   295k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 295k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 295k]
  ------------------
  101|   247k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 247k, False: 48.1k]
  ------------------
  102|  1.96k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 1.96k, False: 294k]
  ------------------
  103|  46.2k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 46.2k, False: 249k]
  ------------------
  104|   295k|        }
  105|   295k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJNS2_16buffers_cat_viewIJNS_4asio12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEE14const_iteratorEPKS7_NS3_30buffers_cat_view_iterator_base8past_endEEE6equalsEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSA_7declvalB8ne180100INSA_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSP_:
  369|   367k|{
  370|   367k|    assert( i < N );
  371|   367k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   367k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJNS5_16buffers_cat_viewIJNS_4asio12const_bufferESA_SA_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSB_10chunk_crlfEEE14const_iteratorEPKSA_NS6_30buffers_cat_view_iterator_base8past_endEEE6equalsEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSD_7declvalB8ne180100INSD_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSS_:
   96|   367k|    {
   97|   367k|        switch( i )
   98|   367k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 367k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 367k]
  ------------------
  101|   341k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 341k, False: 25.6k]
  ------------------
  102|      0|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 0, False: 367k]
  ------------------
  103|  25.6k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 25.6k, False: 341k]
  ------------------
  104|   367k|        }
  105|   367k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast16buffers_cat_viewIJNS2_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EE14const_iterator9incrementEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSA_7declvalB8ne180100INSA_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSM_:
  369|   259k|{
  370|   259k|    assert( i < N );
  371|   259k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   259k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast16buffers_cat_viewIJNS5_6detail11buffers_refINS6_IJNS_4asio12const_bufferESA_SA_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSB_10chunk_crlfEEEEEESA_EE14const_iterator9incrementEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSD_7declvalB8ne180100INSD_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSP_:
   96|   259k|    {
   97|   259k|        switch( i )
   98|   259k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 259k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 259k]
  ------------------
  101|   256k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 256k, False: 2.94k]
  ------------------
  102|  2.94k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 2.94k, False: 256k]
  ------------------
  103|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 0, False: 259k]
  ------------------
  104|   259k|        }
  105|   259k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast16buffers_cat_viewIJNS2_6detail11buffers_refINS3_IJNS_4asio12const_bufferES7_S7_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS8_10chunk_crlfEEEEEES7_EE14const_iterator11dereferenceEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSA_7declvalB8ne180100INSA_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSM_:
  369|   388k|{
  370|   388k|    assert( i < N );
  371|   388k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   388k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast16buffers_cat_viewIJNS5_6detail11buffers_refINS6_IJNS_4asio12const_bufferESA_SA_NS5_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENSB_10chunk_crlfEEEEEESA_EE14const_iterator11dereferenceEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSD_7declvalB8ne180100INSD_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSP_:
   96|   388k|    {
   97|   388k|        switch( i )
   98|   388k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 388k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 388k]
  ------------------
  101|   384k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 384k, False: 4.41k]
  ------------------
  102|  4.41k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 4.41k, False: 384k]
  ------------------
  103|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 0, False: 388k]
  ------------------
  104|   388k|        }
  105|   388k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferES8_NS3_30buffers_cat_view_iterator_base8past_endEEE4copyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSE_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSD_:
  369|  13.3k|{
  370|  13.3k|    assert( i < N );
  371|  13.3k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  13.3k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferESB_NS6_30buffers_cat_view_iterator_base8past_endEEE4copyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSH_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSG_:
   96|  13.3k|    {
   97|  13.3k|        switch( i )
   98|  13.3k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 13.3k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 13.3k]
  ------------------
  101|  13.3k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 13.3k, False: 0]
  ------------------
  102|      0|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 0, False: 13.3k]
  ------------------
  103|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 0, False: 13.3k]
  ------------------
  104|  13.3k|        }
  105|  13.3k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferES8_NS3_30buffers_cat_view_iterator_base8past_endEEE6equalsEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSE_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSD_:
  369|  39.9k|{
  370|  39.9k|    assert( i < N );
  371|  39.9k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  39.9k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferESB_NS6_30buffers_cat_view_iterator_base8past_endEEE6equalsEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSH_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSG_:
   96|  39.9k|    {
   97|  39.9k|        switch( i )
   98|  39.9k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 39.9k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 39.9k]
  ------------------
  101|      0|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 0, False: 39.9k]
  ------------------
  102|      0|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 0, False: 39.9k]
  ------------------
  103|  39.9k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 39.9k, False: 0]
  ------------------
  104|  39.9k|        }
  105|  39.9k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES5_EE14const_iterator11dereferenceEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSA_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOS9_:
  369|  79.9k|{
  370|  79.9k|    assert( i < N );
  371|  79.9k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  79.9k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES8_EE14const_iterator11dereferenceEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSD_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSC_:
   96|  79.9k|    {
   97|  79.9k|        switch( i )
   98|  79.9k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 79.9k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 79.9k]
  ------------------
  101|  39.9k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 39.9k, False: 39.9k]
  ------------------
  102|  39.9k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 39.9k, False: 39.9k]
  ------------------
  103|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 0, False: 79.9k]
  ------------------
  104|  79.9k|        }
  105|  79.9k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES5_EE14const_iterator9incrementEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSA_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOS9_:
  369|  79.9k|{
  370|  79.9k|    assert( i < N );
  371|  79.9k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  79.9k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast16buffers_cat_viewIJNS_4asio14mutable_bufferES8_EE14const_iterator9incrementEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSD_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSC_:
   96|  79.9k|    {
   97|  79.9k|        switch( i )
   98|  79.9k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 79.9k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 79.9k]
  ------------------
  101|  39.9k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 39.9k, False: 39.9k]
  ------------------
  102|  39.9k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 39.9k, False: 39.9k]
  ------------------
  103|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 0, False: 79.9k]
  ------------------
  104|  79.9k|        }
  105|  79.9k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferES8_NS3_30buffers_cat_view_iterator_base8past_endEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSE_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSD_:
  369|   279k|{
  370|   279k|    assert( i < N );
  371|   279k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|   279k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferESB_NS6_30buffers_cat_view_iterator_base8past_endEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSH_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSG_:
   96|   279k|    {
   97|   279k|        switch( i )
   98|   279k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 279k]
  |  |  ------------------
  ------------------
  100|  93.3k|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 93.3k, False: 186k]
  ------------------
  101|  66.6k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 66.6k, False: 213k]
  ------------------
  102|  39.9k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 39.9k, False: 239k]
  ------------------
  103|  79.9k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 79.9k, False: 199k]
  ------------------
  104|   279k|        }
  105|   279k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS6_EEE14const_iteratorENS3_30buffers_cat_view_iterator_base8past_endEEE4copyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSJ_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSI_:
  369|  1.96k|{
  370|  1.96k|    assert( i < N );
  371|  1.96k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  1.96k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferENS5_19buffers_prefix_viewINS5_14buffers_suffixIS9_EEE14const_iteratorENS6_30buffers_cat_view_iterator_base8past_endEEE4copyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSM_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSL_:
   96|  1.96k|    {
   97|  1.96k|        switch( i )
   98|  1.96k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 1.96k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 1.96k]
  ------------------
  101|  1.96k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 1.96k, False: 0]
  ------------------
  102|      0|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 0, False: 1.96k]
  ------------------
  103|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 0, False: 1.96k]
  ------------------
  104|  1.96k|        }
  105|  1.96k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS6_EEE14const_iteratorENS3_30buffers_cat_view_iterator_base8past_endEEE6equalsEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSJ_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSI_:
  369|  5.88k|{
  370|  5.88k|    assert( i < N );
  371|  5.88k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  5.88k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferENS5_19buffers_prefix_viewINS5_14buffers_suffixIS9_EEE14const_iteratorENS6_30buffers_cat_view_iterator_base8past_endEEE6equalsEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSM_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSL_:
   96|  5.88k|    {
   97|  5.88k|        switch( i )
   98|  5.88k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 5.88k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 5.88k]
  ------------------
  101|      0|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 0, False: 5.88k]
  ------------------
  102|      0|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 0, False: 5.88k]
  ------------------
  103|  5.88k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 5.88k, False: 0]
  ------------------
  104|  5.88k|        }
  105|  5.88k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS5_EEEEEE14const_iterator11dereferenceEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSE_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSD_:
  369|  11.7k|{
  370|  11.7k|    assert( i < N );
  371|  11.7k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  11.7k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS5_19buffers_prefix_viewINS5_14buffers_suffixIS8_EEEEEE14const_iterator11dereferenceEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSH_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSG_:
   96|  11.7k|    {
   97|  11.7k|        switch( i )
   98|  11.7k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 11.7k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 11.7k]
  ------------------
  101|  5.88k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 5.88k, False: 5.87k]
  ------------------
  102|  5.87k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 5.87k, False: 5.88k]
  ------------------
  103|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 0, False: 11.7k]
  ------------------
  104|  11.7k|        }
  105|  11.7k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS5_EEEEEE14const_iterator9incrementEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSE_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSD_:
  369|  11.7k|{
  370|  11.7k|    assert( i < N );
  371|  11.7k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  11.7k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast16buffers_cat_viewIJNS_4asio14mutable_bufferENS5_19buffers_prefix_viewINS5_14buffers_suffixIS8_EEEEEE14const_iterator9incrementEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSH_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSG_:
   96|  11.7k|    {
   97|  11.7k|        switch( i )
   98|  11.7k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 11.7k]
  |  |  ------------------
  ------------------
  100|      0|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 0, False: 11.7k]
  ------------------
  101|  5.88k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 5.88k, False: 5.87k]
  ------------------
  102|  5.87k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 5.87k, False: 5.88k]
  ------------------
  103|      0|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 0, False: 11.7k]
  ------------------
  104|  11.7k|        }
  105|  11.7k|    }
_ZN5boost4mp1113mp_with_indexILm4ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferENS2_19buffers_prefix_viewINS2_14buffers_suffixIS6_EEE14const_iteratorENS3_30buffers_cat_view_iterator_base8past_endEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSJ_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSI_:
  369|  41.1k|{
  370|  41.1k|    assert( i < N );
  371|  41.1k|    return detail::mp_with_index_impl_<N>::template call<0>( i, std::forward<F>(f) );
  372|  41.1k|}
_ZN5boost4mp116detail19mp_with_index_impl_ILm4EE4callILm0ENS_5beast6detail7variantIJPKNS_4asio14mutable_bufferENS5_19buffers_prefix_viewINS5_14buffers_suffixIS9_EEE14const_iteratorENS6_30buffers_cat_view_iterator_base8past_endEEE7destroyEEEDTclclsr3stdE7declvalIT0_EEclL_ZNSt3__17declvalB8ne180100INSM_17integral_constantImLm0EEEEEDTclsr3stdE9__declvalIT_ELi0EEEvEEEEmOSL_:
   96|  41.1k|    {
   97|  41.1k|        switch( i )
   98|  41.1k|        {
   99|      0|        BOOST_MP11_UNREACHABLE_DEFAULT
  ------------------
  |  |   24|      0|# define BOOST_MP11_UNREACHABLE_DEFAULT default: __builtin_unreachable();
  |  |  ------------------
  |  |  |  Branch (24:41): [True: 0, False: 41.1k]
  |  |  ------------------
  ------------------
  100|  13.7k|        case 0: return std::forward<F>(f)( mp_size_t<K+0>() );
  ------------------
  |  Branch (100:9): [True: 13.7k, False: 27.4k]
  ------------------
  101|  9.80k|        case 1: return std::forward<F>(f)( mp_size_t<K+1>() );
  ------------------
  |  Branch (101:9): [True: 9.80k, False: 31.3k]
  ------------------
  102|  5.88k|        case 2: return std::forward<F>(f)( mp_size_t<K+2>() );
  ------------------
  |  Branch (102:9): [True: 5.88k, False: 35.2k]
  ------------------
  103|  11.7k|        case 3: return std::forward<F>(f)( mp_size_t<K+3>() );
  ------------------
  |  Branch (103:9): [True: 11.7k, False: 29.4k]
  ------------------
  104|  41.1k|        }
  105|  41.1k|    }

_ZN5boost15optional_detail15aligned_storageINS_5beast6detail12buffers_pairILb1EEEE3refEv:
   64|  19.4k|    T &      ref()       { return *boost::core::launder(ptr_ref()); }
_ZN5boost15optional_detail15aligned_storageINS_5beast6detail12buffers_pairILb1EEEE7ptr_refEv:
   54|  19.4k|    {
   55|  19.4k|        union { void* ap_pvoid; T* as_ptype; } caster = { address() };
   56|  19.4k|        return caster.as_ptype;
   57|  19.4k|    }
_ZN5boost15optional_detail15aligned_storageINS_5beast6detail12buffers_pairILb1EEEE7addressEv:
   40|  38.8k|    void      * address()       { return &dummy_; }
_ZNK5boost15optional_detail15aligned_storageINS_5beast6detail12buffers_pairILb1EEEE3refEv:
   63|  19.4k|    T const& ref() const { return *boost::core::launder(ptr_ref()); }
_ZNK5boost15optional_detail15aligned_storageINS_5beast6detail12buffers_pairILb1EEEE7ptr_refEv:
   49|  19.4k|    {
   50|  19.4k|        union { void const* ap_pvoid; T const* as_ptype; } caster = { address() };
   51|  19.4k|        return caster.as_ptype;
   52|  19.4k|    }
_ZNK5boost15optional_detail15aligned_storageINS_5beast6detail12buffers_pairILb1EEEE7addressEv:
   39|  19.4k|    void const* address() const { return &dummy_; }
_ZN5boost15optional_detail15aligned_storageINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE3refEv:
   64|  5.14k|    T &      ref()       { return *boost::core::launder(ptr_ref()); }
_ZN5boost15optional_detail15aligned_storageINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE7ptr_refEv:
   54|  10.2k|    {
   55|  10.2k|        union { void* ap_pvoid; T* as_ptype; } caster = { address() };
   56|  10.2k|        return caster.as_ptype;
   57|  10.2k|    }
_ZN5boost15optional_detail15aligned_storageINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE7addressEv:
   40|  15.4k|    void      * address()       { return &dummy_; }
_ZN5boost15optional_detail15aligned_storageINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE3refEv:
   64|  5.14k|    T &      ref()       { return *boost::core::launder(ptr_ref()); }
_ZN5boost15optional_detail15aligned_storageINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE7ptr_refEv:
   54|  5.14k|    {
   55|  5.14k|        union { void* ap_pvoid; T* as_ptype; } caster = { address() };
   56|  5.14k|        return caster.as_ptype;
   57|  5.14k|    }
_ZN5boost15optional_detail15aligned_storageINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE7addressEv:
   40|  10.2k|    void      * address()       { return &dummy_; }
_ZN5boost15optional_detail15aligned_storageINSt3__14pairINS_4asio12const_bufferEbEEE7ptr_refEv:
   54|  15.4k|    {
   55|  15.4k|        union { void* ap_pvoid; T* as_ptype; } caster = { address() };
   56|  15.4k|        return caster.as_ptype;
   57|  15.4k|    }
_ZN5boost15optional_detail15aligned_storageINSt3__14pairINS_4asio12const_bufferEbEEE7addressEv:
   40|  20.5k|    void      * address()       { return &dummy_; }
_ZNK5boost15optional_detail15aligned_storageINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE3refEv:
   63|  5.14k|    T const& ref() const { return *boost::core::launder(ptr_ref()); }
_ZNK5boost15optional_detail15aligned_storageINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE7ptr_refEv:
   49|  5.14k|    {
   50|  5.14k|        union { void const* ap_pvoid; T const* as_ptype; } caster = { address() };
   51|  5.14k|        return caster.as_ptype;
   52|  5.14k|    }
_ZNK5boost15optional_detail15aligned_storageINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE7addressEv:
   39|  5.14k|    void const* address() const { return &dummy_; }
_ZN5boost15optional_detail15aligned_storageINSt3__14pairINS_4asio12const_bufferEbEEE3refEv:
   64|  5.13k|    T &      ref()       { return *boost::core::launder(ptr_ref()); }
_ZN5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE3refEv:
   64|  1.43M|    T &      ref()       { return *boost::core::launder(ptr_ref()); }
_ZN5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE7ptr_refEv:
   54|  1.43M|    {
   55|  1.43M|        union { void* ap_pvoid; T* as_ptype; } caster = { address() };
   56|  1.43M|        return caster.as_ptype;
   57|  1.43M|    }
_ZN5boost15optional_detail15aligned_storageINS_4asio14mutable_bufferEE7addressEv:
   40|  2.15M|    void      * address()       { return &dummy_; }

_ZN5boostneINS_5beast4zlib5FlushEEEbRKNS_8optionalIT_EERKS5_:
   74|  3.53k|{ return !( x == y ) ; }
_ZN5boostleINS_5beast4zlib5FlushEEEbRKNS_8optionalIT_EERKS5_:
   84|  2.13k|{ return !( y < x ) ; }
_ZN5boostltINS_5beast4zlib5FlushEEEbRKT_RKNS_8optionalIS4_EE:
  103|  2.13k|{ return y && (x < *y); }
  ------------------
  |  Branch (103:10): [True: 2.13k, False: 0]
  |  Branch (103:15): [True: 2.12k, False: 8]
  ------------------
_ZN5boosteqINS_5beast4zlib5FlushEEEbRKNS_8optionalIT_EERKS5_:
   64|  9.23k|{ return x && (*x == y); }
  ------------------
  |  Branch (64:10): [True: 9.23k, False: 0]
  |  Branch (64:15): [True: 1.13k, False: 8.09k]
  ------------------

_ZN5boost15optional_detail16tc_optional_baseImEC2ENS0_14init_value_tagERKm:
   44|  8.71k|      m_initialized(true), m_storage(val) {}
_ZN5boost15optional_detail16tc_optional_baseImEC2ENS_6none_tE:
   40|    561|      m_initialized(false), m_storage() {}
_ZNK5boost15optional_detail16tc_optional_baseImE14is_initializedEv:
  125|  3.99k|    bool is_initialized() const { return m_initialized ; }
_ZN5boost15optional_detail16tc_optional_baseImE8get_implEv:
  261|    935|    reference_type       get_impl()       { return m_storage ; }
_ZNK5boost15optional_detail16tc_optional_baseImE8get_implEv:
  260|  1.00k|    reference_const_type get_impl() const { return m_storage ; }
_ZN5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEEC2Ev:
   36|  2.56k|      m_initialized(false), m_storage() {}
_ZN5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEE6assignERKS4_:
   94|  1.13k|    {
   95|  1.13k|      construct(val);
   96|  1.13k|    }
_ZN5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEE9constructERKS4_:
  130|  1.13k|     {
  131|  1.13k|       m_storage = val ;
  132|  1.13k|       m_initialized = true ;
  133|  1.13k|     }
_ZN5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEEC2EbRKS4_:
   48|  15.4k|      m_initialized(cond), m_storage(val) {}
_ZNK5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEE14is_initializedEv:
  125|  76.9k|    bool is_initialized() const { return m_initialized ; }
_ZN5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEE6assignENS_6none_tE:
   98|  12.1k|    void assign ( none_t ) { destroy(); }
_ZN5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEE7destroyEv:
  256|  12.1k|    {
  257|  12.1k|      m_initialized = false;
  258|  12.1k|    }
_ZNK5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEE8get_implEv:
  260|  11.3k|    reference_const_type get_impl() const { return m_storage ; }
_ZN5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEE8get_implEv:
  261|  20.7k|    reference_type       get_impl()       { return m_storage ; }
_ZN5boost15optional_detail16tc_optional_baseINS_5beast4zlib5FlushEEC2ENS0_14init_value_tagERKS4_:
   44|  15.4k|      m_initialized(true), m_storage(val) {}

_ZN5boost15optional_detail7forwardINS_5beast6detail12buffers_pairILb1EEEEEOT_RNS_16remove_referenceIS6_E4typeE:
   21|  58.2k|{
   22|  58.2k|  return static_cast<T&&>(t);
   23|  58.2k|}
_ZN5boost15optional_detail7forwardImEEOT_RNS_16remove_referenceIS2_E4typeE:
   21|  8.71k|{
   22|  8.71k|  return static_cast<T&&>(t);
   23|  8.71k|}
_ZN5boost15optional_detail7forwardINS_4asio12const_bufferEEEOT_RNS_16remove_referenceIS4_E4typeE:
   21|  46.3k|{
   22|  46.3k|  return static_cast<T&&>(t);
   23|  46.3k|}
_ZN5boost15optional_detail7forwardINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeEEEOT_RNS_16remove_referenceISB_E4typeE:
   21|  15.4k|{
   22|  15.4k|  return static_cast<T&&>(t);
   23|  15.4k|}
_ZN5boost15optional_detail7forwardINS_5beast4http10chunk_crlfEEEOT_RNS_16remove_referenceIS5_E4typeE:
   21|  15.4k|{
   22|  15.4k|  return static_cast<T&&>(t);
   23|  15.4k|}
_ZN5boost15optional_detail7forwardIRKNS_5beast4http7messageILb0ENS3_10empty_bodyENS3_12basic_fieldsINSt3__19allocatorIcEEEEEEEEOT_RNS_16remove_referenceISE_E4typeE:
   21|     33|{
   22|     33|  return static_cast<T&&>(t);
   23|     33|}
_ZN5boost15optional_detail7forwardIjEEOT_RNS_16remove_referenceIS2_E4typeE:
   21|  30.8k|{
   22|  30.8k|  return static_cast<T&&>(t);
   23|  30.8k|}
_ZN5boost15optional_detail7forwardIRKNS_5beast4http7messageILb0ENS3_17basic_string_bodyIcNSt3__111char_traitsIcEENS6_9allocatorIcEEEENS3_12basic_fieldsISA_EEEEEEOT_RNS_16remove_referenceISH_E4typeE:
   21|  15.4k|{
   22|  15.4k|  return static_cast<T&&>(t);
   23|  15.4k|}
_ZN5boost15optional_detail7forwardINSt3__14pairINS_4asio12const_bufferEbEEEEOT_RNS_16remove_referenceIS7_E4typeE:
   21|  5.13k|{
   22|  5.13k|  return static_cast<T&&>(t);
   23|  5.13k|}
_ZN5boost15optional_detail4moveIRNSt3__14pairINS_4asio12const_bufferEbEEEEONS_16remove_referenceIT_E4typeEOS9_:
   34|  10.2k|{
   35|  10.2k|  return static_cast<typename boost::remove_reference<T>::type&&>(t);
   36|  10.2k|}
_ZN5boost15optional_detail7forwardINS_4asio14mutable_bufferEEEOT_RNS_16remove_referenceIS4_E4typeE:
   21|  2.15M|{
   22|  2.15M|  return static_cast<T&&>(t);
   23|  2.15M|}
_ZN5boost15optional_detail7forwardINS_5beast4zlib5FlushEEEOT_RNS_16remove_referenceIS5_E4typeE:
   21|  31.9k|{
   22|  31.9k|  return static_cast<T&&>(t);
   23|  31.9k|}

_ZN5boost8optionalINS_5beast6detail12buffers_pairILb1EEEEC2Ev:
  666|  19.4k|    optional() BOOST_NOEXCEPT : base() {}
_ZN5boost15optional_detail13optional_baseINS_5beast6detail12buffers_pairILb1EEEEC2Ev:
  157|  19.4k|      m_initialized(false) {}
_ZN5boost8optionalINS_5beast6detail12buffers_pairILb1EEEE7emplaceIJS4_EEEvDpOT_:
  873|  19.4k|    {
  874|  19.4k|      this->emplace_assign( optional_detail::forward<Args>(args)... );
  875|  19.4k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast6detail12buffers_pairILb1EEEE14emplace_assignIJS5_EEEvDpOT_:
  400|  19.4k|    {
  401|  19.4k|      destroy();
  402|  19.4k|      construct(in_place_init, optional_detail::forward<Args>(args)...);
  403|  19.4k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast6detail12buffers_pairILb1EEEE7destroyEv:
  510|  38.8k|    {
  511|  38.8k|      if ( m_initialized )
  ------------------
  |  Branch (511:12): [True: 19.4k, False: 19.4k]
  ------------------
  512|  19.4k|        destroy_impl() ;
  513|  38.8k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast6detail12buffers_pairILb1EEEE12destroy_implEv:
  526|  19.4k|    void destroy_impl ( ) { m_storage.ref().T::~T() ; m_initialized = false ; }
_ZN5boost15optional_detail13optional_baseINS_5beast6detail12buffers_pairILb1EEEE9constructIJS5_EEEvNS_11optional_ns15in_place_init_tEDpOT_:
  393|  19.4k|    {
  394|  19.4k|      ::new (m_storage.address()) unqualified_value_type( optional_detail::forward<Args>(args)... ) ;
  395|  19.4k|      m_initialized = true ;
  396|  19.4k|    }
_ZNKR5boost8optionalINS_5beast6detail12buffers_pairILb1EEEEdeEv:
  914|  19.4k|    reference_const_type operator *() BOOST_OPTIONAL_CONST_REF_QUAL { return this->get() ; }
_ZNK5boost8optionalINS_5beast6detail12buffers_pairILb1EEEE3getEv:
  898|  19.4k|    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|  19.4k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZNK5boost15optional_detail13optional_baseINS_5beast6detail12buffers_pairILb1EEEE14is_initializedEv:
  372|  19.4k|    bool is_initialized() const BOOST_NOEXCEPT { return m_initialized ; }
_ZNK5boost15optional_detail13optional_baseINS_5beast6detail12buffers_pairILb1EEEE8get_implEv:
  515|  19.4k|    reference_const_type get_impl() const { return m_storage.ref() ; }
_ZN5boost8optionalImEC2EOm:
  678|  8.71k|    optional ( rval_reference_type val ) : base(optional_detail::init_value_tag(), optional_detail::forward<T>(val))
  679|  8.71k|      {}
_ZN5boost8optionalImEC2ENS_6none_tE:
  670|    561|    optional( none_t none_ ) BOOST_NOEXCEPT : base(none_) {}
_ZNK5boost8optionalImE9has_valueEv:
 1046|  2.05k|    bool has_value() const BOOST_NOEXCEPT { return this->is_initialized() ; }
_ZNR5boost8optionalImEdeEv:
  915|    935|    reference_type       operator *() BOOST_OPTIONAL_REF_QUAL       { return this->get() ; }
_ZN5boost8optionalImE3getEv:
  899|    935|    reference_type       get()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|    935|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZNK5boost8optionalImEcvbEv:
 1048|  1.50k|    explicit operator bool() const BOOST_NOEXCEPT { return this->has_value() ; }
_ZNKR5boost8optionalImEdeEv:
  914|  1.00k|    reference_const_type operator *() BOOST_OPTIONAL_CONST_REF_QUAL { return this->get() ; }
_ZNK5boost8optionalImE3getEv:
  898|  1.00k|    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|  1.00k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZN5boost8optionalINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEEC2Ev:
  666|  5.14k|    optional() BOOST_NOEXCEPT : base() {}
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEEC2Ev:
  157|  5.14k|      m_initialized(false) {}
_ZN5boost8optionalINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE7emplaceIJRKNS2_7messageILb0ENS2_10empty_bodyES7_EEjjEEEvDpOT_:
  873|     11|    {
  874|     11|      this->emplace_assign( optional_detail::forward<Args>(args)... );
  875|     11|    }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE14emplace_assignIJRKNS3_7messageILb0ENS3_10empty_bodyES8_EEjjEEEvDpOT_:
  400|     11|    {
  401|     11|      destroy();
  402|     11|      construct(in_place_init, optional_detail::forward<Args>(args)...);
  403|     11|    }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE7destroyEv:
  510|  10.3k|    {
  511|  10.3k|      if ( m_initialized )
  ------------------
  |  Branch (511:12): [True: 5.14k, False: 5.15k]
  ------------------
  512|  5.14k|        destroy_impl() ;
  513|  10.3k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE12destroy_implEv:
  526|  5.14k|    void destroy_impl ( ) { m_storage.ref().T::~T() ; m_initialized = false ; }
_ZN5boost15optional_detail13optional_baseINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEED2Ev:
  247|  5.14k|    ~optional_base() { destroy() ; }
_ZN5boost15optional_detail13optional_baseINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE7destroyEv:
  510|  10.2k|    {
  511|  10.2k|      if ( m_initialized )
  ------------------
  |  Branch (511:12): [True: 5.14k, False: 5.14k]
  ------------------
  512|  5.14k|        destroy_impl() ;
  513|  10.2k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE12destroy_implEv:
  526|  5.14k|    void destroy_impl ( ) { m_storage.ref().T::~T() ; m_initialized = false ; }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE9constructIJRKNS3_7messageILb0ENS3_10empty_bodyES8_EEjjEEEvNS_11optional_ns15in_place_init_tEDpOT_:
  393|     11|    {
  394|     11|      ::new (m_storage.address()) unqualified_value_type( optional_detail::forward<Args>(args)... ) ;
  395|     11|      m_initialized = true ;
  396|     11|    }
_ZN5boost8optionalINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES4_S4_NS1_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS5_10chunk_crlfEEEEEC2Ev:
  666|  5.14k|    optional() BOOST_NOEXCEPT : base() {}
_ZN5boost15optional_detail13optional_baseINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEEC2Ev:
  157|  5.14k|      m_initialized(false) {}
_ZN5boost8optionalINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES4_S4_NS1_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS5_10chunk_crlfEEEEE7emplaceIJS4_S4_S4_SC_SD_EEEvDpOT_:
  873|  5.14k|    {
  874|  5.14k|      this->emplace_assign( optional_detail::forward<Args>(args)... );
  875|  5.14k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE14emplace_assignIJS5_S5_S5_SD_SE_EEEvDpOT_:
  400|  5.14k|    {
  401|  5.14k|      destroy();
  402|  5.14k|      construct(in_place_init, optional_detail::forward<Args>(args)...);
  403|  5.14k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE9constructIJS5_S5_S5_SD_SE_EEEvNS_11optional_ns15in_place_init_tEDpOT_:
  393|  5.14k|    {
  394|  5.14k|      ::new (m_storage.address()) unqualified_value_type( optional_detail::forward<Args>(args)... ) ;
  395|  5.14k|      m_initialized = true ;
  396|  5.14k|    }
_ZN5boost8optionalINSt3__14pairINS_4asio12const_bufferEbEEEC2ENS_6none_tE:
  670|     11|    optional( none_t none_ ) BOOST_NOEXCEPT : base(none_) {}
_ZN5boost15optional_detail13optional_baseINSt3__14pairINS_4asio12const_bufferEbEEEC2ENS_6none_tE:
  163|     11|      m_initialized(false) {}
_ZNK5boost8optionalINSt3__14pairINS_4asio12const_bufferEbEEEcvbEv:
 1048|  5.14k|    explicit operator bool() const BOOST_NOEXCEPT { return this->has_value() ; }
_ZNK5boost8optionalINSt3__14pairINS_4asio12const_bufferEbEEE9has_valueEv:
 1046|  5.14k|    bool has_value() const BOOST_NOEXCEPT { return this->is_initialized() ; }
_ZNK5boost15optional_detail13optional_baseINSt3__14pairINS_4asio12const_bufferEbEEE14is_initializedEv:
  372|  15.4k|    bool is_initialized() const BOOST_NOEXCEPT { return m_initialized ; }
_ZN5boost8optionalINSt3__14pairINS_4asio12const_bufferEbEEEptEv:
  909|  10.2k|    pointer_type       operator->()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
  ------------------
  |  |   66|  10.2k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZN5boost15optional_detail13optional_baseINSt3__14pairINS_4asio12const_bufferEbEEE12get_ptr_implEv:
  519|  10.2k|    pointer_type       get_ptr_impl()       { return m_storage.ptr_ref(); }
_ZN5boost8optionalINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEEptEv:
  909|  5.14k|    pointer_type       operator->()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
  ------------------
  |  |   66|  5.14k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZNK5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE14is_initializedEv:
  372|  5.14k|    bool is_initialized() const BOOST_NOEXCEPT { return m_initialized ; }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE12get_ptr_implEv:
  519|  5.14k|    pointer_type       get_ptr_impl()       { return m_storage.ptr_ref(); }
_ZNKR5boost8optionalINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES4_S4_NS1_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS5_10chunk_crlfEEEEEdeEv:
  914|  5.14k|    reference_const_type operator *() BOOST_OPTIONAL_CONST_REF_QUAL { return this->get() ; }
_ZNK5boost8optionalINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES4_S4_NS1_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS5_10chunk_crlfEEEEE3getEv:
  898|  5.14k|    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|  5.14k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZNK5boost15optional_detail13optional_baseINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE14is_initializedEv:
  372|  5.14k|    bool is_initialized() const BOOST_NOEXCEPT { return m_initialized ; }
_ZNK5boost15optional_detail13optional_baseINS_5beast16buffers_cat_viewIJNS_4asio12const_bufferES5_S5_NS2_4http12basic_fieldsINSt3__19allocatorIcEEE6writer11field_rangeENS6_10chunk_crlfEEEEE8get_implEv:
  515|  5.14k|    reference_const_type get_impl() const { return m_storage.ref() ; }
_ZN5boost15optional_detail13optional_baseINSt3__14pairINS_4asio12const_bufferEbEEED2Ev:
  247|  5.14k|    ~optional_base() { destroy() ; }
_ZN5boost15optional_detail13optional_baseINSt3__14pairINS_4asio12const_bufferEbEEE7destroyEv:
  510|  5.14k|    {
  511|  5.14k|      if ( m_initialized )
  ------------------
  |  Branch (511:12): [True: 5.13k, False: 11]
  ------------------
  512|  5.13k|        destroy_impl() ;
  513|  5.14k|    }
_ZN5boost15optional_detail13optional_baseINSt3__14pairINS_4asio12const_bufferEbEEE12destroy_implEv:
  526|  5.13k|    void destroy_impl ( ) { m_storage.ref().T::~T() ; m_initialized = false ; }
_ZN5boost8optionalINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEEaSENS_6none_tE:
  864|     11|      {
  865|     11|        this->assign( none_ ) ;
  866|     11|        return *this ;
  867|     11|      }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE6assignENS_6none_tE:
  343|     11|    void assign ( none_t ) BOOST_NOEXCEPT { destroy(); }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEED2Ev:
  247|  5.14k|    ~optional_base() { destroy() ; }
_ZN5boost8optionalINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE7emplaceIJRKNS2_7messageILb0ENS2_17basic_string_bodyIcNS4_11char_traitsIcEES6_EES7_EEjjEEEvDpOT_:
  873|  5.13k|    {
  874|  5.13k|      this->emplace_assign( optional_detail::forward<Args>(args)... );
  875|  5.13k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE14emplace_assignIJRKNS3_7messageILb0ENS3_17basic_string_bodyIcNS5_11char_traitsIcEES7_EES8_EEjjEEEvDpOT_:
  400|  5.13k|    {
  401|  5.13k|      destroy();
  402|  5.13k|      construct(in_place_init, optional_detail::forward<Args>(args)...);
  403|  5.13k|    }
_ZN5boost15optional_detail13optional_baseINS_5beast4http12basic_fieldsINSt3__19allocatorIcEEE6writerEE9constructIJRKNS3_7messageILb0ENS3_17basic_string_bodyIcNS5_11char_traitsIcEES7_EES8_EEjjEEEvNS_11optional_ns15in_place_init_tEDpOT_:
  393|  5.13k|    {
  394|  5.13k|      ::new (m_storage.address()) unqualified_value_type( optional_detail::forward<Args>(args)... ) ;
  395|  5.13k|      m_initialized = true ;
  396|  5.13k|    }
_ZN5boost8optionalINSt3__14pairINS_4asio12const_bufferEbEEEC2EOS5_:
  678|  5.13k|    optional ( rval_reference_type val ) : base(optional_detail::init_value_tag(), optional_detail::forward<T>(val))
  679|  5.13k|      {}
_ZN5boost15optional_detail13optional_baseINSt3__14pairINS_4asio12const_bufferEbEEEC2ENS0_14init_value_tagEOS6_:
  178|  5.13k|      m_initialized(false)
  179|  5.13k|    {
  180|  5.13k|      construct( optional_detail::move(val) );
  181|  5.13k|    }
_ZN5boost15optional_detail13optional_baseINSt3__14pairINS_4asio12const_bufferEbEEE9constructEOS6_:
  383|  5.13k|     {
  384|  5.13k|       ::new (m_storage.address()) unqualified_value_type( optional_detail::move(val) ) ;
  385|  5.13k|       m_initialized = true ;
  386|  5.13k|     }
_ZN5boost8optionalINS_5beast4zlib5FlushEEC2Ev:
  666|  2.56k|    optional() BOOST_NOEXCEPT : base() {}
_ZN5boost15optional_detail13optional_baseINS_5beast6detail12buffers_pairILb1EEEED2Ev:
  247|  19.4k|    ~optional_base() { destroy() ; }
_ZN5boost8optionalINS_4asio14mutable_bufferEEC2Ev:
  666|   717k|    optional() BOOST_NOEXCEPT : base() {}
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEEC2Ev:
  157|   717k|      m_initialized(false) {}
_ZN5boost8optionalINS_4asio14mutable_bufferEE7emplaceIJS2_EEEvDpOT_:
  873|   717k|    {
  874|   717k|      this->emplace_assign( optional_detail::forward<Args>(args)... );
  875|   717k|    }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE14emplace_assignIJS3_EEEvDpOT_:
  400|   717k|    {
  401|   717k|      destroy();
  402|   717k|      construct(in_place_init, optional_detail::forward<Args>(args)...);
  403|   717k|    }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE7destroyEv:
  510|  1.43M|    {
  511|  1.43M|      if ( m_initialized )
  ------------------
  |  Branch (511:12): [True: 717k, False: 717k]
  ------------------
  512|   717k|        destroy_impl() ;
  513|  1.43M|    }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE12destroy_implEv:
  526|   717k|    void destroy_impl ( ) { m_storage.ref().T::~T() ; m_initialized = false ; }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE9constructIJS3_EEEvNS_11optional_ns15in_place_init_tEDpOT_:
  393|   717k|    {
  394|   717k|      ::new (m_storage.address()) unqualified_value_type( optional_detail::forward<Args>(args)... ) ;
  395|   717k|      m_initialized = true ;
  396|   717k|    }
_ZNR5boost8optionalINS_4asio14mutable_bufferEEdeEv:
  915|   717k|    reference_type       operator *() BOOST_OPTIONAL_REF_QUAL       { return this->get() ; }
_ZN5boost8optionalINS_4asio14mutable_bufferEE3getEv:
  899|   717k|    reference_type       get()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|   717k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZNK5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE14is_initializedEv:
  372|   717k|    bool is_initialized() const BOOST_NOEXCEPT { return m_initialized ; }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEE8get_implEv:
  516|   717k|    reference_type       get_impl()       { return m_storage.ref() ; }
_ZN5boost15optional_detail13optional_baseINS_4asio14mutable_bufferEED2Ev:
  247|   717k|    ~optional_base() { destroy() ; }
_ZN5boost8optionalINS_5beast4zlib5FlushEEaSIS3_EENS_9enable_ifINS_7is_sameIS3_NS_5decayIT_E4typeEEERS4_E4typeEOS9_:
  836|  1.13k|      {
  837|  1.13k|        this->assign( optional_detail::forward<T_>(val) ) ;
  838|  1.13k|        return *this ;
  839|  1.13k|      }
_ZN5boost13make_optionalINS_5beast4zlib5FlushEEENS_8optionalINS_5decayIT_E4typeEEEbOS6_:
 1078|  15.4k|{
 1079|  15.4k|  return optional<BOOST_DEDUCED_TYPENAME boost::decay<T>::type>(cond,optional_detail::forward<T>(v));
 1080|  15.4k|}
_ZN5boost8optionalINS_5beast4zlib5FlushEEC2EbOS3_:
  687|  15.4k|    optional ( bool cond, rval_reference_type val ) : base( cond, optional_detail::forward<T>(val) )
  688|  15.4k|      {}
_ZNK5boost8optionalINS_5beast4zlib5FlushEEcvbEv:
 1048|  29.3k|    explicit operator bool() const BOOST_NOEXCEPT { return this->has_value() ; }
_ZNK5boost8optionalINS_5beast4zlib5FlushEE9has_valueEv:
 1046|  29.3k|    bool has_value() const BOOST_NOEXCEPT { return this->is_initialized() ; }
_ZNR5boost8optionalINS_5beast4zlib5FlushEEdeEv:
  915|  5.36k|    reference_type       operator *() BOOST_OPTIONAL_REF_QUAL       { return this->get() ; }
_ZN5boost8optionalINS_5beast4zlib5FlushEEaSENS_6none_tE:
  864|  12.1k|      {
  865|  12.1k|        this->assign( none_ ) ;
  866|  12.1k|        return *this ;
  867|  12.1k|      }
_ZNKR5boost8optionalINS_5beast4zlib5FlushEEdeEv:
  914|  11.3k|    reference_const_type operator *() BOOST_OPTIONAL_CONST_REF_QUAL { return this->get() ; }
_ZNK5boost8optionalINS_5beast4zlib5FlushEE3getEv:
  898|  11.3k|    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|  11.3k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZN5boost8optionalINS_5beast4zlib5FlushEE3getEv:
  899|  20.7k|    reference_type       get()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
  ------------------
  |  |   66|  20.7k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
_ZN5boost8optionalINS_5beast4zlib5FlushEEC2ERKS3_:
  674|  15.4k|    optional ( argument_type val ) : base(optional_detail::init_value_tag(), val) {}

_ZN5boost6detail12shared_countC2IPNS_5beast4test6detail19stream_service_implENS0_13sp_ms_deleterIS6_EEEET_NS0_14sp_inplace_tagIT0_EE:
  197|  8.21k|    template< class P, class D > shared_count( P p, sp_inplace_tag<D> ): pi_( 0 )
  198|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  199|       |        , id_(shared_count_id)
  200|       |#endif
  201|  8.21k|    {
  202|  8.21k|#ifndef BOOST_NO_EXCEPTIONS
  203|       |
  204|  8.21k|        try
  205|  8.21k|        {
  206|  8.21k|            pi_ = new sp_counted_impl_pd< P, D >( p );
  207|  8.21k|        }
  208|  8.21k|        catch( ... )
  209|  8.21k|        {
  210|      0|            D::operator_fn( p ); // delete p
  211|      0|            throw;
  212|      0|        }
  213|       |
  214|       |#else
  215|       |
  216|       |        pi_ = new sp_counted_impl_pd< P, D >( p );
  217|       |
  218|       |        if( pi_ == 0 )
  219|       |        {
  220|       |            D::operator_fn( p ); // delete p
  221|       |            boost::throw_exception( std::bad_alloc() );
  222|       |        }
  223|       |
  224|       |#endif // #ifndef BOOST_NO_EXCEPTIONS
  225|  8.21k|    }
_ZN5boost6detail12shared_countD2Ev:
  392|   465k|    {
  393|   465k|        if( pi_ != 0 ) pi_->release();
  ------------------
  |  Branch (393:13): [True: 440k, False: 25.5k]
  ------------------
  394|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  395|       |        id_ = 0;
  396|       |#endif
  397|   465k|    }
_ZNK5boost6detail12shared_count19get_untyped_deleterEv:
  479|  32.8k|    {
  480|  32.8k|        return pi_? pi_->get_untyped_deleter(): 0;
  ------------------
  |  Branch (480:16): [True: 32.8k, False: 0]
  ------------------
  481|  32.8k|    }
_ZN5boost6detail12shared_countC2ERKS1_:
  399|  41.0k|    shared_count(shared_count const & r) noexcept: pi_(r.pi_)
  400|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  401|       |        , id_(shared_count_id)
  402|       |#endif
  403|  41.0k|    {
  404|  41.0k|        if( pi_ != 0 ) pi_->add_ref_copy();
  ------------------
  |  Branch (404:13): [True: 41.0k, False: 0]
  ------------------
  405|  41.0k|    }
_ZN5boost6detail12shared_countC2IPNS_5beast4test6detail12stream_stateENS0_13sp_ms_deleterIS6_EEEET_NS0_14sp_inplace_tagIT0_EE:
  197|  16.4k|    template< class P, class D > shared_count( P p, sp_inplace_tag<D> ): pi_( 0 )
  198|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  199|       |        , id_(shared_count_id)
  200|       |#endif
  201|  16.4k|    {
  202|  16.4k|#ifndef BOOST_NO_EXCEPTIONS
  203|       |
  204|  16.4k|        try
  205|  16.4k|        {
  206|  16.4k|            pi_ = new sp_counted_impl_pd< P, D >( p );
  207|  16.4k|        }
  208|  16.4k|        catch( ... )
  209|  16.4k|        {
  210|      0|            D::operator_fn( p ); // delete p
  211|      0|            throw;
  212|      0|        }
  213|       |
  214|       |#else
  215|       |
  216|       |        pi_ = new sp_counted_impl_pd< P, D >( p );
  217|       |
  218|       |        if( pi_ == 0 )
  219|       |        {
  220|       |            D::operator_fn( p ); // delete p
  221|       |            boost::throw_exception( std::bad_alloc() );
  222|       |        }
  223|       |
  224|       |#endif // #ifndef BOOST_NO_EXCEPTIONS
  225|  16.4k|    }
_ZN5boost6detail10weak_countC2ERKNS0_12shared_countE:
  511|  16.4k|    weak_count(shared_count const & r) noexcept: pi_(r.pi_)
  512|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  513|       |        , id_(weak_count_id)
  514|       |#endif
  515|  16.4k|    {
  516|  16.4k|        if(pi_ != 0) pi_->weak_add_ref();
  ------------------
  |  Branch (516:12): [True: 16.4k, False: 0]
  ------------------
  517|  16.4k|    }
_ZN5boost6detail10weak_countC2EOS1_:
  529|  16.4k|    weak_count(weak_count && r) noexcept: pi_(r.pi_)
  530|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  531|       |        , id_(weak_count_id)
  532|       |#endif
  533|  16.4k|    {
  534|  16.4k|        r.pi_ = 0;
  535|  16.4k|    }
_ZN5boost6detail10weak_countD2Ev:
  538|  74.8k|    {
  539|  74.8k|        if(pi_ != 0) pi_->weak_release();
  ------------------
  |  Branch (539:12): [True: 41.0k, False: 33.7k]
  ------------------
  540|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  541|       |        id_ = 0;
  542|       |#endif
  543|  74.8k|    }
_ZN5boost6detail10weak_countC2Ev:
  504|  41.9k|    constexpr weak_count() noexcept: pi_(0)
  505|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  506|       |        , id_(weak_count_id)
  507|       |#endif
  508|  41.9k|    {
  509|  41.9k|    }
_ZN5boost6detail12shared_countC2ERKNS0_10weak_countENS0_14sp_nothrow_tagE:
  627|   391k|inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ) noexcept: pi_( r.pi_ )
  628|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  629|       |        , id_(shared_count_id)
  630|       |#endif
  631|   391k|{
  632|   391k|    if( pi_ != 0 && !pi_->add_ref_lock() )
  ------------------
  |  Branch (632:9): [True: 374k, False: 17.3k]
  |  Branch (632:21): [True: 8.21k, False: 366k]
  ------------------
  633|  8.21k|    {
  634|  8.21k|        pi_ = 0;
  635|  8.21k|    }
  636|   391k|}
_ZNK5boost6detail12shared_count5emptyEv:
  450|   391k|    {
  451|   391k|        return pi_ == 0;
  452|   391k|    }
_ZN5boost6detail10weak_count4swapERS1_:
  574|  17.3k|    {
  575|  17.3k|        sp_counted_base * tmp = r.pi_;
  576|  17.3k|        r.pi_ = pi_;
  577|  17.3k|        pi_ = tmp;
  578|  17.3k|    }
_ZN5boost6detail12shared_countC2IPNS_5beast9websocket6streamINS3_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeENS0_13sp_ms_deleterISC_EEEET_NS0_14sp_inplace_tagIT0_EE:
  197|  8.21k|    template< class P, class D > shared_count( P p, sp_inplace_tag<D> ): pi_( 0 )
  198|       |#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
  199|       |        , id_(shared_count_id)
  200|       |#endif
  201|  8.21k|    {
  202|  8.21k|#ifndef BOOST_NO_EXCEPTIONS
  203|       |
  204|  8.21k|        try
  205|  8.21k|        {
  206|  8.21k|            pi_ = new sp_counted_impl_pd< P, D >( p );
  207|  8.21k|        }
  208|  8.21k|        catch( ... )
  209|  8.21k|        {
  210|      0|            D::operator_fn( p ); // delete p
  211|      0|            throw;
  212|      0|        }
  213|       |
  214|       |#else
  215|       |
  216|       |        pi_ = new sp_counted_impl_pd< P, D >( p );
  217|       |
  218|       |        if( pi_ == 0 )
  219|       |        {
  220|       |            D::operator_fn( p ); // delete p
  221|       |            boost::throw_exception( std::bad_alloc() );
  222|       |        }
  223|       |
  224|       |#endif // #ifndef BOOST_NO_EXCEPTIONS
  225|  8.21k|    }
_ZNK5boost6detail10weak_count9use_countEv:
  581|  8.21k|    {
  582|  8.21k|        return pi_ != 0? pi_->use_count(): 0;
  ------------------
  |  Branch (582:16): [True: 0, False: 8.21k]
  ------------------
  583|  8.21k|    }
_ZN5boost6detail10weak_countaSERKNS0_12shared_countE:
  546|  24.6k|    {
  547|  24.6k|        sp_counted_base * tmp = r.pi_;
  548|       |
  549|  24.6k|        if( tmp != pi_ )
  ------------------
  |  Branch (549:13): [True: 24.6k, False: 0]
  ------------------
  550|  24.6k|        {
  551|  24.6k|            if(tmp != 0) tmp->weak_add_ref();
  ------------------
  |  Branch (551:16): [True: 24.6k, False: 0]
  ------------------
  552|  24.6k|            if(pi_ != 0) pi_->weak_release();
  ------------------
  |  Branch (552:16): [True: 0, False: 24.6k]
  ------------------
  553|  24.6k|            pi_ = tmp;
  554|  24.6k|        }
  555|       |
  556|  24.6k|        return *this;
  557|  24.6k|    }

_ZN5boost6detail15sp_counted_baseC2Ev:
   82|  32.8k|    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
   83|  32.8k|    {
   84|  32.8k|    }
_ZN5boost6detail15sp_counted_baseD2Ev:
   87|  32.8k|    {
   88|  32.8k|    }
_ZN5boost6detail15sp_counted_base7destroyEv:
   98|  32.8k|    {
   99|  32.8k|        delete this;
  100|  32.8k|    }
_ZN5boost6detail15sp_counted_base7releaseEv:
  117|   440k|    {
  118|   440k|        if( atomic_decrement( &use_count_ ) == 1 )
  ------------------
  |  Branch (118:13): [True: 32.8k, False: 407k]
  ------------------
  119|  32.8k|        {
  120|  32.8k|            dispose();
  121|  32.8k|            weak_release();
  122|  32.8k|        }
  123|   440k|    }
_ZN5boost6detail16atomic_decrementEPj:
   39|   514k|{
   40|   514k|    return __atomic_fetch_sub( pw, 1, __ATOMIC_ACQ_REL );
   41|   514k|}
_ZN5boost6detail15sp_counted_base12weak_releaseEv:
  131|  73.9k|    {
  132|  73.9k|        if( atomic_decrement( &weak_count_ ) == 1 )
  ------------------
  |  Branch (132:13): [True: 32.8k, False: 41.0k]
  ------------------
  133|  32.8k|        {
  134|  32.8k|            destroy();
  135|  32.8k|        }
  136|  73.9k|    }
_ZN5boost6detail15sp_counted_base12add_ref_copyEv:
  107|  41.0k|    {
  108|  41.0k|        atomic_increment( &use_count_ );
  109|  41.0k|    }
_ZN5boost6detail16atomic_incrementEPj:
   34|  82.1k|{
   35|  82.1k|    __atomic_fetch_add( pw, 1, __ATOMIC_RELAXED );
   36|  82.1k|}
_ZN5boost6detail15sp_counted_base12weak_add_refEv:
  126|  41.0k|    {
  127|  41.0k|        atomic_increment( &weak_count_ );
  128|  41.0k|    }
_ZN5boost6detail15sp_counted_base12add_ref_lockEv:
  112|   374k|    {
  113|   374k|        return atomic_conditional_increment( &use_count_ ) != 0;
  114|   374k|    }
_ZN5boost6detail28atomic_conditional_incrementEPj:
   44|   374k|{
   45|       |    // long r = *pw;
   46|       |    // if( r != 0 ) ++*pw;
   47|       |    // return r;
   48|       |
   49|   374k|    boost::uint_least32_t r = __atomic_load_n( pw, __ATOMIC_RELAXED );
   50|       |
   51|   374k|    for( ;; )
   52|   374k|    {
   53|   374k|        if( r == 0 )
  ------------------
  |  Branch (53:13): [True: 8.21k, False: 366k]
  ------------------
   54|  8.21k|        {
   55|  8.21k|            return r;
   56|  8.21k|        }
   57|       |
   58|   366k|        if( __atomic_compare_exchange_n( pw, &r, r + 1, true, __ATOMIC_RELAXED, __ATOMIC_RELAXED ) )
  ------------------
  |  Branch (58:13): [True: 366k, False: 0]
  ------------------
   59|   366k|        {
   60|   366k|            return r;
   61|   366k|        }
   62|   366k|    }
   63|   374k|}

_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail19stream_service_implENS0_13sp_ms_deleterIS5_EEEC2ES6_:
  156|  8.21k|    sp_counted_impl_pd( P p ): ptr( p ), del()
  157|  8.21k|    {
  158|  8.21k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail19stream_service_implENS0_13sp_ms_deleterIS5_EEE7disposeEv:
  161|  8.21k|    {
  162|  8.21k|        del( ptr );
  163|  8.21k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail19stream_service_implENS0_13sp_ms_deleterIS5_EEE19get_untyped_deleterEv:
  176|  8.21k|    {
  177|  8.21k|        return &reinterpret_cast<char&>( del );
  178|  8.21k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail12stream_stateENS0_13sp_ms_deleterIS5_EEEC2ES6_:
  156|  16.4k|    sp_counted_impl_pd( P p ): ptr( p ), del()
  157|  16.4k|    {
  158|  16.4k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail12stream_stateENS0_13sp_ms_deleterIS5_EEE7disposeEv:
  161|  16.4k|    {
  162|  16.4k|        del( ptr );
  163|  16.4k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast4test6detail12stream_stateENS0_13sp_ms_deleterIS5_EEE19get_untyped_deleterEv:
  176|  16.4k|    {
  177|  16.4k|        return &reinterpret_cast<char&>( del );
  178|  16.4k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeENS0_13sp_ms_deleterISB_EEEC2ESC_:
  156|  8.21k|    sp_counted_impl_pd( P p ): ptr( p ), del()
  157|  8.21k|    {
  158|  8.21k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeENS0_13sp_ms_deleterISB_EEE7disposeEv:
  161|  8.21k|    {
  162|  8.21k|        del( ptr );
  163|  8.21k|    }
_ZN5boost6detail18sp_counted_impl_pdIPNS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeENS0_13sp_ms_deleterISB_EEE19get_untyped_deleterEv:
  176|  8.21k|    {
  177|  8.21k|        return &reinterpret_cast<char&>( del );
  178|  8.21k|    }

_ZN5boost23enable_shared_from_thisINS_5beast9websocket6detail7service9impl_typeEEC2Ev:
   28|  8.21k|    {
   29|  8.21k|    }
_ZN5boost23enable_shared_from_thisINS_5beast9websocket6detail7service9impl_typeEED2Ev:
   41|  8.21k|    {
   42|  8.21k|    }
_ZNK5boost23enable_shared_from_thisINS_5beast9websocket6detail7service9impl_typeEE22_internal_accept_ownerINS2_6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeESF_EEvPKNS_10shared_ptrIT_EEPT0_:
   74|  8.21k|    {
   75|  8.21k|        if( weak_this_.expired() )
  ------------------
  |  Branch (75:13): [True: 8.21k, False: 0]
  ------------------
   76|  8.21k|        {
   77|  8.21k|            weak_this_ = shared_ptr<T>( *ppx, py );
   78|  8.21k|        }
   79|  8.21k|    }

_ZN5boost11make_sharedINS_5beast4test6detail19stream_service_implEJEEENS_6detail15sp_if_not_arrayIT_E4typeEDpOT0_:
  223|  8.21k|{
  224|  8.21k|    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
  ------------------
  |  |  182|  8.21k|#define BOOST_SP_MSD( T ) boost::detail::sp_inplace_tag< boost::detail::sp_ms_deleter< T > >()
  ------------------
  225|       |
  226|  8.21k|    boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
  227|       |
  228|  8.21k|    void * pv = pd->address();
  229|       |
  230|  8.21k|    ::new( pv ) T( std::forward<Args>( args )... );
  231|  8.21k|    pd->set_initialized();
  232|       |
  233|  8.21k|    T * pt2 = static_cast< T* >( pv );
  234|       |
  235|  8.21k|    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
  236|  8.21k|    return boost::shared_ptr< T >( pt, pt2 );
  237|  8.21k|}
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEEC2Ev:
   69|  8.21k|    sp_ms_deleter() noexcept : initialized_( false )
   70|  8.21k|    {
   71|  8.21k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEED2Ev:
   83|  8.21k|    {
   84|  8.21k|        destroy();
   85|  8.21k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEE7destroyEv:
   48|  16.4k|    {
   49|  16.4k|        if( initialized_ )
  ------------------
  |  Branch (49:13): [True: 8.21k, False: 8.21k]
  ------------------
   50|  8.21k|        {
   51|  8.21k|#if defined( __GNUC__ )
   52|       |
   53|       |            // fixes incorrect aliasing warning
   54|  8.21k|            T * p = reinterpret_cast< T* >( storage_.data_ );
   55|  8.21k|            p->~T();
   56|       |
   57|       |#else
   58|       |
   59|       |            reinterpret_cast< T* >( storage_.data_ )->~T();
   60|       |
   61|       |#endif
   62|       |
   63|  8.21k|            initialized_ = false;
   64|  8.21k|        }
   65|  16.4k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEEclEPS5_:
   88|  8.21k|    {
   89|  8.21k|        destroy();
   90|  8.21k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEE7addressEv:
   97|  8.21k|    {
   98|  8.21k|        return storage_.data_;
   99|  8.21k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail19stream_service_implEE15set_initializedEv:
  102|  8.21k|    {
  103|  8.21k|        initialized_ = true;
  104|  8.21k|    }
_ZN5boost11make_sharedINS_5beast4test6detail12stream_stateEJRNS_4asio15any_io_executorERNS_10shared_ptrINS3_19stream_service_implEEERPNS2_10fail_countEEEENS_6detail15sp_if_not_arrayIT_E4typeEDpOT0_:
  223|  16.4k|{
  224|  16.4k|    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
  ------------------
  |  |  182|  16.4k|#define BOOST_SP_MSD( T ) boost::detail::sp_inplace_tag< boost::detail::sp_ms_deleter< T > >()
  ------------------
  225|       |
  226|  16.4k|    boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
  227|       |
  228|  16.4k|    void * pv = pd->address();
  229|       |
  230|  16.4k|    ::new( pv ) T( std::forward<Args>( args )... );
  231|  16.4k|    pd->set_initialized();
  232|       |
  233|  16.4k|    T * pt2 = static_cast< T* >( pv );
  234|       |
  235|  16.4k|    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
  236|  16.4k|    return boost::shared_ptr< T >( pt, pt2 );
  237|  16.4k|}
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEEC2Ev:
   69|  16.4k|    sp_ms_deleter() noexcept : initialized_( false )
   70|  16.4k|    {
   71|  16.4k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEED2Ev:
   83|  16.4k|    {
   84|  16.4k|        destroy();
   85|  16.4k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEE7destroyEv:
   48|  32.8k|    {
   49|  32.8k|        if( initialized_ )
  ------------------
  |  Branch (49:13): [True: 16.4k, False: 16.4k]
  ------------------
   50|  16.4k|        {
   51|  16.4k|#if defined( __GNUC__ )
   52|       |
   53|       |            // fixes incorrect aliasing warning
   54|  16.4k|            T * p = reinterpret_cast< T* >( storage_.data_ );
   55|  16.4k|            p->~T();
   56|       |
   57|       |#else
   58|       |
   59|       |            reinterpret_cast< T* >( storage_.data_ )->~T();
   60|       |
   61|       |#endif
   62|       |
   63|  16.4k|            initialized_ = false;
   64|  16.4k|        }
   65|  32.8k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEEclEPS5_:
   88|  16.4k|    {
   89|  16.4k|        destroy();
   90|  16.4k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEE7addressEv:
   97|  16.4k|    {
   98|  16.4k|        return storage_.data_;
   99|  16.4k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast4test6detail12stream_stateEE15set_initializedEv:
  102|  16.4k|    {
  103|  16.4k|        initialized_ = true;
  104|  16.4k|    }
_ZN5boost11make_sharedINS_5beast9websocket6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEJRNS6_10io_contextENS_4core17basic_string_viewIcEEEEENS_6detail15sp_if_not_arrayIT_E4typeEDpOT0_:
  223|  8.21k|{
  224|  8.21k|    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) );
  ------------------
  |  |  182|  8.21k|#define BOOST_SP_MSD( T ) boost::detail::sp_inplace_tag< boost::detail::sp_ms_deleter< T > >()
  ------------------
  225|       |
  226|  8.21k|    boost::detail::sp_ms_deleter< T > * pd = static_cast<boost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
  227|       |
  228|  8.21k|    void * pv = pd->address();
  229|       |
  230|  8.21k|    ::new( pv ) T( std::forward<Args>( args )... );
  231|  8.21k|    pd->set_initialized();
  232|       |
  233|  8.21k|    T * pt2 = static_cast< T* >( pv );
  234|       |
  235|  8.21k|    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
  236|  8.21k|    return boost::shared_ptr< T >( pt, pt2 );
  237|  8.21k|}
_ZN5boost6detail13sp_ms_deleterINS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEEC2Ev:
   69|  8.21k|    sp_ms_deleter() noexcept : initialized_( false )
   70|  8.21k|    {
   71|  8.21k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEED2Ev:
   83|  8.21k|    {
   84|  8.21k|        destroy();
   85|  8.21k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEE7destroyEv:
   48|  16.4k|    {
   49|  16.4k|        if( initialized_ )
  ------------------
  |  Branch (49:13): [True: 8.21k, False: 8.21k]
  ------------------
   50|  8.21k|        {
   51|  8.21k|#if defined( __GNUC__ )
   52|       |
   53|       |            // fixes incorrect aliasing warning
   54|  8.21k|            T * p = reinterpret_cast< T* >( storage_.data_ );
   55|  8.21k|            p->~T();
   56|       |
   57|       |#else
   58|       |
   59|       |            reinterpret_cast< T* >( storage_.data_ )->~T();
   60|       |
   61|       |#endif
   62|       |
   63|  8.21k|            initialized_ = false;
   64|  8.21k|        }
   65|  16.4k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEEclEPSB_:
   88|  8.21k|    {
   89|  8.21k|        destroy();
   90|  8.21k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEE7addressEv:
   97|  8.21k|    {
   98|  8.21k|        return storage_.data_;
   99|  8.21k|    }
_ZN5boost6detail13sp_ms_deleterINS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEE15set_initializedEv:
  102|  8.21k|    {
  103|  8.21k|        initialized_ = true;
  104|  8.21k|    }

_ZN5boost11make_uniqueIA_hEENSt3__19enable_ifIXsr6detail21sp_is_unbounded_arrayIT_EE5valueENS2_10unique_ptrIS4_NS2_14default_deleteIS4_EEEEE4typeEm:
   50|  1.88k|{
   51|  1.88k|    return std::unique_ptr<T>(new typename std::remove_extent<T>::type[size]());
   52|  1.88k|}
_ZN5boost18make_unique_noinitIA_hEENSt3__19enable_ifIXsr6detail21sp_is_unbounded_arrayIT_EE5valueENS2_10unique_ptrIS4_NS2_14default_deleteIS4_EEEEE4typeEm:
   58|  2.27k|{
   59|  2.27k|    return std::unique_ptr<T>(new typename std::remove_extent<T>::type[size]);
   60|  2.27k|}

_ZN5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEC2IS4_NS_6detail14sp_inplace_tagINS7_13sp_ms_deleterIS4_EEEEEEPT_T0_:
  292|  8.21k|    template<class Y, class D> shared_ptr( Y * p, D d ): px( p ), pn( p, static_cast< D&& >( d ) )
  293|  8.21k|    {
  294|  8.21k|        boost::detail::sp_deleter_construct( this, p );
  295|  8.21k|    }
_ZN5boost6detail20sp_deleter_constructINS_5beast4test6detail19stream_service_implES5_EEvPNS_10shared_ptrIT_EEPT0_:
  224|  8.21k|{
  225|  8.21k|    boost::detail::sp_enable_shared_from_this( ppx, p, p );
  226|  8.21k|}
_ZNK5boost10shared_ptrINS_5beast4test6detail19stream_service_implEE29_internal_get_untyped_deleterEv:
  624|  8.21k|    {
  625|  8.21k|        return pn.get_untyped_deleter();
  626|  8.21k|    }
_ZN5boost6detail26sp_enable_shared_from_thisEz:
  189|  49.2k|{
  190|  49.2k|}
_ZN5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEC2IS4_EERKNS0_IT_EEPS4_:
  347|  8.21k|    shared_ptr( shared_ptr<Y> const & r, element_type * p ) noexcept : px( p ), pn( r.pn )
  348|  8.21k|    {
  349|  8.21k|    }
_ZN5boost10shared_ptrINS_5beast4test6detail12stream_stateEEC2IS4_NS_6detail14sp_inplace_tagINS7_13sp_ms_deleterIS4_EEEEEEPT_T0_:
  292|  16.4k|    template<class Y, class D> shared_ptr( Y * p, D d ): px( p ), pn( p, static_cast< D&& >( d ) )
  293|  16.4k|    {
  294|  16.4k|        boost::detail::sp_deleter_construct( this, p );
  295|  16.4k|    }
_ZN5boost6detail20sp_deleter_constructINS_5beast4test6detail12stream_stateES5_EEvPNS_10shared_ptrIT_EEPT0_:
  224|  16.4k|{
  225|  16.4k|    boost::detail::sp_enable_shared_from_this( ppx, p, p );
  226|  16.4k|}
_ZNK5boost10shared_ptrINS_5beast4test6detail12stream_stateEE29_internal_get_untyped_deleterEv:
  624|  16.4k|    {
  625|  16.4k|        return pn.get_untyped_deleter();
  626|  16.4k|    }
_ZN5boost6detail21sp_assert_convertibleINS_5beast4test6detail19stream_service_implES5_EEvv:
  197|  16.4k|{
  198|  16.4k|    static_assert( sp_convertible< Y, T >::value, "incompatible pointer type" );
  199|  16.4k|}
_ZN5boost10shared_ptrINS_5beast4test6detail12stream_stateEEC2IS4_EERKNS0_IT_EEPS4_:
  347|  16.4k|    shared_ptr( shared_ptr<Y> const & r, element_type * p ) noexcept : px( p ), pn( r.pn )
  348|  16.4k|    {
  349|  16.4k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEptEv:
  549|  98.5k|    {
  550|  98.5k|        BOOST_ASSERT( px != 0 );
  ------------------
  |  |   66|  98.5k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  551|  98.5k|        return px;
  552|  98.5k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail12stream_stateEE3getEv:
  563|  16.4k|    {
  564|  16.4k|        return px;
  565|  16.4k|    }
_ZN5boost10shared_ptrINS_5beast4test6detail12stream_stateEEC2IS4_EERKNS_8weak_ptrIT_EENS_6detail14sp_nothrow_tagE:
  330|   375k|    noexcept : px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() )
  331|   375k|    {
  332|   375k|        if( !pn.empty() )
  ------------------
  |  Branch (332:13): [True: 349k, False: 25.5k]
  ------------------
  333|   349k|        {
  334|   349k|            px = r.px;
  335|   349k|        }
  336|   375k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail12stream_stateEEcvbEv:
  568|   375k|    {
  569|   375k|        return px != 0;
  570|   375k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail12stream_stateEEptEv:
  549|  3.27M|    {
  550|  3.27M|        BOOST_ASSERT( px != 0 );
  ------------------
  |  |   66|  3.27M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  551|  3.27M|        return px;
  552|  3.27M|    }
_ZN5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEC2IS4_EERKNS_8weak_ptrIT_EENS_6detail14sp_nothrow_tagE:
  330|  16.4k|    noexcept : px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() )
  331|  16.4k|    {
  332|  16.4k|        if( !pn.empty() )
  ------------------
  |  Branch (332:13): [True: 16.4k, False: 0]
  ------------------
  333|  16.4k|        {
  334|  16.4k|            px = r.px;
  335|  16.4k|        }
  336|  16.4k|    }
_ZNK5boost10shared_ptrINS_5beast4test6detail19stream_service_implEEcvbEv:
  568|  16.4k|    {
  569|  16.4k|        return px != 0;
  570|  16.4k|    }
_ZN5boost10shared_ptrINS_5beast9websocket6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEEC2ISA_NS_6detail14sp_inplace_tagINSD_13sp_ms_deleterISA_EEEEEEPT_T0_:
  292|  8.21k|    template<class Y, class D> shared_ptr( Y * p, D d ): px( p ), pn( p, static_cast< D&& >( d ) )
  293|  8.21k|    {
  294|  8.21k|        boost::detail::sp_deleter_construct( this, p );
  295|  8.21k|    }
_ZN5boost6detail20sp_deleter_constructINS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeESB_EEvPNS_10shared_ptrIT_EEPT0_:
  224|  8.21k|{
  225|  8.21k|    boost::detail::sp_enable_shared_from_this( ppx, p, p );
  226|  8.21k|}
_ZNK5boost10shared_ptrINS_5beast9websocket6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEE29_internal_get_untyped_deleterEv:
  624|  8.21k|    {
  625|  8.21k|        return pn.get_untyped_deleter();
  626|  8.21k|    }
_ZN5boost6detail26sp_enable_shared_from_thisINS_5beast9websocket6streamINS2_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeESB_NS3_6detail7service9impl_typeEEEvPKNS_10shared_ptrIT_EEPKT0_PKNS_23enable_shared_from_thisIT1_EE:
  164|  16.4k|{
  165|  16.4k|    if( pe != 0 )
  ------------------
  |  Branch (165:9): [True: 8.21k, False: 8.21k]
  ------------------
  166|  8.21k|    {
  167|  8.21k|        pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );
  168|  8.21k|    }
  169|  16.4k|}
_ZN5boost10shared_ptrINS_5beast9websocket6detail7service9impl_typeEEC2INS2_6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEEERKNS0_IT_EEPS5_:
  347|  8.21k|    shared_ptr( shared_ptr<Y> const & r, element_type * p ) noexcept : px( p ), pn( r.pn )
  348|  8.21k|    {
  349|  8.21k|    }
_ZN5boost6detail21sp_assert_convertibleINS_5beast9websocket6detail7service9impl_typeES6_EEvv:
  197|  8.21k|{
  198|  8.21k|    static_assert( sp_convertible< Y, T >::value, "incompatible pointer type" );
  199|  8.21k|}
_ZN5boost10shared_ptrINS_5beast9websocket6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEEC2ISA_EERKNS0_IT_EEPSA_:
  347|  8.21k|    shared_ptr( shared_ptr<Y> const & r, element_type * p ) noexcept : px( p ), pn( r.pn )
  348|  8.21k|    {
  349|  8.21k|    }
_ZNK5boost10shared_ptrINS_5beast9websocket6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEEptEv:
  549|  2.28M|    {
  550|  2.28M|        BOOST_ASSERT( px != 0 );
  ------------------
  |  |   66|  2.28M|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  551|  2.28M|        return px;
  552|  2.28M|    }
_ZNK5boost10shared_ptrINS_5beast9websocket6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEEcvbEv:
  568|  8.21k|    {
  569|  8.21k|        return px != 0;
  570|  8.21k|    }
_ZN5boost6detail21sp_assert_convertibleINS_5beast4test6detail12stream_stateES5_EEvv:
  197|  16.4k|{
  198|  16.4k|    static_assert( sp_convertible< Y, T >::value, "incompatible pointer type" );
  199|  16.4k|}
_ZNK5boost10shared_ptrINS_5beast9websocket6streamINS1_4test12basic_streamINS_4asio15any_io_executorEEELb1EE9impl_typeEEdeEv:
  543|   722k|    {
  544|   722k|        BOOST_ASSERT( px != 0 );
  ------------------
  |  |   66|   722k|# define BOOST_ASSERT(expr) assert(expr)
  ------------------
  545|   722k|        return *px;
  546|   722k|    }

_ZN5boost8weak_ptrINS_5beast4test6detail19stream_service_implEEC2IS4_EERKNS_10shared_ptrIT_EENS_6detail24sp_enable_if_convertibleIS8_S4_E4typeE:
  102|  16.4k|    noexcept : px( r.px ), pn( r.pn )
  103|  16.4k|    {
  104|  16.4k|        boost::detail::sp_assert_convertible< Y, T >();
  105|  16.4k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail19stream_service_implEEC2EOS5_:
   87|  16.4k|    noexcept : px( r.px ), pn( static_cast< boost::detail::weak_count && >( r.pn ) )
   88|  16.4k|    {
   89|  16.4k|        r.px = 0;
   90|  16.4k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail12stream_stateEEC2Ev:
   35|  33.7k|    constexpr weak_ptr() noexcept : px(0), pn()
   36|  33.7k|    {
   37|  33.7k|    }
_ZNK5boost8weak_ptrINS_5beast4test6detail12stream_stateEE4lockEv:
  150|   375k|    {
  151|   375k|        return shared_ptr<T>( *this, boost::detail::sp_nothrow_tag() );
  152|   375k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail12stream_stateEE5resetEv:
  175|  17.3k|    {
  176|  17.3k|        this_type().swap(*this);
  177|  17.3k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail12stream_stateEE4swapERS5_:
  180|  17.3k|    {
  181|  17.3k|        std::swap(px, other.px);
  182|  17.3k|        pn.swap(other.pn);
  183|  17.3k|    }
_ZNK5boost8weak_ptrINS_5beast4test6detail19stream_service_implEE4lockEv:
  150|  16.4k|    {
  151|  16.4k|        return shared_ptr<T>( *this, boost::detail::sp_nothrow_tag() );
  152|  16.4k|    }
_ZN5boost8weak_ptrINS_5beast9websocket6detail7service9impl_typeEEC2Ev:
   35|  8.21k|    constexpr weak_ptr() noexcept : px(0), pn()
   36|  8.21k|    {
   37|  8.21k|    }
_ZNK5boost8weak_ptrINS_5beast9websocket6detail7service9impl_typeEE7expiredEv:
  160|  8.21k|    {
  161|  8.21k|        return pn.use_count() == 0;
  162|  8.21k|    }
_ZN5boost8weak_ptrINS_5beast9websocket6detail7service9impl_typeEEaSIS5_EERS6_RKNS_10shared_ptrIT_EE:
  140|  8.21k|    {
  141|  8.21k|        boost::detail::sp_assert_convertible< Y, T >();
  142|       |
  143|  8.21k|        px = r.px;
  144|  8.21k|        pn = r.pn;
  145|       |
  146|  8.21k|        return *this;
  147|  8.21k|    }
_ZN5boost8weak_ptrINS_5beast4test6detail12stream_stateEEaSIS4_EERS5_RKNS_10shared_ptrIT_EE:
  140|  16.4k|    {
  141|  16.4k|        boost::detail::sp_assert_convertible< Y, T >();
  142|       |
  143|  16.4k|        px = r.px;
  144|  16.4k|        pn = r.pn;
  145|       |
  146|  16.4k|        return *this;
  147|  16.4k|    }

_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEEC2Ev:
 1003|  9.26k|  {
 1004|       |#ifdef BOOST_STATIC_STRING_CPP20
 1005|       |    term();
 1006|       |#endif
 1007|  9.26k|  }
_ZN5boost14static_strings6detail18static_string_baseILm123EcNSt3__111char_traitsIcEEEC2Ev:
  320|  9.26k|  static_string_base() noexcept { };
_ZN5boost14static_strings16to_static_stringEm:
 6194|    502|{
 6195|    502|  return detail::to_static_string_int_impl<
 6196|    502|    std::numeric_limits<unsigned long>::digits10 + 1>(value);
 6197|    502|}
_ZN5boost14static_strings6detail25to_static_string_int_implILm20EmEENS0_19basic_static_stringIXT_EcNSt3__111char_traitsIcEEEET0_:
  551|    502|{
  552|    502|  char buffer[N];
  553|    502|  const auto digits_end = std::end(buffer);
  554|    502|  const auto digits_begin = integer_to_string<std::char_traits<char>, Integer>(
  555|    502|    digits_end, value, std::is_signed<Integer>{});
  556|    502|  return static_string<N>(digits_begin, std::distance(digits_begin, digits_end));
  557|    502|}
_ZN5boost14static_strings6detail17integer_to_stringINSt3__111char_traitsIcEEmEEPcS6_T0_NS3_17integral_constantIbLb0EEE:
  481|    502|{
  482|    502|  if (value == 0)
  ------------------
  |  Branch (482:7): [True: 11, False: 491]
  ------------------
  483|     11|  {
  484|     11|    Traits::assign(*--str_end, '0');
  485|     11|    return str_end;
  486|     11|  }
  487|  1.47k|  for (; value > 0; value /= 10)
  ------------------
  |  Branch (487:10): [True: 982, False: 491]
  ------------------
  488|    982|    Traits::assign(*--str_end, "0123456789"[value % 10]);
  489|    491|  return str_end;
  490|    502|}
_ZN5boost14static_strings19basic_static_stringILm20EcNSt3__111char_traitsIcEEEC2EPKcm:
 1058|    502|  {
 1059|    502|    assign(s, count);
 1060|    502|  }
_ZN5boost14static_strings6detail18static_string_baseILm20EcNSt3__111char_traitsIcEEEC2Ev:
  320|    502|  static_string_base() noexcept { };
_ZN5boost14static_strings19basic_static_stringILm20EcNSt3__111char_traitsIcEEE6assignEPKcm:
 6450|    502|{
 6451|    502|  if (count > max_size())
  ------------------
  |  Branch (6451:7): [True: 0, False: 502]
  ------------------
 6452|      0|    detail::throw_exception<std::length_error>(
 6453|      0|      "count > max_size()");
 6454|    502|  this->set_size(count);
 6455|    502|  traits_type::move(data(), s, size());
 6456|    502|  return term();
 6457|    502|}
_ZNK5boost14static_strings19basic_static_stringILm20EcNSt3__111char_traitsIcEEE8max_sizeEv:
 2148|    502|  {
 2149|    502|    return N;
 2150|    502|  }
_ZN5boost14static_strings6detail18static_string_baseILm20EcNSt3__111char_traitsIcEEE8set_sizeEm:
  346|    502|  {
  347|       |    // Functions that set size will throw
  348|       |    // if the new size would exceed max_size()
  349|       |    // therefore we can guarantee that this will
  350|       |    // not lose data.
  351|    502|    return size_ = size_type(n);
  352|    502|  }
_ZN5boost14static_strings19basic_static_stringILm20EcNSt3__111char_traitsIcEEE4dataEv:
 1894|    502|  {
 1895|    502|    return this->data_impl();
 1896|    502|  }
_ZN5boost14static_strings6detail18static_string_baseILm20EcNSt3__111char_traitsIcEEE9data_implEv:
  325|    502|  {
  326|    502|    return data_;
  327|    502|  }
_ZNK5boost14static_strings19basic_static_stringILm20EcNSt3__111char_traitsIcEEE4sizeEv:
 2116|  1.00k|  {
 2117|  1.00k|    return this->size_impl();
 2118|  1.00k|  }
_ZNK5boost14static_strings6detail18static_string_baseILm20EcNSt3__111char_traitsIcEEE9size_implEv:
  339|  1.00k|  {
  340|  1.00k|    return size_;
  341|  1.00k|  }
_ZN5boost14static_strings19basic_static_stringILm20EcNSt3__111char_traitsIcEEE4termEv:
 5437|    502|  {
 5438|    502|    this->term_impl();
 5439|    502|    return *this;
 5440|    502|  }
_ZN5boost14static_strings6detail18static_string_baseILm20EcNSt3__111char_traitsIcEEE9term_implEv:
  357|    502|  {
  358|    502|    Traits::assign(data_[size_], value_type());
  359|    502|  }
_ZNK5boost14static_strings19basic_static_stringILm20EcNSt3__111char_traitsIcEEE4dataEv:
 1915|    502|  {
 1916|    502|    return this->data_impl();
 1917|    502|  }
_ZNK5boost14static_strings6detail18static_string_baseILm20EcNSt3__111char_traitsIcEEE9data_implEv:
  332|    502|  {
  333|    502|    return data_;
  334|    502|  }
_ZN5boost14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEEC2Ev:
 1003|  4.64k|  {
 1004|       |#ifdef BOOST_STATIC_STRING_CPP20
 1005|       |    term();
 1006|       |#endif
 1007|  4.64k|  }
_ZN5boost14static_strings6detail18static_string_baseILm28EcNSt3__111char_traitsIcEEEC2Ev:
  320|  4.64k|  static_string_base() noexcept { };
_ZN5boost14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEE6resizeEm:
 3697|  9.28k|  {
 3698|  9.28k|    resize(n, value_type());
 3699|  9.28k|  }
_ZN5boost14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEE6resizeEmc:
 6658|  9.28k|{
 6659|  9.28k|  if (n > max_size())
  ------------------
  |  Branch (6659:7): [True: 0, False: 9.28k]
  ------------------
 6660|      0|    detail::throw_exception<std::length_error>(
 6661|      0|      "n > max_size()");
 6662|  9.28k|  const auto curr_size = size();
 6663|  9.28k|  if(n > curr_size)
  ------------------
  |  Branch (6663:6): [True: 4.64k, False: 4.64k]
  ------------------
 6664|  4.64k|    traits_type::assign(data() + curr_size, n - curr_size, c);
 6665|  9.28k|  this->set_size(n);
 6666|  9.28k|  term();
 6667|  9.28k|}
_ZNK5boost14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEE4sizeEv:
 2116|  13.9k|  {
 2117|  13.9k|    return this->size_impl();
 2118|  13.9k|  }
_ZNK5boost14static_strings6detail18static_string_baseILm28EcNSt3__111char_traitsIcEEE9size_implEv:
  339|  13.9k|  {
  340|  13.9k|    return size_;
  341|  13.9k|  }
_ZN5boost14static_strings6detail18static_string_baseILm28EcNSt3__111char_traitsIcEEE8set_sizeEm:
  346|  9.28k|  {
  347|       |    // Functions that set size will throw
  348|       |    // if the new size would exceed max_size()
  349|       |    // therefore we can guarantee that this will
  350|       |    // not lose data.
  351|  9.28k|    return size_ = size_type(n);
  352|  9.28k|  }
_ZN5boost14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEE4termEv:
 5437|  9.28k|  {
 5438|  9.28k|    this->term_impl();
 5439|  9.28k|    return *this;
 5440|  9.28k|  }
_ZN5boost14static_strings6detail18static_string_baseILm28EcNSt3__111char_traitsIcEEE9term_implEv:
  357|  9.28k|  {
  358|  9.28k|    Traits::assign(data_[size_], value_type());
  359|  9.28k|  }
_ZNK5boost14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEE8max_sizeEv:
 2148|  13.9k|  {
 2149|  13.9k|    return N;
 2150|  13.9k|  }
_ZN5boost14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEE4dataEv:
 1894|  9.28k|  {
 1895|  9.28k|    return this->data_impl();
 1896|  9.28k|  }
_ZN5boost14static_strings6detail18static_string_baseILm28EcNSt3__111char_traitsIcEEE9data_implEv:
  325|  9.28k|  {
  326|  9.28k|    return data_;
  327|  9.28k|  }
_ZNK5boost14static_strings19basic_static_stringILm28EcNSt3__111char_traitsIcEEE4dataEv:
 1915|  4.64k|  {
 1916|  4.64k|    return this->data_impl();
 1917|  4.64k|  }
_ZNK5boost14static_strings6detail18static_string_baseILm28EcNSt3__111char_traitsIcEEE9data_implEv:
  332|  4.64k|  {
  333|  4.64k|    return data_;
  334|  4.64k|  }
_ZN5boost14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEEC2EPKc:
 1068|  2.56k|  {
 1069|  2.56k|    assign(s);
 1070|  2.56k|  }
_ZN5boost14static_strings6detail18static_string_baseILm512EcNSt3__111char_traitsIcEEEC2Ev:
  320|  2.56k|  static_string_base() noexcept { };
_ZN5boost14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEE6assignEPKc:
 1521|  2.56k|  {
 1522|  2.56k|    return assign(s, traits_type::length(s));
 1523|  2.56k|  }
_ZN5boost14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEE6assignEPKcm:
 6450|  2.56k|{
 6451|  2.56k|  if (count > max_size())
  ------------------
  |  Branch (6451:7): [True: 0, False: 2.56k]
  ------------------
 6452|      0|    detail::throw_exception<std::length_error>(
 6453|      0|      "count > max_size()");
 6454|  2.56k|  this->set_size(count);
 6455|  2.56k|  traits_type::move(data(), s, size());
 6456|  2.56k|  return term();
 6457|  2.56k|}
_ZNK5boost14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEE8max_sizeEv:
 2148|  2.56k|  {
 2149|  2.56k|    return N;
 2150|  2.56k|  }
_ZN5boost14static_strings6detail18static_string_baseILm512EcNSt3__111char_traitsIcEEE8set_sizeEm:
  346|  2.56k|  {
  347|       |    // Functions that set size will throw
  348|       |    // if the new size would exceed max_size()
  349|       |    // therefore we can guarantee that this will
  350|       |    // not lose data.
  351|  2.56k|    return size_ = size_type(n);
  352|  2.56k|  }
_ZN5boost14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEE4dataEv:
 1894|  2.56k|  {
 1895|  2.56k|    return this->data_impl();
 1896|  2.56k|  }
_ZN5boost14static_strings6detail18static_string_baseILm512EcNSt3__111char_traitsIcEEE9data_implEv:
  325|  2.56k|  {
  326|  2.56k|    return data_;
  327|  2.56k|  }
_ZNK5boost14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEE4sizeEv:
 2116|  5.13k|  {
 2117|  5.13k|    return this->size_impl();
 2118|  5.13k|  }
_ZNK5boost14static_strings6detail18static_string_baseILm512EcNSt3__111char_traitsIcEEE9size_implEv:
  339|  5.13k|  {
  340|  5.13k|    return size_;
  341|  5.13k|  }
_ZN5boost14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEE4termEv:
 5437|  2.56k|  {
 5438|  2.56k|    this->term_impl();
 5439|  2.56k|    return *this;
 5440|  2.56k|  }
_ZN5boost14static_strings6detail18static_string_baseILm512EcNSt3__111char_traitsIcEEE9term_implEv:
  357|  2.56k|  {
  358|  2.56k|    Traits::assign(data_[size_], value_type());
  359|  2.56k|  }
_ZNK5boost14static_strings19basic_static_stringILm512EcNSt3__111char_traitsIcEEE4dataEv:
 1915|  2.56k|  {
 1916|  2.56k|    return this->data_impl();
 1917|  2.56k|  }
_ZNK5boost14static_strings6detail18static_string_baseILm512EcNSt3__111char_traitsIcEEE9data_implEv:
  332|  2.56k|  {
  333|  2.56k|    return data_;
  334|  2.56k|  }
_ZNK5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE4sizeEv:
 2116|  2.11k|  {
 2117|  2.11k|    return this->size_impl();
 2118|  2.11k|  }
_ZNK5boost14static_strings6detail18static_string_baseILm123EcNSt3__111char_traitsIcEEE9size_implEv:
  339|  2.11k|  {
  340|  2.11k|    return size_;
  341|  2.11k|  }
_ZNK5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE5emptyEv:
 2100|    905|  {
 2101|    905|    return size() == 0;
 2102|    905|  }
_ZNK5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE4dataEv:
 1915|    118|  {
 1916|    118|    return this->data_impl();
 1917|    118|  }
_ZNK5boost14static_strings6detail18static_string_baseILm123EcNSt3__111char_traitsIcEEE9data_implEv:
  332|    118|  {
  333|    118|    return data_;
  334|    118|  }
_ZN5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEEC2Ev:
 1003|   557k|  {
 1004|       |#ifdef BOOST_STATIC_STRING_CPP20
 1005|       |    term();
 1006|       |#endif
 1007|   557k|  }
_ZN5boost14static_strings6detail18static_string_baseILm125EcNSt3__111char_traitsIcEEEC2Ev:
  320|   557k|  static_string_base() noexcept { };
_ZNK5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEE8max_sizeEv:
 2148|  1.11M|  {
 2149|  1.11M|    return N;
 2150|  1.11M|  }
_ZN5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEE6resizeEm:
 3697|   557k|  {
 3698|   557k|    resize(n, value_type());
 3699|   557k|  }
_ZN5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEE6resizeEmc:
 6658|   557k|{
 6659|   557k|  if (n > max_size())
  ------------------
  |  Branch (6659:7): [True: 0, False: 557k]
  ------------------
 6660|      0|    detail::throw_exception<std::length_error>(
 6661|      0|      "n > max_size()");
 6662|   557k|  const auto curr_size = size();
 6663|   557k|  if(n > curr_size)
  ------------------
  |  Branch (6663:6): [True: 556k, False: 1.56k]
  ------------------
 6664|   556k|    traits_type::assign(data() + curr_size, n - curr_size, c);
 6665|   557k|  this->set_size(n);
 6666|   557k|  term();
 6667|   557k|}
_ZN5boost14static_strings6detail18static_string_baseILm125EcNSt3__111char_traitsIcEEE8set_sizeEm:
  346|   557k|  {
  347|       |    // Functions that set size will throw
  348|       |    // if the new size would exceed max_size()
  349|       |    // therefore we can guarantee that this will
  350|       |    // not lose data.
  351|   557k|    return size_ = size_type(n);
  352|   557k|  }
_ZN5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEE4termEv:
 5437|   557k|  {
 5438|   557k|    this->term_impl();
 5439|   557k|    return *this;
 5440|   557k|  }
_ZN5boost14static_strings6detail18static_string_baseILm125EcNSt3__111char_traitsIcEEE9term_implEv:
  357|   557k|  {
  358|   557k|    Traits::assign(data_[size_], value_type());
  359|   557k|  }
_ZN5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEE4dataEv:
 1894|  1.11M|  {
 1895|  1.11M|    return this->data_impl();
 1896|  1.11M|  }
_ZN5boost14static_strings6detail18static_string_baseILm125EcNSt3__111char_traitsIcEEE9data_implEv:
  325|  1.11M|  {
  326|  1.11M|    return data_;
  327|  1.11M|  }
_ZNK5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEE4sizeEv:
 2116|  2.71M|  {
 2117|  2.71M|    return this->size_impl();
 2118|  2.71M|  }
_ZNK5boost14static_strings6detail18static_string_baseILm125EcNSt3__111char_traitsIcEEE9size_implEv:
  339|  2.71M|  {
  340|  2.71M|    return size_;
  341|  2.71M|  }
_ZNK5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEE4dataEv:
 1915|   318k|  {
 1916|   318k|    return this->data_impl();
 1917|   318k|  }
_ZNK5boost14static_strings6detail18static_string_baseILm125EcNSt3__111char_traitsIcEEE9data_implEv:
  332|   318k|  {
  333|   318k|    return data_;
  334|   318k|  }
_ZNK5boost14static_strings19basic_static_stringILm125EcNSt3__111char_traitsIcEEE5emptyEv:
 2100|   320k|  {
 2101|   320k|    return size() == 0;
 2102|   320k|  }
_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEEaSERKS5_:
 1191|     59|  {
 1192|     59|    return assign(s);
 1193|     59|  }
_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE6assignERKS5_:
 1415|     59|  {
 1416|     59|    if (data() == s.data())
  ------------------
  |  Branch (1416:9): [True: 0, False: 59]
  ------------------
 1417|      0|      return *this;
 1418|     59|    return assign_unchecked(s.data(), s.size());
 1419|     59|  }
_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE16assign_uncheckedEPKcm:
 5519|     59|  {
 5520|     59|    this->set_size(count);
 5521|     59|    traits_type::copy(data(), s, size() + 1);
 5522|     59|    return *this;
 5523|     59|  }
_ZN5boost14static_strings6detail18static_string_baseILm123EcNSt3__111char_traitsIcEEE8set_sizeEm:
  346|    183|  {
  347|       |    // Functions that set size will throw
  348|       |    // if the new size would exceed max_size()
  349|       |    // therefore we can guarantee that this will
  350|       |    // not lose data.
  351|    183|    return size_ = size_type(n);
  352|    183|  }
_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE6resizeEm:
 3697|    124|  {
 3698|    124|    resize(n, value_type());
 3699|    124|  }
_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE6resizeEmc:
 6658|    124|{
 6659|    124|  if (n > max_size())
  ------------------
  |  Branch (6659:7): [True: 0, False: 124]
  ------------------
 6660|      0|    detail::throw_exception<std::length_error>(
 6661|      0|      "n > max_size()");
 6662|    124|  const auto curr_size = size();
 6663|    124|  if(n > curr_size)
  ------------------
  |  Branch (6663:6): [True: 75, False: 49]
  ------------------
 6664|     75|    traits_type::assign(data() + curr_size, n - curr_size, c);
 6665|    124|  this->set_size(n);
 6666|    124|  term();
 6667|    124|}
_ZNK5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE8max_sizeEv:
 2148|    124|  {
 2149|    124|    return N;
 2150|    124|  }
_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE4termEv:
 5437|    124|  {
 5438|    124|    this->term_impl();
 5439|    124|    return *this;
 5440|    124|  }
_ZN5boost14static_strings6detail18static_string_baseILm123EcNSt3__111char_traitsIcEEE9term_implEv:
  357|    124|  {
  358|    124|    Traits::assign(data_[size_], value_type());
  359|    124|  }
_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEEixEm:
 1775|    124|  {
 1776|    124|    return data()[pos];
 1777|    124|  }
_ZN5boost14static_strings19basic_static_stringILm123EcNSt3__111char_traitsIcEEE4dataEv:
 1894|    381|  {
 1895|    381|    return this->data_impl();
 1896|    381|  }
_ZN5boost14static_strings6detail18static_string_baseILm123EcNSt3__111char_traitsIcEEE9data_implEv:
  325|    381|  {
  326|    381|    return data_;
  327|    381|  }

_ZN5boost6system6detail11failed_implEiRKNS0_14error_categoryE:
  166|   113k|{
  167|   113k|    if( cat.id_ == system_category_id || cat.id_ == generic_category_id )
  ------------------
  |  Branch (167:9): [True: 44.4k, False: 68.9k]
  |  Branch (167:42): [True: 0, False: 68.9k]
  ------------------
  168|  44.4k|    {
  169|  44.4k|        return ev != 0;
  170|  44.4k|    }
  171|  68.9k|    else
  172|  68.9k|    {
  173|  68.9k|        return cat.failed( ev );
  174|  68.9k|    }
  175|   113k|}
_ZN5boost6systemeqERKNS0_14error_categoryES3_:
  112|  8.40k|    {
  113|  8.40k|        return rhs.id_ == 0? &lhs == &rhs: lhs.id_ == rhs.id_;
  ------------------
  |  Branch (113:16): [True: 2.37k, False: 6.02k]
  ------------------
  114|  8.40k|    }
_ZNK5boost6system14error_category6failedEi:
  107|  68.9k|    {
  108|  68.9k|        return ev != 0;
  109|  68.9k|    }
_ZN5boost6system14error_categoryC2Ey:
   91|      2|    explicit constexpr error_category( boost::ulong_long_type id ) noexcept: id_( id ), stdcat_(), sc_init_()
   92|      2|    {
   93|      2|    }

_ZN5boost6system10error_codeC2Ev:
  112|  4.35M|        d1_(), lc_flags_( 0 )
  113|  4.35M|    {
  114|  4.35M|    }
_ZN5boost6system10error_codeC2EiRKNS0_14error_categoryE:
  117|   113k|        d1_(), lc_flags_( 2 + detail::failed_impl( val, cat ) )
  118|   113k|    {
  119|   113k|        d1_.val_ = val;
  120|   113k|        d1_.cat_ = &cat;
  121|   113k|    }
_ZNK5boost6system10error_code7messageEv:
  240|    491|    {
  241|    491|        if( lc_flags_ == 1 )
  ------------------
  |  Branch (241:13): [True: 0, False: 491]
  ------------------
  242|      0|        {
  243|      0|            std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
  244|      0|            return ec.message();
  245|      0|        }
  246|    491|        else if( lc_flags_ == 0 )
  ------------------
  |  Branch (246:18): [True: 0, False: 491]
  ------------------
  247|      0|        {
  248|      0|            return detail::system_error_category_message( value() );
  249|      0|        }
  250|    491|        else
  251|    491|        {
  252|    491|            return category().message( value() );
  253|    491|        }
  254|    491|    }
_ZNK5boost6system10error_code5valueEv:
  201|   109k|    {
  202|   109k|        if( lc_flags_ != 1 )
  ------------------
  |  Branch (202:13): [True: 109k, False: 0]
  ------------------
  203|   109k|        {
  204|   109k|            return d1_.val_;
  205|   109k|        }
  206|      0|        else
  207|      0|        {
  208|      0|            std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
  209|       |
  210|      0|            unsigned cv = static_cast<unsigned>( ec.value() );
  211|      0|            unsigned ch = static_cast<unsigned>( reinterpret_cast<boost::uintptr_t>( &ec.category() ) % 2097143 ); // 2^21-9, prime
  212|       |
  213|      0|            return static_cast<int>( cv + 1000 * ch );
  214|      0|        }
  215|   109k|    }
_ZNK5boost6system10error_code8categoryEv:
  218|  19.6k|    {
  219|  19.6k|        if( lc_flags_ == 0 )
  ------------------
  |  Branch (219:13): [True: 0, False: 19.6k]
  ------------------
  220|      0|        {
  221|      0|            return system_category();
  222|      0|        }
  223|  19.6k|        else if( lc_flags_ == 1 )
  ------------------
  |  Branch (223:18): [True: 0, False: 19.6k]
  ------------------
  224|      0|        {
  225|      0|            return detail::interop_category();
  226|      0|        }
  227|  19.6k|        else
  228|  19.6k|        {
  229|  19.6k|            return *d1_.cat_;
  230|  19.6k|        }
  231|  19.6k|    }
_ZNK5boost6system10error_codecvbEv:
  306|  68.4M|    {
  307|  68.4M|        return failed();
  308|  68.4M|    }
_ZNK5boost6system10error_code6failedEv:
  288|  68.5M|    {
  289|  68.5M|        if( lc_flags_ & 1 )
  ------------------
  |  Branch (289:13): [True: 26.5k, False: 68.5M]
  ------------------
  290|  26.5k|        {
  291|  26.5k|            if( lc_flags_ == 1 )
  ------------------
  |  Branch (291:17): [True: 0, False: 26.5k]
  ------------------
  292|      0|            {
  293|      0|                std::error_code const& ec = *reinterpret_cast<std::error_code const*>( d2_ );
  294|      0|                return ec.value() != 0;
  295|      0|            }
  296|       |
  297|  26.5k|            return true;
  298|  26.5k|        }
  299|  68.5M|        else
  300|  68.5M|        {
  301|  68.5M|            return false;
  302|  68.5M|        }
  303|  68.5M|    }
_ZN5boost6system10error_codeC2INS_4asio5error12basic_errorsEEET_PNSt3__19enable_ifIXoosr18is_error_code_enumIS6_EE5valuesr3std18is_error_code_enumIS6_EE5valueEvE4typeE:
  134|  3.39k|        >::type* = 0 ) noexcept: d1_(), lc_flags_( 0 )
  135|  3.39k|    {
  136|  3.39k|        *this = make_error_code( e );
  137|  3.39k|    }
_ZN5boost6system10error_code6assignERKS1_PKNS_15source_locationE:
  181|  20.6k|    {
  182|  20.6k|        *this = error_code( ec, loc );
  183|  20.6k|    }
_ZN5boost6system10error_codeC2ERKS1_PKNS_15source_locationE:
  140|  20.6k|        d1_(), lc_flags_( 0 )
  141|  20.6k|    {
  142|  20.6k|        *this = ec;
  143|       |
  144|  20.6k|        if( ec.lc_flags_ != 0 && ec.lc_flags_ != 1 )
  ------------------
  |  Branch (144:13): [True: 15.9k, False: 4.64k]
  |  Branch (144:34): [True: 15.9k, False: 0]
  ------------------
  145|  15.9k|        {
  146|  15.9k|            lc_flags_ = ( loc? reinterpret_cast<boost::uintptr_t>( loc ): 2 ) | ( ec.lc_flags_ & 1 );
  ------------------
  |  Branch (146:27): [True: 15.9k, False: 0]
  ------------------
  147|  15.9k|        }
  148|  20.6k|    }
_ZN5boost6system10error_codeC2INS_5beast4http5errorEEET_PNSt3__19enable_ifIXoosr18is_error_code_enumIS6_EE5valuesr3std18is_error_code_enumIS6_EE5valueEvE4typeE:
  134|  44.9k|        >::type* = 0 ) noexcept: d1_(), lc_flags_( 0 )
  135|  44.9k|    {
  136|  44.9k|        *this = make_error_code( e );
  137|  44.9k|    }
_ZN5boost6system10error_code5clearEv:
  194|  16.4k|    {
  195|  16.4k|        *this = error_code();
  196|  16.4k|    }
_ZN5boost6system10error_codeaSINS_5beast4http5errorEEERNSt3__19enable_ifIXsr18is_error_code_enumIT_EE5valueES1_E4typeES8_:
  188|    178|    {
  189|    178|        *this = make_error_code( val );
  190|    178|        return *this;
  191|    178|    }
_ZN5boost6systemneERKNS0_10error_codeES3_:
  392|  9.75k|    {
  393|  9.75k|        return !( lhs == rhs );
  394|  9.75k|    }
_ZN5boost6system10error_codeC2INS_4asio5error11misc_errorsEEET_PNSt3__19enable_ifIXoosr18is_error_code_enumIS6_EE5valuesr3std18is_error_code_enumIS6_EE5valueEvE4typeE:
  134|  16.5k|        >::type* = 0 ) noexcept: d1_(), lc_flags_( 0 )
  135|  16.5k|    {
  136|  16.5k|        *this = make_error_code( e );
  137|  16.5k|    }
_ZN5boost6system10error_code6assignEiRKNS0_14error_categoryE:
  171|  2.35k|    {
  172|  2.35k|        *this = error_code( val, cat );
  173|  2.35k|    }
_ZN5boost6systemeqERKNS0_10error_codeES3_:
  351|  54.3k|    {
  352|  54.3k|        bool s1 = lhs.lc_flags_ == 1;
  353|  54.3k|        bool s2 = rhs.lc_flags_ == 1;
  354|       |
  355|  54.3k|        if( s1 != s2 ) return false;
  ------------------
  |  Branch (355:13): [True: 0, False: 54.3k]
  ------------------
  356|       |
  357|  54.3k|        if( s1 && s2 )
  ------------------
  |  Branch (357:13): [True: 0, False: 54.3k]
  |  Branch (357:19): [True: 0, False: 0]
  ------------------
  358|      0|        {
  359|      0|            std::error_code const& e1 = *reinterpret_cast<std::error_code const*>( lhs.d2_ );
  360|      0|            std::error_code const& e2 = *reinterpret_cast<std::error_code const*>( rhs.d2_ );
  361|       |
  362|      0|            return e1 == e2;
  363|      0|        }
  364|  54.3k|        else
  365|  54.3k|        {
  366|  54.3k|            return lhs.value() == rhs.value() && lhs.category() == rhs.category();
  ------------------
  |  Branch (366:20): [True: 8.40k, False: 45.8k]
  |  Branch (366:50): [True: 8.40k, False: 0]
  ------------------
  367|  54.3k|        }
  368|  54.3k|    }
_ZN5boost6system10error_codeC2INS_5beast9websocket5errorEEET_PNSt3__19enable_ifIXoosr18is_error_code_enumIS6_EE5valuesr3std18is_error_code_enumIS6_EE5valueEvE4typeE:
  134|  2.21k|        >::type* = 0 ) noexcept: d1_(), lc_flags_( 0 )
  135|  2.21k|    {
  136|  2.21k|        *this = make_error_code( e );
  137|  2.21k|    }
_ZN5boost6system10error_codeaSINS_5beast9websocket5errorEEERNSt3__19enable_ifIXsr18is_error_code_enumIT_EE5valueES1_E4typeES8_:
  188|    491|    {
  189|    491|        *this = make_error_code( val );
  190|    491|        return *this;
  191|    491|    }
_ZN5boost6system10error_codeC2INS_5beast4zlib5errorEEET_PNSt3__19enable_ifIXoosr18is_error_code_enumIS6_EE5valuesr3std18is_error_code_enumIS6_EE5valueEvE4typeE:
  134|  2.19k|        >::type* = 0 ) noexcept: d1_(), lc_flags_( 0 )
  135|  2.19k|    {
  136|  2.19k|        *this = make_error_code( e );
  137|  2.19k|    }

_ZN5boost6system15system_categoryEv:
   79|  44.4k|{
   80|  44.4k|    return detail::system_cat_holder<void>::instance;
   81|  44.4k|}

