grpc 1.63.0 → 1.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3339) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +415 -416
  3. data/include/grpc/compression.h +1 -2
  4. data/include/grpc/credentials.h +1221 -0
  5. data/include/grpc/event_engine/README.md +1 -1
  6. data/include/grpc/event_engine/endpoint_config.h +7 -7
  7. data/include/grpc/event_engine/event_engine.h +83 -20
  8. data/include/grpc/event_engine/extensible.h +5 -2
  9. data/include/grpc/event_engine/internal/memory_allocator_impl.h +4 -4
  10. data/include/grpc/event_engine/internal/slice_cast.h +1 -1
  11. data/include/grpc/event_engine/memory_allocator.h +3 -4
  12. data/include/grpc/event_engine/memory_request.h +19 -2
  13. data/include/grpc/event_engine/slice.h +3 -5
  14. data/include/grpc/event_engine/slice_buffer.h +6 -8
  15. data/include/grpc/grpc.h +8 -2
  16. data/include/grpc/grpc_audit_logging.h +3 -3
  17. data/include/grpc/grpc_crl_provider.h +5 -4
  18. data/include/grpc/grpc_posix.h +1 -2
  19. data/include/grpc/grpc_security.h +1 -1173
  20. data/include/grpc/impl/call.h +2 -2
  21. data/include/grpc/impl/channel_arg_names.h +10 -7
  22. data/include/grpc/impl/grpc_types.h +1 -2
  23. data/include/grpc/impl/slice_type.h +1 -2
  24. data/include/grpc/module.modulemap +2 -0
  25. data/include/grpc/passive_listener.h +62 -0
  26. data/include/grpc/status.h +1 -1
  27. data/include/grpc/support/alloc.h +1 -2
  28. data/include/grpc/support/atm.h +0 -13
  29. data/include/grpc/support/json.h +17 -18
  30. data/include/grpc/support/log.h +37 -64
  31. data/include/grpc/support/metrics.h +21 -6
  32. data/include/grpc/support/port_platform.h +31 -1
  33. data/include/grpc/support/sync_generic.h +2 -4
  34. data/include/grpc/support/sync_posix.h +1 -2
  35. data/include/grpc/support/time.h +1 -2
  36. data/src/core/call/request_buffer.cc +224 -0
  37. data/src/core/call/request_buffer.h +192 -0
  38. data/src/core/channelz/channel_trace.cc +180 -0
  39. data/src/core/channelz/channel_trace.h +138 -0
  40. data/src/core/channelz/channelz.cc +670 -0
  41. data/src/core/channelz/channelz.h +402 -0
  42. data/src/core/channelz/channelz_registry.cc +274 -0
  43. data/src/core/channelz/channelz_registry.h +101 -0
  44. data/src/core/client_channel/backup_poller.cc +25 -16
  45. data/src/core/client_channel/client_channel.cc +1415 -0
  46. data/src/core/client_channel/client_channel.h +245 -0
  47. data/src/core/client_channel/client_channel_args.h +21 -0
  48. data/src/core/client_channel/client_channel_factory.cc +2 -2
  49. data/src/core/client_channel/client_channel_factory.h +1 -2
  50. data/src/core/client_channel/client_channel_filter.cc +436 -1030
  51. data/src/core/client_channel/client_channel_filter.h +34 -87
  52. data/src/core/client_channel/client_channel_internal.h +26 -11
  53. data/src/core/client_channel/client_channel_plugin.cc +4 -18
  54. data/src/core/client_channel/client_channel_service_config.cc +3 -4
  55. data/src/core/client_channel/client_channel_service_config.h +13 -15
  56. data/src/core/client_channel/config_selector.h +25 -25
  57. data/src/core/client_channel/connector.h +4 -4
  58. data/src/core/client_channel/direct_channel.cc +83 -0
  59. data/src/core/client_channel/direct_channel.h +101 -0
  60. data/src/core/client_channel/dynamic_filters.cc +19 -16
  61. data/src/core/client_channel/dynamic_filters.h +9 -10
  62. data/src/core/client_channel/global_subchannel_pool.cc +2 -2
  63. data/src/core/client_channel/global_subchannel_pool.h +2 -3
  64. data/src/core/client_channel/lb_metadata.cc +119 -0
  65. data/src/core/client_channel/lb_metadata.h +55 -0
  66. data/src/core/client_channel/load_balanced_call_destination.cc +273 -0
  67. data/src/core/client_channel/load_balanced_call_destination.h +48 -0
  68. data/src/core/client_channel/local_subchannel_pool.cc +6 -7
  69. data/src/core/client_channel/local_subchannel_pool.h +1 -1
  70. data/src/core/client_channel/retry_filter.cc +9 -18
  71. data/src/core/client_channel/retry_filter.h +10 -18
  72. data/src/core/client_channel/retry_filter_legacy_call_data.cc +224 -335
  73. data/src/core/client_channel/retry_filter_legacy_call_data.h +18 -21
  74. data/src/core/client_channel/retry_interceptor.cc +408 -0
  75. data/src/core/client_channel/retry_interceptor.h +157 -0
  76. data/src/core/client_channel/retry_service_config.cc +11 -14
  77. data/src/core/client_channel/retry_service_config.h +22 -11
  78. data/src/core/client_channel/retry_throttle.cc +34 -20
  79. data/src/core/client_channel/retry_throttle.h +6 -9
  80. data/src/core/client_channel/subchannel.cc +333 -247
  81. data/src/core/client_channel/subchannel.h +52 -45
  82. data/src/core/client_channel/subchannel_interface_internal.h +1 -1
  83. data/src/core/client_channel/subchannel_pool_interface.cc +1 -5
  84. data/src/core/client_channel/subchannel_pool_interface.h +4 -7
  85. data/src/core/client_channel/subchannel_stream_client.cc +47 -62
  86. data/src/core/client_channel/subchannel_stream_client.h +13 -17
  87. data/src/core/config/config_vars.cc +152 -0
  88. data/src/core/config/config_vars.h +129 -0
  89. data/src/core/config/config_vars_non_generated.cc +49 -0
  90. data/src/core/config/core_configuration.cc +111 -0
  91. data/src/core/config/core_configuration.h +242 -0
  92. data/src/core/config/load_config.cc +78 -0
  93. data/src/core/config/load_config.h +54 -0
  94. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +29 -40
  95. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +11 -9
  96. data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
  97. data/src/core/ext/filters/census/grpc_context.cc +7 -10
  98. data/src/core/ext/filters/channel_idle/idle_filter_state.cc +1 -2
  99. data/src/core/ext/filters/channel_idle/idle_filter_state.h +0 -1
  100. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +45 -48
  101. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +22 -19
  102. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +31 -42
  103. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +13 -12
  104. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +3 -4
  105. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +7 -10
  106. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +198 -0
  107. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +97 -0
  108. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +80 -0
  109. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +86 -0
  110. data/src/core/ext/filters/http/client/http_client_filter.cc +19 -17
  111. data/src/core/ext/filters/http/client/http_client_filter.h +11 -9
  112. data/src/core/ext/filters/http/client_authority_filter.cc +18 -21
  113. data/src/core/ext/filters/http/client_authority_filter.h +13 -10
  114. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -2
  115. data/src/core/ext/filters/http/message_compress/compression_filter.cc +73 -72
  116. data/src/core/ext/filters/http/message_compress/compression_filter.h +32 -23
  117. data/src/core/ext/filters/http/server/http_server_filter.cc +20 -22
  118. data/src/core/ext/filters/http/server/http_server_filter.h +11 -9
  119. data/src/core/ext/filters/message_size/message_size_filter.cc +52 -73
  120. data/src/core/ext/filters/message_size/message_size_filter.h +38 -35
  121. data/src/core/ext/filters/rbac/rbac_filter.cc +19 -24
  122. data/src/core/ext/filters/rbac/rbac_filter.h +13 -12
  123. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +19 -13
  124. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +3 -5
  125. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +26 -33
  126. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +11 -9
  127. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +3 -4
  128. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +8 -10
  129. data/src/core/ext/transport/chttp2/alpn/alpn.cc +4 -5
  130. data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -1
  131. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +85 -118
  132. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -15
  133. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1008 -384
  134. data/src/core/ext/transport/chttp2/server/chttp2_server.h +221 -12
  135. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +27 -39
  136. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +1 -3
  137. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +10 -12
  138. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -3
  139. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +53 -0
  140. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +72 -0
  141. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +750 -598
  142. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +21 -23
  143. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -2
  144. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +2 -2
  145. data/src/core/ext/transport/chttp2/transport/decode_huff.h +2 -2
  146. data/src/core/ext/transport/chttp2/transport/flow_control.cc +12 -17
  147. data/src/core/ext/transport/chttp2/transport/flow_control.h +7 -12
  148. data/src/core/ext/transport/chttp2/transport/frame.cc +27 -10
  149. data/src/core/ext/transport/chttp2/transport/frame.h +14 -5
  150. data/src/core/ext/transport/chttp2/transport/frame_data.cc +21 -22
  151. data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -5
  152. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -18
  153. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -3
  154. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +16 -21
  155. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -3
  156. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +19 -20
  157. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  158. data/src/core/ext/transport/chttp2/transport/frame_security.cc +80 -0
  159. data/src/core/ext/transport/chttp2/transport/frame_security.h +44 -0
  160. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +41 -26
  161. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -4
  162. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +31 -10
  163. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -4
  164. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +21 -22
  165. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +18 -15
  166. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +10 -10
  167. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -4
  168. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +4 -5
  169. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +7 -10
  170. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +111 -105
  171. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +11 -13
  172. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +45 -20
  173. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +28 -9
  174. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +15 -7
  175. data/src/core/ext/transport/chttp2/transport/http2_settings.h +12 -6
  176. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -2
  177. data/src/core/ext/transport/chttp2/transport/internal.h +86 -85
  178. data/src/core/ext/transport/chttp2/transport/legacy_frame.h +1 -0
  179. data/src/core/ext/transport/chttp2/transport/parsing.cc +147 -133
  180. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +4 -5
  181. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.h +1 -1
  182. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +6 -9
  183. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +4 -9
  184. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +35 -21
  185. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +8 -9
  186. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +20 -21
  187. data/src/core/ext/transport/chttp2/transport/stream_lists.h +65 -0
  188. data/src/core/ext/transport/chttp2/transport/varint.cc +6 -6
  189. data/src/core/ext/transport/chttp2/transport/varint.h +2 -3
  190. data/src/core/ext/transport/chttp2/transport/write_size_policy.cc +4 -4
  191. data/src/core/ext/transport/chttp2/transport/write_size_policy.h +2 -3
  192. data/src/core/ext/transport/chttp2/transport/writing.cc +182 -150
  193. data/src/core/ext/transport/inproc/inproc_transport.cc +156 -76
  194. data/src/core/ext/transport/inproc/inproc_transport.h +2 -5
  195. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +139 -136
  196. data/src/core/ext/transport/inproc/legacy_inproc_transport.h +1 -4
  197. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +46 -15
  198. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +40 -18
  199. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +10 -4
  200. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +59 -27
  201. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +36 -18
  202. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +9 -4
  203. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +50 -15
  204. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +44 -22
  205. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +10 -4
  206. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +190 -55
  207. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +162 -84
  208. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +24 -4
  209. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +11 -5
  210. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +14 -4
  211. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +7 -4
  212. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +19 -6
  213. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +18 -8
  214. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +7 -4
  215. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +11 -10
  216. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +7 -1
  217. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +6 -4
  218. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +8 -7
  219. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +7 -1
  220. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +6 -4
  221. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +8 -7
  222. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +7 -1
  223. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +6 -4
  224. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +145 -82
  225. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +40 -27
  226. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +7 -4
  227. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +9 -6
  228. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +10 -4
  229. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +6 -4
  230. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +9 -8
  231. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.c +7 -1
  232. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +5 -4
  233. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +18 -8
  234. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +13 -6
  235. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +6 -4
  236. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +91 -34
  237. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +114 -48
  238. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +21 -4
  239. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +544 -254
  240. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +265 -149
  241. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +29 -4
  242. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +41 -14
  243. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +31 -17
  244. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +8 -4
  245. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +529 -141
  246. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +270 -143
  247. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +31 -4
  248. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +12 -7
  249. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +11 -5
  250. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +6 -4
  251. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +171 -27
  252. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +54 -27
  253. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +6 -4
  254. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +127 -35
  255. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +125 -63
  256. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +20 -4
  257. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +67 -27
  258. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +60 -26
  259. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +13 -4
  260. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +11 -6
  261. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +11 -5
  262. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +6 -4
  263. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +871 -72
  264. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +346 -75
  265. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +41 -4
  266. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +67 -25
  267. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +57 -27
  268. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +12 -4
  269. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +8 -5
  270. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +10 -4
  271. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +6 -4
  272. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +9 -6
  273. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +10 -4
  274. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +6 -4
  275. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +11 -5
  276. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +14 -4
  277. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +7 -4
  278. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +201 -62
  279. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +120 -53
  280. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +19 -4
  281. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +196 -62
  282. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +95 -53
  283. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +14 -4
  284. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +13 -5
  285. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +11 -5
  286. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +6 -4
  287. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +10 -7
  288. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +10 -4
  289. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +6 -4
  290. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +322 -76
  291. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +162 -84
  292. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +21 -4
  293. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +10 -7
  294. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +14 -4
  295. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +7 -4
  296. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +15 -7
  297. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +15 -5
  298. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +7 -4
  299. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +151 -0
  300. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +60 -0
  301. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +32 -0
  302. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +244 -31
  303. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +79 -21
  304. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +13 -4
  305. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +23 -11
  306. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +17 -7
  307. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +7 -4
  308. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +11 -6
  309. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +11 -5
  310. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +6 -4
  311. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +42 -11
  312. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +35 -17
  313. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +9 -4
  314. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +106 -34
  315. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +69 -37
  316. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +12 -4
  317. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +281 -37
  318. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +81 -27
  319. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +12 -4
  320. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +8 -5
  321. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +10 -4
  322. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +6 -4
  323. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +142 -47
  324. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +90 -47
  325. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +15 -4
  326. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +92 -129
  327. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +66 -57
  328. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +11 -5
  329. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +178 -13
  330. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +46 -14
  331. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +6 -4
  332. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +14 -7
  333. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +16 -6
  334. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +7 -4
  335. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +14 -9
  336. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +11 -5
  337. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +6 -4
  338. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +51 -22
  339. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +58 -24
  340. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +13 -4
  341. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +70 -22
  342. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +71 -29
  343. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +15 -4
  344. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +311 -38
  345. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +141 -63
  346. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +18 -4
  347. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +61 -13
  348. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +33 -19
  349. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +8 -4
  350. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +961 -237
  351. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +567 -273
  352. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +67 -4
  353. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +20 -10
  354. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +22 -8
  355. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +8 -4
  356. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +100 -35
  357. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +95 -45
  358. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +17 -4
  359. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +118 -16
  360. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +43 -12
  361. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +8 -4
  362. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +9 -6
  363. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +10 -4
  364. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +6 -4
  365. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +12 -7
  366. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +17 -7
  367. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +7 -4
  368. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +10 -7
  369. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +10 -4
  370. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +6 -4
  371. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +20 -8
  372. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +13 -7
  373. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +6 -4
  374. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +8 -5
  375. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +10 -4
  376. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +6 -4
  377. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +17 -10
  378. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +18 -8
  379. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +7 -4
  380. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +5 -6
  381. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +3 -2
  382. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +5 -5
  383. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +19 -10
  384. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +19 -9
  385. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +7 -4
  386. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +14 -11
  387. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +10 -4
  388. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +6 -4
  389. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +216 -102
  390. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +124 -57
  391. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +21 -4
  392. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +5 -4
  393. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +7 -1
  394. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +6 -4
  395. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +24 -11
  396. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +33 -11
  397. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +10 -4
  398. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +42 -22
  399. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +27 -13
  400. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +8 -4
  401. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +444 -0
  402. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +135 -0
  403. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +38 -0
  404. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +56 -13
  405. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +29 -13
  406. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +7 -4
  407. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +29 -12
  408. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +20 -10
  409. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +7 -4
  410. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +13 -8
  411. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +17 -7
  412. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +7 -4
  413. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +343 -134
  414. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +209 -121
  415. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +26 -4
  416. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +8 -5
  417. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +10 -4
  418. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +6 -4
  419. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +83 -10
  420. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +28 -11
  421. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +6 -4
  422. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +31 -14
  423. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +39 -17
  424. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +10 -4
  425. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +6 -5
  426. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +7 -1
  427. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +6 -4
  428. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +22 -11
  429. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +14 -8
  430. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +6 -4
  431. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +8 -5
  432. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +10 -4
  433. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +6 -4
  434. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +105 -0
  435. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +51 -0
  436. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +32 -0
  437. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -4
  438. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.c +3 -1
  439. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h +5 -4
  440. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +170 -31
  441. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +83 -37
  442. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +14 -4
  443. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +25 -12
  444. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +27 -13
  445. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +8 -4
  446. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +214 -63
  447. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +100 -61
  448. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +12 -4
  449. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +51 -13
  450. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +23 -11
  451. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +7 -4
  452. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +58 -20
  453. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +44 -26
  454. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +9 -4
  455. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +5 -4
  456. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.c +7 -1
  457. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +6 -4
  458. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +373 -58
  459. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +144 -61
  460. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +21 -4
  461. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +18 -8
  462. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +18 -8
  463. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +7 -4
  464. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +67 -25
  465. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +47 -25
  466. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +10 -4
  467. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +10 -7
  468. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +10 -4
  469. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +6 -4
  470. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +16 -6
  471. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +26 -8
  472. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +9 -4
  473. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +142 -0
  474. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +55 -0
  475. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +32 -0
  476. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +42 -6
  477. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +16 -7
  478. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +6 -4
  479. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +10 -9
  480. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +23 -1
  481. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +10 -4
  482. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +16 -8
  483. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +15 -5
  484. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +7 -4
  485. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +13 -5
  486. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +11 -5
  487. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +6 -4
  488. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +9 -6
  489. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +10 -4
  490. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +6 -4
  491. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +8 -5
  492. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +10 -4
  493. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +6 -4
  494. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +16 -9
  495. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +24 -10
  496. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +8 -4
  497. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +5 -4
  498. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.c +11 -1
  499. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +7 -4
  500. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +51 -10
  501. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +30 -9
  502. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +7 -4
  503. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +14 -6
  504. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +15 -5
  505. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +7 -4
  506. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +30 -12
  507. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +32 -14
  508. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +9 -4
  509. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +24 -10
  510. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +40 -10
  511. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +12 -4
  512. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +30 -17
  513. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +33 -11
  514. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +10 -4
  515. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +12 -7
  516. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +19 -5
  517. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +8 -4
  518. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +5 -4
  519. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.c +3 -1
  520. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.h +5 -4
  521. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +6 -5
  522. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +7 -1
  523. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +6 -4
  524. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +8 -7
  525. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +11 -1
  526. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +7 -4
  527. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +11 -10
  528. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +15 -1
  529. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +8 -4
  530. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +14 -9
  531. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +15 -5
  532. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +7 -4
  533. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +5 -4
  534. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.c +3 -1
  535. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.h +5 -4
  536. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +8 -7
  537. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +7 -1
  538. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +6 -4
  539. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +12 -7
  540. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +11 -5
  541. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +6 -4
  542. data/src/core/ext/upb-gen/google/api/annotations.upb.h +17 -7
  543. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +5 -2
  544. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +5 -4
  545. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +135 -36
  546. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +121 -56
  547. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +18 -4
  548. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +525 -69
  549. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +202 -68
  550. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +23 -4
  551. data/src/core/ext/upb-gen/google/api/http.upb.h +30 -16
  552. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +22 -8
  553. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +8 -4
  554. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +12 -6
  555. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +10 -4
  556. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +6 -4
  557. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +8 -6
  558. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +7 -1
  559. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +6 -4
  560. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +583 -181
  561. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +376 -215
  562. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +56 -21
  563. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +8 -6
  564. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +7 -1
  565. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +6 -4
  566. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +6 -4
  567. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.c +7 -1
  568. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +6 -4
  569. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +33 -10
  570. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +32 -14
  571. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +9 -4
  572. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +8 -6
  573. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +7 -1
  574. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +6 -4
  575. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +15 -13
  576. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +39 -1
  577. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +14 -4
  578. data/src/core/ext/upb-gen/google/rpc/status.upb.h +12 -6
  579. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +10 -4
  580. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +6 -4
  581. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +19 -10
  582. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +15 -5
  583. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +7 -4
  584. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +98 -39
  585. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +87 -37
  586. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +17 -4
  587. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +14 -8
  588. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +15 -5
  589. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +7 -4
  590. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +8 -6
  591. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +11 -1
  592. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +7 -4
  593. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +47 -22
  594. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +58 -20
  595. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +14 -4
  596. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +16 -8
  597. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +18 -4
  598. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +8 -4
  599. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +72 -19
  600. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +60 -22
  601. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +14 -4
  602. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +69 -23
  603. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +31 -12
  604. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +8 -4
  605. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +19 -9
  606. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +13 -6
  607. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +6 -4
  608. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +6 -5
  609. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.c +4 -1
  610. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +5 -4
  611. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +19 -9
  612. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +13 -6
  613. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +6 -4
  614. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +18 -8
  615. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +13 -6
  616. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +6 -4
  617. data/src/core/ext/upb-gen/validate/validate.upb.h +264 -172
  618. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +185 -87
  619. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +29 -5
  620. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +69 -23
  621. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +31 -12
  622. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +8 -4
  623. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +19 -9
  624. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +13 -6
  625. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +6 -4
  626. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +6 -5
  627. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.c +4 -1
  628. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +5 -4
  629. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +46 -18
  630. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +32 -11
  631. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +9 -4
  632. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +18 -8
  633. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +13 -6
  634. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +6 -4
  635. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +6 -5
  636. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +7 -1
  637. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +6 -4
  638. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +9 -6
  639. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +10 -4
  640. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +6 -4
  641. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +16 -9
  642. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +18 -8
  643. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +7 -4
  644. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +11 -4
  645. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +14 -4
  646. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +7 -4
  647. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +9 -6
  648. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +10 -4
  649. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +6 -4
  650. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +12 -7
  651. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +11 -5
  652. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +6 -4
  653. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +21 -11
  654. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +18 -8
  655. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +7 -4
  656. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +11 -8
  657. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +10 -4
  658. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +6 -4
  659. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +29 -10
  660. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +24 -6
  661. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +9 -4
  662. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +8 -5
  663. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +10 -4
  664. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +6 -4
  665. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +9 -6
  666. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +10 -4
  667. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +6 -4
  668. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +13 -5
  669. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +17 -7
  670. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +7 -4
  671. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +5 -4
  672. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +7 -1
  673. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +6 -4
  674. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +19 -6
  675. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +18 -8
  676. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +7 -4
  677. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +81 -22
  678. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +85 -43
  679. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +15 -4
  680. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +44 -7
  681. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +48 -22
  682. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +11 -4
  683. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +9 -6
  684. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +14 -4
  685. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +7 -4
  686. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +18 -10
  687. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +17 -7
  688. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +7 -4
  689. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +17 -8
  690. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +19 -9
  691. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +7 -4
  692. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +12 -10
  693. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +15 -1
  694. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +8 -4
  695. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +9 -6
  696. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +10 -4
  697. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +6 -4
  698. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +2 -1
  699. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +5 -4
  700. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +2 -1
  701. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +5 -4
  702. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +2 -1
  703. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +5 -4
  704. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +13 -11
  705. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +5 -4
  706. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +2 -1
  707. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +5 -4
  708. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +2 -1
  709. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +5 -4
  710. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +2 -1
  711. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +5 -4
  712. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +2 -1
  713. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +5 -4
  714. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +2 -1
  715. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +5 -4
  716. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +90 -82
  717. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +5 -4
  718. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +2 -1
  719. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +5 -4
  720. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +2 -1
  721. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +5 -4
  722. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +2 -1
  723. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +5 -4
  724. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +63 -61
  725. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -4
  726. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +223 -211
  727. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +10 -4
  728. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -1
  729. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +5 -4
  730. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +419 -393
  731. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +10 -4
  732. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +2 -1
  733. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +5 -4
  734. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +116 -106
  735. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +5 -4
  736. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +2 -1
  737. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +5 -4
  738. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +2 -1
  739. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +5 -4
  740. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +2 -1
  741. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +5 -4
  742. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +201 -147
  743. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +35 -4
  744. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +12 -12
  745. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +5 -4
  746. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +2 -1
  747. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +5 -4
  748. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +2 -1
  749. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +5 -4
  750. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +2 -1
  751. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +5 -4
  752. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +175 -165
  753. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +5 -4
  754. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +199 -188
  755. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +5 -4
  756. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +2 -1
  757. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +5 -4
  758. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +2 -1
  759. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +5 -4
  760. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +272 -255
  761. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +5 -4
  762. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -1
  763. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -4
  764. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +2 -1
  765. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +5 -4
  766. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +46 -0
  767. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +33 -0
  768. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +31 -20
  769. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +20 -4
  770. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -1
  771. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +5 -4
  772. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -1
  773. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +5 -4
  774. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -1
  775. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +5 -4
  776. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +41 -37
  777. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -4
  778. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +124 -94
  779. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +10 -4
  780. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +2 -1
  781. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +5 -4
  782. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +43 -40
  783. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -4
  784. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +60 -66
  785. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +5 -9
  786. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +75 -56
  787. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +5 -4
  788. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -1
  789. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +5 -4
  790. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +2 -1
  791. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +5 -4
  792. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +2 -1
  793. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +5 -4
  794. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +51 -49
  795. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +5 -4
  796. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +119 -97
  797. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +10 -4
  798. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +2 -1
  799. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +5 -4
  800. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +922 -895
  801. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +15 -4
  802. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +2 -1
  803. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +5 -4
  804. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +2 -1
  805. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +5 -4
  806. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +32 -21
  807. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +10 -4
  808. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +20 -18
  809. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +5 -4
  810. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -1
  811. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +5 -4
  812. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +2 -1
  813. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +5 -4
  814. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +2 -1
  815. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +5 -4
  816. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +2 -1
  817. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +5 -4
  818. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +2 -1
  819. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +5 -4
  820. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +17 -19
  821. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +5 -4
  822. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +2 -1
  823. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +5 -4
  824. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +23 -21
  825. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +5 -4
  826. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +147 -143
  827. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +5 -4
  828. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -1
  829. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -4
  830. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -1
  831. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +5 -4
  832. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -1
  833. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +5 -4
  834. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +87 -0
  835. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +48 -0
  836. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +38 -34
  837. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +5 -4
  838. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -1
  839. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -4
  840. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +2 -1
  841. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +5 -4
  842. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +465 -459
  843. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -4
  844. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +2 -1
  845. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +5 -4
  846. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +50 -0
  847. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +33 -0
  848. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -1
  849. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +5 -4
  850. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +96 -88
  851. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +10 -4
  852. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -1
  853. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -4
  854. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +204 -192
  855. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -4
  856. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +21 -18
  857. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +5 -4
  858. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +2 -1
  859. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -4
  860. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +2 -1
  861. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +5 -4
  862. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +150 -136
  863. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +10 -4
  864. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -1
  865. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +5 -4
  866. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +25 -23
  867. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +5 -4
  868. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +2 -1
  869. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -4
  870. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +2 -1
  871. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +5 -4
  872. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c +41 -0
  873. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h +33 -0
  874. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +28 -20
  875. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +5 -4
  876. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +2 -1
  877. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -4
  878. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +2 -1
  879. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +5 -4
  880. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +2 -1
  881. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +5 -4
  882. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +2 -1
  883. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +5 -4
  884. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +2 -1
  885. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +5 -4
  886. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +2 -1
  887. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +5 -4
  888. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +2 -1
  889. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +5 -4
  890. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +41 -34
  891. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +5 -4
  892. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +2 -1
  893. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +5 -4
  894. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +2 -1
  895. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +5 -4
  896. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +2 -1
  897. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +5 -4
  898. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -1
  899. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +5 -4
  900. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +2 -1
  901. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +5 -4
  902. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +2 -1
  903. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +5 -4
  904. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +2 -1
  905. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +5 -4
  906. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +2 -1
  907. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +5 -4
  908. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +2 -1
  909. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +5 -4
  910. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +2 -1
  911. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +5 -4
  912. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +2 -1
  913. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +5 -4
  914. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +2 -1
  915. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +5 -4
  916. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +2 -1
  917. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +5 -4
  918. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +2 -1
  919. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +5 -4
  920. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +110 -108
  921. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +5 -4
  922. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +103 -79
  923. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +15 -4
  924. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +2 -1
  925. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +5 -4
  926. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +2 -1
  927. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +5 -4
  928. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +2 -1
  929. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +5 -4
  930. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +485 -458
  931. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +10 -4
  932. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +2 -1
  933. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +5 -4
  934. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +2 -1
  935. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +5 -4
  936. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +2 -1
  937. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +5 -4
  938. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +2 -1
  939. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +5 -4
  940. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +2 -1
  941. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +5 -4
  942. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +2 -1
  943. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +5 -4
  944. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +2 -1
  945. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +5 -4
  946. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +2 -1
  947. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +5 -4
  948. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +2 -1
  949. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +5 -4
  950. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +2 -1
  951. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +5 -4
  952. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +2 -1
  953. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +5 -4
  954. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +2 -1
  955. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +5 -4
  956. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +2 -1
  957. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +5 -4
  958. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +2 -1
  959. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +5 -4
  960. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +2 -1
  961. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +5 -4
  962. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +2 -1
  963. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +5 -4
  964. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +2 -1
  965. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +5 -4
  966. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +2 -1
  967. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +5 -4
  968. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +2 -1
  969. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +5 -4
  970. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +2 -1
  971. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +5 -4
  972. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +2 -1
  973. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +5 -4
  974. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +2 -1
  975. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +5 -4
  976. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +2 -1
  977. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +5 -4
  978. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +2 -1
  979. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +5 -4
  980. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +2 -1
  981. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +5 -4
  982. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +2 -1
  983. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +5 -4
  984. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +2 -1
  985. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +5 -4
  986. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +2 -1
  987. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +5 -4
  988. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +2 -1
  989. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +5 -4
  990. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +2 -1
  991. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +5 -4
  992. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +2 -1
  993. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +5 -4
  994. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +2 -1
  995. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +5 -4
  996. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +2 -1
  997. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +5 -4
  998. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +2 -1
  999. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +5 -4
  1000. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +2 -1
  1001. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +5 -4
  1002. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +2 -1
  1003. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +5 -4
  1004. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +2 -1
  1005. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +5 -4
  1006. data/src/core/filter/blackboard.cc +33 -0
  1007. data/src/core/filter/blackboard.h +70 -0
  1008. data/src/core/filter/filter_args.h +112 -0
  1009. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.cc +81 -0
  1010. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.h +37 -0
  1011. data/src/core/handshaker/handshaker.cc +196 -0
  1012. data/src/core/handshaker/handshaker.h +170 -0
  1013. data/src/core/handshaker/handshaker_factory.h +89 -0
  1014. data/src/core/handshaker/handshaker_registry.cc +60 -0
  1015. data/src/core/handshaker/handshaker_registry.h +69 -0
  1016. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +357 -0
  1017. data/src/core/handshaker/http_connect/http_connect_handshaker.h +42 -0
  1018. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +296 -0
  1019. data/src/core/handshaker/http_connect/http_proxy_mapper.h +52 -0
  1020. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +57 -0
  1021. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +46 -0
  1022. data/src/core/handshaker/proxy_mapper.h +52 -0
  1023. data/src/core/handshaker/proxy_mapper_registry.cc +70 -0
  1024. data/src/core/handshaker/proxy_mapper_registry.h +74 -0
  1025. data/src/core/handshaker/security/secure_endpoint.cc +578 -0
  1026. data/src/core/handshaker/security/secure_endpoint.h +41 -0
  1027. data/src/core/handshaker/security/security_handshaker.cc +626 -0
  1028. data/src/core/handshaker/security/security_handshaker.h +45 -0
  1029. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +232 -0
  1030. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.h +39 -0
  1031. data/src/core/lib/address_utils/parse_address.cc +33 -44
  1032. data/src/core/lib/address_utils/parse_address.h +1 -3
  1033. data/src/core/lib/address_utils/sockaddr_utils.cc +22 -19
  1034. data/src/core/lib/address_utils/sockaddr_utils.h +0 -2
  1035. data/src/core/lib/channel/channel_args.cc +33 -39
  1036. data/src/core/lib/channel/channel_args.h +42 -29
  1037. data/src/core/lib/channel/channel_args_preconditioning.cc +2 -2
  1038. data/src/core/lib/channel/channel_args_preconditioning.h +2 -3
  1039. data/src/core/lib/channel/channel_stack.cc +19 -81
  1040. data/src/core/lib/channel/channel_stack.h +27 -63
  1041. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  1042. data/src/core/lib/channel/channel_stack_builder.h +1 -7
  1043. data/src/core/lib/channel/channel_stack_builder_impl.cc +5 -157
  1044. data/src/core/lib/channel/channel_stack_builder_impl.h +13 -3
  1045. data/src/core/lib/channel/connected_channel.cc +50 -707
  1046. data/src/core/lib/channel/promise_based_filter.cc +258 -333
  1047. data/src/core/lib/channel/promise_based_filter.h +265 -635
  1048. data/src/core/lib/channel/status_util.cc +2 -4
  1049. data/src/core/lib/channel/status_util.h +1 -2
  1050. data/src/core/lib/compression/compression.cc +9 -11
  1051. data/src/core/lib/compression/compression_internal.cc +16 -19
  1052. data/src/core/lib/compression/compression_internal.h +5 -8
  1053. data/src/core/lib/compression/message_compress.cc +16 -18
  1054. data/src/core/lib/compression/message_compress.h +1 -2
  1055. data/src/core/lib/debug/trace.cc +48 -67
  1056. data/src/core/lib/debug/trace.h +2 -97
  1057. data/src/core/lib/debug/trace_flags.cc +245 -0
  1058. data/src/core/lib/debug/trace_flags.h +132 -0
  1059. data/src/core/lib/debug/trace_impl.h +125 -0
  1060. data/src/core/lib/event_engine/ares_resolver.cc +171 -100
  1061. data/src/core/lib/event_engine/ares_resolver.h +17 -28
  1062. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +16 -19
  1063. data/src/core/lib/event_engine/cf_engine/cf_engine.h +3 -5
  1064. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +53 -41
  1065. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +6 -10
  1066. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +3 -5
  1067. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +29 -36
  1068. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +7 -10
  1069. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +8 -12
  1070. data/src/core/lib/event_engine/channel_args_endpoint_config.h +7 -10
  1071. data/src/core/lib/event_engine/common_closures.h +3 -6
  1072. data/src/core/lib/event_engine/default_event_engine.cc +69 -43
  1073. data/src/core/lib/event_engine/default_event_engine.h +27 -37
  1074. data/src/core/lib/event_engine/default_event_engine_factory.cc +9 -16
  1075. data/src/core/lib/event_engine/default_event_engine_factory.h +3 -6
  1076. data/src/core/lib/event_engine/event_engine.cc +37 -9
  1077. data/src/core/lib/event_engine/event_engine_context.h +5 -4
  1078. data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -4
  1079. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +2 -5
  1080. data/src/core/lib/event_engine/extensions/supports_fd.h +27 -6
  1081. data/src/core/lib/event_engine/extensions/tcp_trace.h +40 -0
  1082. data/src/core/lib/event_engine/forkable.cc +14 -17
  1083. data/src/core/lib/event_engine/forkable.h +2 -17
  1084. data/src/core/lib/event_engine/grpc_polled_fd.h +4 -8
  1085. data/src/core/lib/event_engine/handle_containers.h +3 -7
  1086. data/src/core/lib/event_engine/memory_allocator_factory.h +3 -7
  1087. data/src/core/lib/event_engine/nameser.h +1 -1
  1088. data/src/core/lib/event_engine/poller.h +3 -6
  1089. data/src/core/lib/event_engine/posix.h +3 -6
  1090. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +32 -80
  1091. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +8 -12
  1092. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +31 -82
  1093. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +4 -8
  1094. data/src/core/lib/event_engine/posix_engine/event_poller.h +3 -7
  1095. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +4 -7
  1096. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -4
  1097. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +5 -10
  1098. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +7 -10
  1099. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +2 -5
  1100. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +9 -13
  1101. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -5
  1102. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +5 -8
  1103. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +2 -5
  1104. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +116 -113
  1105. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +24 -27
  1106. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +93 -71
  1107. data/src/core/lib/event_engine/posix_engine/posix_engine.h +18 -19
  1108. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +3 -6
  1109. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +30 -35
  1110. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +15 -17
  1111. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +29 -37
  1112. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +3 -7
  1113. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +51 -46
  1114. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +12 -14
  1115. data/src/core/lib/event_engine/posix_engine/timer.cc +9 -12
  1116. data/src/core/lib/event_engine/posix_engine/timer.h +8 -13
  1117. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +4 -7
  1118. data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -4
  1119. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +21 -32
  1120. data/src/core/lib/event_engine/posix_engine/timer_manager.h +8 -13
  1121. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +11 -18
  1122. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -30
  1123. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +5 -8
  1124. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -5
  1125. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +4 -7
  1126. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -5
  1127. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +2 -4
  1128. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -5
  1129. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +2 -4
  1130. data/src/core/lib/event_engine/query_extensions.h +5 -6
  1131. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +4 -9
  1132. data/src/core/lib/event_engine/resolved_address.cc +10 -11
  1133. data/src/core/lib/event_engine/resolved_address_internal.h +3 -6
  1134. data/src/core/lib/event_engine/shim.cc +5 -7
  1135. data/src/core/lib/event_engine/shim.h +2 -4
  1136. data/src/core/lib/event_engine/slice.cc +7 -11
  1137. data/src/core/lib/event_engine/slice_buffer.cc +4 -8
  1138. data/src/core/lib/event_engine/tcp_socket_utils.cc +27 -34
  1139. data/src/core/lib/event_engine/tcp_socket_utils.h +6 -9
  1140. data/src/core/lib/event_engine/thread_local.cc +4 -6
  1141. data/src/core/lib/event_engine/thread_local.h +3 -5
  1142. data/src/core/lib/event_engine/thread_pool/thread_count.cc +7 -12
  1143. data/src/core/lib/event_engine/thread_pool/thread_count.h +8 -24
  1144. data/src/core/lib/event_engine/thread_pool/thread_pool.h +3 -8
  1145. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +3 -6
  1146. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +49 -58
  1147. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +11 -19
  1148. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +52 -27
  1149. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +9 -11
  1150. data/src/core/lib/event_engine/time_util.cc +5 -8
  1151. data/src/core/lib/event_engine/time_util.h +3 -7
  1152. data/src/core/lib/event_engine/utils.cc +21 -10
  1153. data/src/core/lib/event_engine/utils.h +11 -8
  1154. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +160 -136
  1155. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +6 -10
  1156. data/src/core/lib/event_engine/windows/iocp.cc +26 -26
  1157. data/src/core/lib/event_engine/windows/iocp.h +4 -7
  1158. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +6 -10
  1159. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +2 -4
  1160. data/src/core/lib/event_engine/windows/win_socket.cc +49 -40
  1161. data/src/core/lib/event_engine/windows/win_socket.h +10 -14
  1162. data/src/core/lib/event_engine/windows/windows_endpoint.cc +60 -48
  1163. data/src/core/lib/event_engine/windows/windows_endpoint.h +4 -6
  1164. data/src/core/lib/event_engine/windows/windows_engine.cc +248 -140
  1165. data/src/core/lib/event_engine/windows/windows_engine.h +145 -37
  1166. data/src/core/lib/event_engine/windows/windows_listener.cc +31 -47
  1167. data/src/core/lib/event_engine/windows/windows_listener.h +6 -9
  1168. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +5 -7
  1169. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +4 -9
  1170. data/src/core/lib/event_engine/work_queue/work_queue.h +3 -7
  1171. data/src/core/lib/experiments/config.cc +59 -32
  1172. data/src/core/lib/experiments/config.h +55 -2
  1173. data/src/core/lib/experiments/experiments.cc +323 -366
  1174. data/src/core/lib/experiments/experiments.h +153 -147
  1175. data/src/core/lib/iomgr/buffer_list.cc +7 -8
  1176. data/src/core/lib/iomgr/buffer_list.h +23 -24
  1177. data/src/core/lib/iomgr/call_combiner.cc +42 -68
  1178. data/src/core/lib/iomgr/call_combiner.h +12 -17
  1179. data/src/core/lib/iomgr/cfstream_handle.cc +14 -22
  1180. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  1181. data/src/core/lib/iomgr/closure.cc +2 -2
  1182. data/src/core/lib/iomgr/closure.h +15 -22
  1183. data/src/core/lib/iomgr/combiner.cc +38 -53
  1184. data/src/core/lib/iomgr/combiner.h +2 -6
  1185. data/src/core/lib/iomgr/endpoint.cc +1 -7
  1186. data/src/core/lib/iomgr/endpoint.h +4 -6
  1187. data/src/core/lib/iomgr/endpoint_cfstream.cc +45 -76
  1188. data/src/core/lib/iomgr/endpoint_pair_posix.cc +8 -10
  1189. data/src/core/lib/iomgr/endpoint_pair_windows.cc +16 -17
  1190. data/src/core/lib/iomgr/error.cc +26 -36
  1191. data/src/core/lib/iomgr/error.h +8 -11
  1192. data/src/core/lib/iomgr/error_cfstream.cc +1 -3
  1193. data/src/core/lib/iomgr/ev_apple.cc +16 -24
  1194. data/src/core/lib/iomgr/ev_epoll1_linux.cc +81 -126
  1195. data/src/core/lib/iomgr/ev_poll_posix.cc +62 -62
  1196. data/src/core/lib/iomgr/ev_posix.cc +68 -60
  1197. data/src/core/lib/iomgr/ev_posix.h +9 -12
  1198. data/src/core/lib/iomgr/event_engine_shims/closure.cc +11 -16
  1199. data/src/core/lib/iomgr/event_engine_shims/closure.h +1 -3
  1200. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +36 -56
  1201. data/src/core/lib/iomgr/event_engine_shims/endpoint.h +1 -2
  1202. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +10 -16
  1203. data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +1 -2
  1204. data/src/core/lib/iomgr/exec_ctx.cc +15 -25
  1205. data/src/core/lib/iomgr/exec_ctx.h +21 -142
  1206. data/src/core/lib/iomgr/executor.cc +60 -70
  1207. data/src/core/lib/iomgr/executor.h +2 -2
  1208. data/src/core/lib/iomgr/fork_posix.cc +11 -15
  1209. data/src/core/lib/iomgr/fork_windows.cc +3 -2
  1210. data/src/core/lib/iomgr/internal_errqueue.cc +5 -6
  1211. data/src/core/lib/iomgr/iocp_windows.cc +16 -15
  1212. data/src/core/lib/iomgr/iocp_windows.h +0 -1
  1213. data/src/core/lib/iomgr/iomgr.cc +19 -26
  1214. data/src/core/lib/iomgr/iomgr.h +0 -1
  1215. data/src/core/lib/iomgr/iomgr_internal.cc +1 -2
  1216. data/src/core/lib/iomgr/iomgr_internal.h +0 -1
  1217. data/src/core/lib/iomgr/iomgr_posix.cc +2 -1
  1218. data/src/core/lib/iomgr/iomgr_windows.cc +7 -6
  1219. data/src/core/lib/iomgr/lockfree_event.cc +12 -21
  1220. data/src/core/lib/iomgr/lockfree_event.h +1 -2
  1221. data/src/core/lib/iomgr/nameser.h +1 -1
  1222. data/src/core/lib/iomgr/polling_entity.cc +17 -11
  1223. data/src/core/lib/iomgr/pollset.cc +2 -2
  1224. data/src/core/lib/iomgr/pollset.h +0 -3
  1225. data/src/core/lib/iomgr/pollset_set.cc +2 -2
  1226. data/src/core/lib/iomgr/pollset_set_windows.cc +0 -1
  1227. data/src/core/lib/iomgr/pollset_windows.cc +2 -6
  1228. data/src/core/lib/iomgr/pollset_windows.h +0 -1
  1229. data/src/core/lib/iomgr/port.h +2 -2
  1230. data/src/core/lib/iomgr/python_util.h +1 -2
  1231. data/src/core/lib/iomgr/resolve_address.cc +4 -7
  1232. data/src/core/lib/iomgr/resolve_address.h +3 -6
  1233. data/src/core/lib/iomgr/resolve_address_impl.h +0 -1
  1234. data/src/core/lib/iomgr/resolve_address_posix.cc +12 -23
  1235. data/src/core/lib/iomgr/resolve_address_windows.cc +9 -14
  1236. data/src/core/lib/iomgr/resolved_address.h +0 -1
  1237. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +5 -6
  1238. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  1239. data/src/core/lib/iomgr/socket_factory_posix.h +1 -2
  1240. data/src/core/lib/iomgr/socket_mutator.cc +3 -5
  1241. data/src/core/lib/iomgr/socket_mutator.h +2 -4
  1242. data/src/core/lib/iomgr/socket_utils.h +0 -1
  1243. data/src/core/lib/iomgr/socket_utils_common_posix.cc +45 -52
  1244. data/src/core/lib/iomgr/socket_utils_linux.cc +1 -3
  1245. data/src/core/lib/iomgr/socket_utils_posix.cc +5 -7
  1246. data/src/core/lib/iomgr/socket_utils_posix.h +1 -2
  1247. data/src/core/lib/iomgr/socket_utils_windows.cc +1 -3
  1248. data/src/core/lib/iomgr/socket_windows.cc +11 -14
  1249. data/src/core/lib/iomgr/socket_windows.h +1 -2
  1250. data/src/core/lib/iomgr/tcp_client.cc +2 -2
  1251. data/src/core/lib/iomgr/tcp_client.h +1 -2
  1252. data/src/core/lib/iomgr/tcp_client_cfstream.cc +12 -20
  1253. data/src/core/lib/iomgr/tcp_client_posix.cc +24 -36
  1254. data/src/core/lib/iomgr/tcp_client_windows.cc +9 -12
  1255. data/src/core/lib/iomgr/tcp_posix.cc +127 -195
  1256. data/src/core/lib/iomgr/tcp_posix.h +1 -3
  1257. data/src/core/lib/iomgr/tcp_server.cc +2 -2
  1258. data/src/core/lib/iomgr/tcp_server.h +3 -4
  1259. data/src/core/lib/iomgr/tcp_server_posix.cc +62 -82
  1260. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -1
  1261. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +13 -17
  1262. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +13 -14
  1263. data/src/core/lib/iomgr/tcp_server_windows.cc +34 -42
  1264. data/src/core/lib/iomgr/tcp_windows.cc +38 -66
  1265. data/src/core/lib/iomgr/timer.cc +2 -2
  1266. data/src/core/lib/iomgr/timer.h +2 -3
  1267. data/src/core/lib/iomgr/timer_generic.cc +73 -106
  1268. data/src/core/lib/iomgr/timer_generic.h +0 -1
  1269. data/src/core/lib/iomgr/timer_heap.cc +4 -6
  1270. data/src/core/lib/iomgr/timer_manager.cc +28 -53
  1271. data/src/core/lib/iomgr/timer_manager.h +0 -1
  1272. data/src/core/lib/iomgr/unix_sockets_posix.cc +5 -6
  1273. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -3
  1274. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -4
  1275. data/src/core/lib/iomgr/vsock.cc +5 -8
  1276. data/src/core/lib/iomgr/vsock.h +1 -3
  1277. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +2 -4
  1278. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -7
  1279. data/src/core/lib/promise/activity.cc +6 -5
  1280. data/src/core/lib/promise/activity.h +86 -34
  1281. data/src/core/lib/promise/all_ok.h +52 -9
  1282. data/src/core/lib/promise/arena_promise.h +1 -3
  1283. data/src/core/lib/promise/cancel_callback.h +34 -6
  1284. data/src/core/lib/promise/context.h +18 -9
  1285. data/src/core/lib/promise/detail/basic_seq.h +33 -20
  1286. data/src/core/lib/promise/detail/join_state.h +555 -812
  1287. data/src/core/lib/promise/detail/promise_factory.h +122 -46
  1288. data/src/core/lib/promise/detail/promise_like.h +48 -13
  1289. data/src/core/lib/promise/detail/seq_state.h +1378 -2254
  1290. data/src/core/lib/promise/detail/status.h +36 -14
  1291. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +1 -2
  1292. data/src/core/lib/promise/for_each.h +108 -41
  1293. data/src/core/lib/promise/if.h +67 -35
  1294. data/src/core/lib/promise/interceptor_list.h +31 -45
  1295. data/src/core/lib/promise/latch.h +39 -46
  1296. data/src/core/lib/promise/loop.h +80 -27
  1297. data/src/core/lib/promise/map.h +185 -21
  1298. data/src/core/lib/promise/observable.h +181 -0
  1299. data/src/core/lib/promise/party.cc +331 -154
  1300. data/src/core/lib/promise/party.h +391 -396
  1301. data/src/core/lib/promise/pipe.h +45 -68
  1302. data/src/core/lib/promise/poll.h +122 -41
  1303. data/src/core/lib/promise/prioritized_race.h +16 -22
  1304. data/src/core/lib/promise/promise.h +13 -8
  1305. data/src/core/lib/promise/race.h +12 -15
  1306. data/src/core/lib/promise/seq.h +98 -70
  1307. data/src/core/lib/promise/sleep.cc +7 -8
  1308. data/src/core/lib/promise/sleep.h +17 -5
  1309. data/src/core/lib/promise/status_flag.h +178 -56
  1310. data/src/core/lib/promise/try_join.h +156 -25
  1311. data/src/core/lib/promise/try_seq.h +152 -89
  1312. data/src/core/lib/resource_quota/api.cc +4 -7
  1313. data/src/core/lib/resource_quota/api.h +3 -5
  1314. data/src/core/lib/resource_quota/arena.cc +64 -87
  1315. data/src/core/lib/resource_quota/arena.h +224 -210
  1316. data/src/core/lib/resource_quota/connection_quota.cc +8 -10
  1317. data/src/core/lib/resource_quota/connection_quota.h +7 -4
  1318. data/src/core/lib/resource_quota/memory_quota.cc +100 -97
  1319. data/src/core/lib/resource_quota/memory_quota.h +31 -25
  1320. data/src/core/lib/resource_quota/periodic_update.cc +5 -5
  1321. data/src/core/lib/resource_quota/periodic_update.h +1 -3
  1322. data/src/core/lib/resource_quota/resource_quota.cc +2 -2
  1323. data/src/core/lib/resource_quota/resource_quota.h +6 -8
  1324. data/src/core/lib/resource_quota/thread_quota.cc +4 -4
  1325. data/src/core/lib/resource_quota/thread_quota.h +3 -4
  1326. data/src/core/lib/security/authorization/audit_logging.cc +10 -12
  1327. data/src/core/lib/security/authorization/audit_logging.h +3 -5
  1328. data/src/core/lib/security/authorization/authorization_engine.h +1 -1
  1329. data/src/core/lib/security/authorization/authorization_policy_provider.h +5 -7
  1330. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +3 -4
  1331. data/src/core/lib/security/authorization/evaluate_args.cc +14 -19
  1332. data/src/core/lib/security/authorization/evaluate_args.h +4 -6
  1333. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +4 -5
  1334. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -3
  1335. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +24 -40
  1336. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +16 -15
  1337. data/src/core/lib/security/authorization/matchers.cc +5 -8
  1338. data/src/core/lib/security/authorization/matchers.h +4 -6
  1339. data/src/core/lib/security/authorization/rbac_policy.cc +3 -3
  1340. data/src/core/lib/security/authorization/rbac_policy.h +5 -8
  1341. data/src/core/lib/security/authorization/stdout_logger.cc +7 -7
  1342. data/src/core/lib/security/authorization/stdout_logger.h +2 -3
  1343. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +7 -8
  1344. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +6 -6
  1345. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +0 -1
  1346. data/src/core/lib/security/context/security_context.cc +51 -49
  1347. data/src/core/lib/security/context/security_context.h +46 -17
  1348. data/src/core/lib/security/credentials/alts/alts_credentials.cc +6 -7
  1349. data/src/core/lib/security/credentials/alts/alts_credentials.h +11 -7
  1350. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +4 -5
  1351. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +1 -2
  1352. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +3 -5
  1353. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +3 -5
  1354. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -7
  1355. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +4 -5
  1356. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +2 -2
  1357. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -2
  1358. data/src/core/lib/security/credentials/call_creds_util.cc +8 -8
  1359. data/src/core/lib/security/credentials/call_creds_util.h +2 -2
  1360. data/src/core/lib/security/credentials/channel_creds_registry.h +5 -6
  1361. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +14 -13
  1362. data/src/core/lib/security/credentials/composite/composite_credentials.cc +18 -21
  1363. data/src/core/lib/security/credentials/composite/composite_credentials.h +9 -8
  1364. data/src/core/lib/security/credentials/credentials.cc +20 -20
  1365. data/src/core/lib/security/credentials/credentials.h +13 -14
  1366. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +336 -340
  1367. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +58 -46
  1368. data/src/core/lib/security/credentials/external/aws_request_signer.cc +4 -5
  1369. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  1370. data/src/core/lib/security/credentials/external/external_account_credentials.cc +408 -374
  1371. data/src/core/lib/security/credentials/external/external_account_credentials.h +127 -59
  1372. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +89 -53
  1373. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +30 -9
  1374. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +103 -129
  1375. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +20 -22
  1376. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -4
  1377. data/src/core/lib/security/credentials/fake/fake_credentials.h +10 -9
  1378. data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +195 -0
  1379. data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h +90 -0
  1380. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +5 -7
  1381. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +62 -79
  1382. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -7
  1383. data/src/core/lib/security/credentials/iam/iam_credentials.cc +10 -15
  1384. data/src/core/lib/security/credentials/iam/iam_credentials.h +8 -7
  1385. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
  1386. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +4 -4
  1387. data/src/core/lib/security/credentials/jwt/json_token.cc +28 -31
  1388. data/src/core/lib/security/credentials/jwt/json_token.h +2 -4
  1389. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +25 -32
  1390. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -11
  1391. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +80 -88
  1392. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -5
  1393. data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
  1394. data/src/core/lib/security/credentials/local/local_credentials.h +5 -5
  1395. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +203 -303
  1396. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +50 -73
  1397. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +22 -36
  1398. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +11 -13
  1399. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +49 -61
  1400. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +8 -9
  1401. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +40 -41
  1402. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +16 -17
  1403. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +0 -2
  1404. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +127 -58
  1405. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +18 -17
  1406. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +8 -12
  1407. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +9 -10
  1408. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +27 -29
  1409. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -1
  1410. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +6 -11
  1411. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +7 -11
  1412. data/src/core/lib/security/credentials/tls/tls_credentials.cc +22 -26
  1413. data/src/core/lib/security/credentials/tls/tls_credentials.h +7 -5
  1414. data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -7
  1415. data/src/core/lib/security/credentials/tls/tls_utils.h +1 -2
  1416. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc +304 -0
  1417. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +181 -0
  1418. data/src/core/lib/security/credentials/xds/xds_credentials.cc +22 -19
  1419. data/src/core/lib/security/credentials/xds/xds_credentials.h +7 -9
  1420. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +36 -41
  1421. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
  1422. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +31 -31
  1423. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +3 -3
  1424. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +8 -10
  1425. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +5 -6
  1426. data/src/core/lib/security/security_connector/load_system_roots.h +1 -2
  1427. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +8 -10
  1428. data/src/core/lib/security/security_connector/load_system_roots_supported.h +1 -2
  1429. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +4 -6
  1430. data/src/core/lib/security/security_connector/local/local_security_connector.cc +36 -36
  1431. data/src/core/lib/security/security_connector/local/local_security_connector.h +3 -3
  1432. data/src/core/lib/security/security_connector/security_connector.cc +11 -15
  1433. data/src/core/lib/security/security_connector/security_connector.h +8 -11
  1434. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +28 -32
  1435. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -5
  1436. data/src/core/lib/security/security_connector/ssl_utils.cc +42 -42
  1437. data/src/core/lib/security/security_connector/ssl_utils.h +6 -9
  1438. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +58 -71
  1439. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +19 -20
  1440. data/src/core/lib/security/transport/auth_filters.h +114 -22
  1441. data/src/core/lib/security/transport/client_auth_filter.cc +115 -33
  1442. data/src/core/lib/security/transport/server_auth_filter.cc +22 -39
  1443. data/src/core/lib/security/util/json_util.cc +4 -6
  1444. data/src/core/lib/security/util/json_util.h +1 -1
  1445. data/src/core/lib/slice/percent_encoding.cc +4 -6
  1446. data/src/core/lib/slice/slice.cc +13 -15
  1447. data/src/core/lib/slice/slice.h +8 -11
  1448. data/src/core/lib/slice/slice_buffer.cc +20 -21
  1449. data/src/core/lib/slice/slice_buffer.h +4 -6
  1450. data/src/core/lib/slice/slice_internal.h +4 -7
  1451. data/src/core/lib/slice/slice_refcount.h +7 -15
  1452. data/src/core/lib/slice/slice_string_helpers.cc +3 -3
  1453. data/src/core/lib/slice/slice_string_helpers.h +1 -3
  1454. data/src/core/lib/surface/byte_buffer.cc +2 -4
  1455. data/src/core/lib/surface/byte_buffer_reader.cc +5 -7
  1456. data/src/core/lib/surface/call.cc +201 -3992
  1457. data/src/core/lib/surface/call.h +180 -103
  1458. data/src/core/lib/surface/call_details.cc +5 -5
  1459. data/src/core/lib/surface/call_log_batch.cc +7 -11
  1460. data/src/core/lib/surface/call_test_only.h +2 -4
  1461. data/src/core/lib/surface/call_utils.cc +231 -0
  1462. data/src/core/lib/surface/call_utils.h +492 -0
  1463. data/src/core/lib/surface/channel.cc +53 -59
  1464. data/src/core/lib/surface/channel.h +23 -22
  1465. data/src/core/lib/surface/channel_create.cc +31 -15
  1466. data/src/core/lib/surface/channel_create.h +3 -3
  1467. data/src/core/lib/surface/channel_init.cc +274 -271
  1468. data/src/core/lib/surface/channel_init.h +179 -120
  1469. data/src/core/lib/surface/channel_stack_type.cc +2 -2
  1470. data/src/core/lib/surface/client_call.cc +456 -0
  1471. data/src/core/lib/surface/client_call.h +192 -0
  1472. data/src/core/lib/surface/completion_queue.cc +119 -155
  1473. data/src/core/lib/surface/completion_queue.h +4 -14
  1474. data/src/core/lib/surface/completion_queue_factory.cc +8 -9
  1475. data/src/core/lib/surface/completion_queue_factory.h +1 -2
  1476. data/src/core/lib/surface/connection_context.cc +77 -0
  1477. data/src/core/lib/surface/connection_context.h +156 -0
  1478. data/src/core/lib/surface/event_string.cc +9 -3
  1479. data/src/core/lib/surface/event_string.h +1 -2
  1480. data/src/core/lib/surface/filter_stack_call.cc +1154 -0
  1481. data/src/core/lib/surface/filter_stack_call.h +366 -0
  1482. data/src/core/lib/surface/init.cc +74 -30
  1483. data/src/core/lib/surface/init.h +5 -0
  1484. data/src/core/lib/surface/init_internally.cc +2 -2
  1485. data/src/core/lib/surface/init_internally.h +13 -2
  1486. data/src/core/lib/surface/lame_client.cc +20 -26
  1487. data/src/core/lib/surface/lame_client.h +9 -13
  1488. data/src/core/lib/surface/legacy_channel.cc +78 -62
  1489. data/src/core/lib/surface/legacy_channel.h +16 -27
  1490. data/src/core/lib/surface/metadata_array.cc +6 -7
  1491. data/src/core/lib/surface/server_call.cc +259 -0
  1492. data/src/core/lib/surface/server_call.h +169 -0
  1493. data/src/core/lib/surface/validate_metadata.cc +4 -6
  1494. data/src/core/lib/surface/validate_metadata.h +3 -6
  1495. data/src/core/lib/surface/version.cc +3 -4
  1496. data/src/core/lib/transport/bdp_estimator.cc +14 -20
  1497. data/src/core/lib/transport/bdp_estimator.h +12 -18
  1498. data/src/core/lib/transport/call_arena_allocator.cc +27 -0
  1499. data/src/core/lib/transport/call_arena_allocator.h +91 -0
  1500. data/src/core/lib/transport/call_destination.h +76 -0
  1501. data/src/core/lib/transport/call_filters.cc +70 -393
  1502. data/src/core/lib/transport/call_filters.h +885 -736
  1503. data/src/core/lib/transport/call_final_info.cc +2 -2
  1504. data/src/core/lib/transport/call_final_info.h +3 -4
  1505. data/src/core/lib/transport/call_spine.cc +63 -80
  1506. data/src/core/lib/transport/call_spine.h +412 -244
  1507. data/src/core/lib/transport/call_state.cc +39 -0
  1508. data/src/core/lib/transport/call_state.h +1154 -0
  1509. data/src/core/lib/transport/connectivity_state.cc +44 -54
  1510. data/src/core/lib/transport/connectivity_state.h +5 -11
  1511. data/src/core/lib/transport/error_utils.cc +3 -5
  1512. data/src/core/lib/transport/error_utils.h +2 -4
  1513. data/src/core/lib/transport/http2_errors.h +5 -3
  1514. data/src/core/lib/transport/interception_chain.cc +155 -0
  1515. data/src/core/lib/transport/interception_chain.h +282 -0
  1516. data/src/core/lib/transport/message.cc +3 -4
  1517. data/src/core/lib/transport/message.h +5 -0
  1518. data/src/core/lib/transport/metadata.cc +29 -5
  1519. data/src/core/lib/transport/metadata.h +125 -2
  1520. data/src/core/lib/transport/metadata_batch.cc +14 -7
  1521. data/src/core/lib/transport/metadata_batch.h +183 -33
  1522. data/src/core/lib/transport/metadata_compression_traits.h +2 -3
  1523. data/src/core/lib/transport/metadata_info.cc +2 -2
  1524. data/src/core/lib/transport/metadata_info.h +1 -1
  1525. data/src/core/lib/transport/parsed_metadata.cc +2 -2
  1526. data/src/core/lib/transport/parsed_metadata.h +2 -5
  1527. data/src/core/lib/transport/simple_slice_based_metadata.h +0 -1
  1528. data/src/core/lib/transport/status_conversion.cc +2 -2
  1529. data/src/core/lib/transport/status_conversion.h +2 -3
  1530. data/src/core/lib/transport/timeout_encoding.cc +26 -27
  1531. data/src/core/lib/transport/timeout_encoding.h +3 -4
  1532. data/src/core/lib/transport/transport.cc +7 -14
  1533. data/src/core/lib/transport/transport.h +106 -95
  1534. data/src/core/lib/transport/transport_framing_endpoint_extension.h +47 -0
  1535. data/src/core/lib/transport/transport_op_string.cc +2 -5
  1536. data/src/core/load_balancing/address_filtering.cc +2 -4
  1537. data/src/core/load_balancing/address_filtering.h +2 -3
  1538. data/src/core/load_balancing/backend_metric_parser.cc +22 -30
  1539. data/src/core/load_balancing/backend_metric_parser.h +0 -2
  1540. data/src/core/load_balancing/child_policy_handler.cc +42 -46
  1541. data/src/core/load_balancing/child_policy_handler.h +2 -3
  1542. data/src/core/load_balancing/delegating_helper.h +6 -8
  1543. data/src/core/load_balancing/endpoint_list.cc +28 -22
  1544. data/src/core/load_balancing/endpoint_list.h +39 -28
  1545. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +34 -35
  1546. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +21 -7
  1547. data/src/core/load_balancing/grpclb/grpclb.cc +201 -252
  1548. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +2 -3
  1549. data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.h +1 -2
  1550. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +3 -5
  1551. data/src/core/load_balancing/grpclb/grpclb_client_stats.h +4 -7
  1552. data/src/core/load_balancing/grpclb/load_balancer_api.cc +7 -11
  1553. data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -6
  1554. data/src/core/load_balancing/health_check_client.cc +78 -131
  1555. data/src/core/load_balancing/health_check_client.h +1 -1
  1556. data/src/core/load_balancing/health_check_client_internal.h +13 -15
  1557. data/src/core/load_balancing/lb_policy.cc +11 -16
  1558. data/src/core/load_balancing/lb_policy.h +76 -51
  1559. data/src/core/load_balancing/lb_policy_factory.h +3 -4
  1560. data/src/core/load_balancing/lb_policy_registry.cc +17 -17
  1561. data/src/core/load_balancing/lb_policy_registry.h +3 -4
  1562. data/src/core/load_balancing/oob_backend_metric.cc +22 -29
  1563. data/src/core/load_balancing/oob_backend_metric.h +1 -1
  1564. data/src/core/load_balancing/oob_backend_metric_internal.h +6 -8
  1565. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +193 -249
  1566. data/src/core/load_balancing/outlier_detection/outlier_detection.h +8 -9
  1567. data/src/core/load_balancing/pick_first/pick_first.cc +1255 -318
  1568. data/src/core/load_balancing/priority/priority.cc +115 -159
  1569. data/src/core/load_balancing/ring_hash/ring_hash.cc +285 -240
  1570. data/src/core/load_balancing/ring_hash/ring_hash.h +9 -17
  1571. data/src/core/load_balancing/rls/rls.cc +457 -544
  1572. data/src/core/load_balancing/rls/rls.h +97 -1
  1573. data/src/core/load_balancing/round_robin/round_robin.cc +93 -114
  1574. data/src/core/load_balancing/subchannel_interface.h +15 -5
  1575. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +11 -12
  1576. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +3 -4
  1577. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +180 -196
  1578. data/src/core/load_balancing/weighted_target/weighted_target.cc +86 -130
  1579. data/src/core/load_balancing/weighted_target/weighted_target.h +1 -1
  1580. data/src/core/load_balancing/xds/cds.cc +72 -93
  1581. data/src/core/load_balancing/xds/xds_cluster_impl.cc +201 -179
  1582. data/src/core/load_balancing/xds/xds_cluster_manager.cc +63 -104
  1583. data/src/core/load_balancing/xds/xds_override_host.cc +168 -277
  1584. data/src/core/load_balancing/xds/xds_override_host.h +5 -6
  1585. data/src/core/load_balancing/xds/xds_wrr_locality.cc +46 -59
  1586. data/src/core/plugin_registry/grpc_plugin_registry.cc +12 -17
  1587. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +7 -3
  1588. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +100 -76
  1589. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -2
  1590. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -5
  1591. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +6 -9
  1592. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +153 -134
  1593. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +176 -161
  1594. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -18
  1595. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +1 -1
  1596. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
  1597. data/src/core/resolver/dns/dns_resolver_plugin.cc +11 -13
  1598. data/src/core/resolver/dns/dns_resolver_plugin.h +1 -1
  1599. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +66 -78
  1600. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.h +2 -3
  1601. data/src/core/resolver/dns/event_engine/service_config_helper.cc +8 -10
  1602. data/src/core/resolver/dns/native/dns_resolver.cc +22 -32
  1603. data/src/core/resolver/dns/native/dns_resolver.h +1 -1
  1604. data/src/core/resolver/endpoint_addresses.cc +5 -8
  1605. data/src/core/resolver/endpoint_addresses.h +3 -1
  1606. data/src/core/resolver/fake/fake_resolver.cc +20 -23
  1607. data/src/core/resolver/fake/fake_resolver.h +8 -10
  1608. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -43
  1609. data/src/core/resolver/polling_resolver.cc +44 -63
  1610. data/src/core/resolver/polling_resolver.h +9 -11
  1611. data/src/core/resolver/resolver.cc +3 -7
  1612. data/src/core/resolver/resolver.h +2 -8
  1613. data/src/core/resolver/resolver_factory.h +2 -3
  1614. data/src/core/resolver/resolver_registry.cc +14 -15
  1615. data/src/core/resolver/resolver_registry.h +2 -3
  1616. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +6 -8
  1617. data/src/core/resolver/xds/xds_config.cc +95 -0
  1618. data/src/core/resolver/xds/xds_config.h +108 -0
  1619. data/src/core/resolver/xds/xds_dependency_manager.cc +263 -344
  1620. data/src/core/resolver/xds/xds_dependency_manager.h +39 -94
  1621. data/src/core/resolver/xds/xds_resolver.cc +203 -230
  1622. data/src/core/resolver/xds/xds_resolver_attributes.h +6 -3
  1623. data/src/core/server/server.cc +2189 -0
  1624. data/src/core/server/server.h +718 -0
  1625. data/src/core/server/server_call_tracer_filter.cc +113 -0
  1626. data/src/core/server/server_call_tracer_filter.h +28 -0
  1627. data/src/core/server/server_config_selector.h +82 -0
  1628. data/src/core/server/server_config_selector_filter.cc +168 -0
  1629. data/src/core/server/server_config_selector_filter.h +33 -0
  1630. data/src/core/server/server_interface.h +45 -0
  1631. data/src/core/server/xds_channel_stack_modifier.cc +107 -0
  1632. data/src/core/server/xds_channel_stack_modifier.h +62 -0
  1633. data/src/core/server/xds_server_config_fetcher.cc +1318 -0
  1634. data/src/core/service_config/service_config.h +3 -6
  1635. data/src/core/service_config/service_config_call_data.h +20 -19
  1636. data/src/core/service_config/service_config_channel_arg_filter.cc +24 -33
  1637. data/src/core/service_config/service_config_impl.cc +12 -14
  1638. data/src/core/service_config/service_config_impl.h +6 -9
  1639. data/src/core/service_config/service_config_parser.cc +4 -9
  1640. data/src/core/service_config/service_config_parser.h +2 -4
  1641. data/src/core/telemetry/call_tracer.cc +386 -0
  1642. data/src/core/telemetry/call_tracer.h +264 -0
  1643. data/src/core/telemetry/histogram_view.cc +69 -0
  1644. data/src/core/telemetry/histogram_view.h +36 -0
  1645. data/src/core/telemetry/metrics.cc +180 -0
  1646. data/src/core/telemetry/metrics.h +563 -0
  1647. data/src/core/telemetry/stats.cc +67 -0
  1648. data/src/core/telemetry/stats.h +62 -0
  1649. data/src/core/telemetry/stats_data.cc +931 -0
  1650. data/src/core/telemetry/stats_data.h +705 -0
  1651. data/src/core/telemetry/tcp_tracer.h +143 -0
  1652. data/src/core/tsi/alts/crypt/aes_gcm.cc +4 -8
  1653. data/src/core/tsi/alts/crypt/gsec.cc +2 -4
  1654. data/src/core/tsi/alts/crypt/gsec.h +3 -5
  1655. data/src/core/tsi/alts/frame_protector/alts_counter.cc +2 -4
  1656. data/src/core/tsi/alts/frame_protector/alts_counter.h +2 -4
  1657. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +2 -4
  1658. data/src/core/tsi/alts/frame_protector/alts_crypter.h +1 -3
  1659. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +16 -19
  1660. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +0 -1
  1661. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +1 -2
  1662. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +1 -2
  1663. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +2 -3
  1664. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +2 -3
  1665. data/src/core/tsi/alts/frame_protector/frame_handler.cc +11 -13
  1666. data/src/core/tsi/alts/frame_protector/frame_handler.h +0 -1
  1667. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +80 -84
  1668. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -2
  1669. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +5 -6
  1670. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +2 -3
  1671. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +90 -90
  1672. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -2
  1673. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +6 -5
  1674. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -2
  1675. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +17 -24
  1676. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +4 -6
  1677. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +17 -19
  1678. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +0 -1
  1679. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +12 -14
  1680. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +0 -1
  1681. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +1 -2
  1682. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +16 -14
  1683. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +3 -6
  1684. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +0 -1
  1685. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +13 -16
  1686. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +0 -1
  1687. data/src/core/tsi/fake_transport_security.cc +36 -34
  1688. data/src/core/tsi/local_transport_security.cc +9 -11
  1689. data/src/core/tsi/local_transport_security.h +1 -2
  1690. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +13 -15
  1691. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +7 -10
  1692. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -5
  1693. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -17
  1694. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +8 -10
  1695. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +4 -7
  1696. data/src/core/tsi/ssl_transport_security.cc +154 -131
  1697. data/src/core/tsi/ssl_transport_security.h +5 -8
  1698. data/src/core/tsi/ssl_transport_security_utils.cc +86 -32
  1699. data/src/core/tsi/ssl_transport_security_utils.h +13 -5
  1700. data/src/core/tsi/ssl_types.h +0 -1
  1701. data/src/core/tsi/transport_security.cc +3 -9
  1702. data/src/core/tsi/transport_security.h +0 -3
  1703. data/src/core/tsi/transport_security_grpc.cc +2 -2
  1704. data/src/core/tsi/transport_security_grpc.h +1 -2
  1705. data/src/core/tsi/transport_security_interface.h +2 -7
  1706. data/src/core/util/alloc.cc +69 -0
  1707. data/src/core/util/alloc.h +28 -0
  1708. data/src/core/util/atomic_utils.h +47 -0
  1709. data/src/core/util/avl.h +324 -0
  1710. data/src/core/util/backoff.cc +57 -0
  1711. data/src/core/util/backoff.h +86 -0
  1712. data/src/core/util/bitset.h +224 -0
  1713. data/src/core/util/chunked_vector.h +256 -0
  1714. data/src/core/util/construct_destruct.h +41 -0
  1715. data/src/core/util/cpp_impl_of.h +49 -0
  1716. data/src/core/util/crash.cc +40 -0
  1717. data/src/core/util/crash.h +36 -0
  1718. data/src/core/util/debug_location.h +106 -0
  1719. data/src/core/util/directory_reader.h +48 -0
  1720. data/src/core/util/down_cast.h +48 -0
  1721. data/src/core/util/dual_ref_counted.h +376 -0
  1722. data/src/core/util/dump_args.cc +54 -0
  1723. data/src/core/util/dump_args.h +114 -0
  1724. data/src/core/util/env.h +52 -0
  1725. data/src/core/util/event_log.cc +87 -0
  1726. data/src/core/util/event_log.h +79 -0
  1727. data/src/core/util/examine_stack.cc +43 -0
  1728. data/src/core/util/examine_stack.h +44 -0
  1729. data/src/core/util/fork.cc +241 -0
  1730. data/src/core/util/fork.h +98 -0
  1731. data/src/core/util/gcp_metadata_query.cc +132 -0
  1732. data/src/core/util/gcp_metadata_query.h +86 -0
  1733. data/src/core/util/gethostname.h +26 -0
  1734. data/src/core/util/gethostname_fallback.cc +30 -0
  1735. data/src/core/util/gethostname_host_name_max.cc +39 -0
  1736. data/src/core/util/gethostname_sysconf.cc +39 -0
  1737. data/src/core/util/glob.cc +70 -0
  1738. data/src/core/util/glob.h +29 -0
  1739. data/src/core/util/gpr_time.cc +266 -0
  1740. data/src/core/util/grpc_if_nametoindex.h +29 -0
  1741. data/src/core/util/grpc_if_nametoindex_posix.cc +41 -0
  1742. data/src/core/util/grpc_if_nametoindex_unsupported.cc +36 -0
  1743. data/src/core/util/host_port.cc +114 -0
  1744. data/src/core/util/host_port.h +57 -0
  1745. data/src/core/util/http_client/format_request.cc +134 -0
  1746. data/src/core/util/http_client/format_request.h +37 -0
  1747. data/src/core/util/http_client/httpcli.cc +427 -0
  1748. data/src/core/util/http_client/httpcli.h +279 -0
  1749. data/src/core/util/http_client/httpcli_security_connector.cc +210 -0
  1750. data/src/core/util/http_client/httpcli_ssl_credentials.h +38 -0
  1751. data/src/core/util/http_client/parser.cc +447 -0
  1752. data/src/core/util/http_client/parser.h +126 -0
  1753. data/src/core/util/if_list.h +4530 -0
  1754. data/src/core/util/iphone/cpu.cc +43 -0
  1755. data/src/core/util/json/json.h +29 -0
  1756. data/src/core/util/json/json_args.h +34 -0
  1757. data/src/core/util/json/json_channel_args.h +42 -0
  1758. data/src/core/util/json/json_object_loader.cc +215 -0
  1759. data/src/core/util/json/json_object_loader.h +644 -0
  1760. data/src/core/util/json/json_reader.cc +953 -0
  1761. data/src/core/util/json/json_reader.h +33 -0
  1762. data/src/core/util/json/json_util.cc +101 -0
  1763. data/src/core/util/json/json_util.h +163 -0
  1764. data/src/core/util/json/json_writer.cc +337 -0
  1765. data/src/core/util/json/json_writer.h +33 -0
  1766. data/src/core/util/latent_see.cc +163 -0
  1767. data/src/core/util/latent_see.h +334 -0
  1768. data/src/core/util/linux/cpu.cc +86 -0
  1769. data/src/core/util/linux/env.cc +61 -0
  1770. data/src/core/util/load_file.cc +75 -0
  1771. data/src/core/util/load_file.h +33 -0
  1772. data/src/core/util/log.cc +127 -0
  1773. data/src/core/util/lru_cache.h +122 -0
  1774. data/src/core/util/manual_constructor.h +145 -0
  1775. data/src/core/util/match.h +74 -0
  1776. data/src/core/util/matchers.cc +336 -0
  1777. data/src/core/util/matchers.h +162 -0
  1778. data/src/core/util/memory.h +52 -0
  1779. data/src/core/util/mpscq.cc +108 -0
  1780. data/src/core/util/mpscq.h +98 -0
  1781. data/src/core/util/msys/tmpfile.cc +57 -0
  1782. data/src/core/util/no_destruct.h +95 -0
  1783. data/src/core/util/notification.h +66 -0
  1784. data/src/core/util/orphanable.h +153 -0
  1785. data/src/core/util/overload.h +59 -0
  1786. data/src/core/util/packed_table.h +40 -0
  1787. data/src/core/util/per_cpu.cc +34 -0
  1788. data/src/core/util/per_cpu.h +102 -0
  1789. data/src/core/util/posix/cpu.cc +83 -0
  1790. data/src/core/util/posix/directory_reader.cc +82 -0
  1791. data/src/core/util/posix/env.cc +47 -0
  1792. data/src/core/util/posix/stat.cc +54 -0
  1793. data/src/core/util/posix/string.cc +71 -0
  1794. data/src/core/util/posix/sync.cc +157 -0
  1795. data/src/core/util/posix/thd.cc +243 -0
  1796. data/src/core/util/posix/time.cc +122 -0
  1797. data/src/core/util/posix/tmpfile.cc +71 -0
  1798. data/src/core/util/random_early_detection.cc +33 -0
  1799. data/src/core/util/random_early_detection.h +61 -0
  1800. data/src/core/util/ref_counted.h +403 -0
  1801. data/src/core/util/ref_counted_ptr.h +443 -0
  1802. data/src/core/util/ref_counted_string.cc +42 -0
  1803. data/src/core/util/ref_counted_string.h +159 -0
  1804. data/src/core/util/ring_buffer.h +122 -0
  1805. data/src/core/util/single_set_ptr.h +89 -0
  1806. data/src/core/util/sorted_pack.h +89 -0
  1807. data/src/core/util/spinlock.h +51 -0
  1808. data/src/core/util/stat.h +35 -0
  1809. data/src/core/util/status_helper.cc +427 -0
  1810. data/src/core/util/status_helper.h +160 -0
  1811. data/src/core/util/strerror.cc +40 -0
  1812. data/src/core/util/strerror.h +29 -0
  1813. data/src/core/util/string.cc +341 -0
  1814. data/src/core/util/string.h +110 -0
  1815. data/src/core/util/sync.cc +123 -0
  1816. data/src/core/util/sync.h +199 -0
  1817. data/src/core/util/sync_abseil.cc +106 -0
  1818. data/src/core/util/table.h +471 -0
  1819. data/src/core/util/tchar.cc +49 -0
  1820. data/src/core/util/tchar.h +33 -0
  1821. data/src/core/util/thd.h +193 -0
  1822. data/src/core/util/time.cc +240 -0
  1823. data/src/core/util/time.h +385 -0
  1824. data/src/core/util/time_averaged_stats.cc +60 -0
  1825. data/src/core/util/time_averaged_stats.h +79 -0
  1826. data/src/core/util/time_precise.cc +167 -0
  1827. data/src/core/util/time_precise.h +68 -0
  1828. data/src/core/util/time_util.cc +80 -0
  1829. data/src/core/util/time_util.h +41 -0
  1830. data/src/core/util/tmpfile.h +31 -0
  1831. data/src/core/util/type_list.h +88 -0
  1832. data/src/core/util/unique_ptr_with_bitset.h +86 -0
  1833. data/src/core/util/unique_type_name.h +123 -0
  1834. data/src/core/util/upb_utils.h +43 -0
  1835. data/src/core/util/uri.cc +378 -0
  1836. data/src/core/util/uri.h +112 -0
  1837. data/src/core/util/useful.h +153 -0
  1838. data/src/core/util/uuid_v4.cc +37 -0
  1839. data/src/core/util/uuid_v4.h +35 -0
  1840. data/src/core/util/validation_errors.cc +73 -0
  1841. data/src/core/util/validation_errors.h +144 -0
  1842. data/src/core/util/wait_for_single_owner.h +62 -0
  1843. data/src/core/util/windows/cpu.cc +34 -0
  1844. data/src/core/util/windows/directory_reader.cc +79 -0
  1845. data/src/core/util/windows/env.cc +56 -0
  1846. data/src/core/util/windows/stat.cc +50 -0
  1847. data/src/core/util/windows/string.cc +68 -0
  1848. data/src/core/util/windows/string_util.cc +53 -0
  1849. data/src/core/util/windows/sync.cc +121 -0
  1850. data/src/core/util/windows/thd.cc +182 -0
  1851. data/src/core/util/windows/time.cc +104 -0
  1852. data/src/core/util/windows/tmpfile.cc +66 -0
  1853. data/src/core/util/work_serializer.cc +298 -0
  1854. data/src/core/util/work_serializer.h +81 -0
  1855. data/src/core/util/xxhash_inline.h +29 -0
  1856. data/src/core/xds/grpc/certificate_provider_store.cc +148 -0
  1857. data/src/core/xds/grpc/certificate_provider_store.h +132 -0
  1858. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +136 -0
  1859. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +80 -0
  1860. data/src/core/xds/grpc/xds_audit_logger_registry.cc +123 -0
  1861. data/src/core/xds/grpc/xds_audit_logger_registry.h +67 -0
  1862. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +235 -0
  1863. data/src/core/xds/grpc/xds_bootstrap_grpc.h +167 -0
  1864. data/src/core/xds/grpc/xds_certificate_provider.cc +216 -0
  1865. data/src/core/xds/grpc/xds_certificate_provider.h +116 -0
  1866. data/src/core/xds/grpc/xds_client_grpc.cc +444 -0
  1867. data/src/core/xds/grpc/xds_client_grpc.h +115 -0
  1868. data/src/core/xds/grpc/xds_cluster.cc +79 -0
  1869. data/src/core/xds/grpc/xds_cluster.h +135 -0
  1870. data/src/core/xds/grpc/xds_cluster_parser.cc +772 -0
  1871. data/src/core/xds/grpc/xds_cluster_parser.h +61 -0
  1872. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +137 -0
  1873. data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +96 -0
  1874. data/src/core/xds/grpc/xds_common_types.cc +103 -0
  1875. data/src/core/xds/grpc/xds_common_types.h +90 -0
  1876. data/src/core/xds/grpc/xds_common_types_parser.cc +501 -0
  1877. data/src/core/xds/grpc/xds_common_types_parser.h +77 -0
  1878. data/src/core/xds/grpc/xds_endpoint.cc +96 -0
  1879. data/src/core/xds/grpc/xds_endpoint.h +128 -0
  1880. data/src/core/xds/grpc/xds_endpoint_parser.cc +475 -0
  1881. data/src/core/xds/grpc/xds_endpoint_parser.h +47 -0
  1882. data/src/core/xds/grpc/xds_health_status.cc +73 -0
  1883. data/src/core/xds/grpc/xds_health_status.h +89 -0
  1884. data/src/core/xds/grpc/xds_http_fault_filter.cc +247 -0
  1885. data/src/core/xds/grpc/xds_http_fault_filter.h +63 -0
  1886. data/src/core/xds/grpc/xds_http_filter.h +134 -0
  1887. data/src/core/xds/grpc/xds_http_filter_registry.cc +122 -0
  1888. data/src/core/xds/grpc/xds_http_filter_registry.h +104 -0
  1889. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +141 -0
  1890. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +61 -0
  1891. data/src/core/xds/grpc/xds_http_rbac_filter.cc +609 -0
  1892. data/src/core/xds/grpc/xds_http_rbac_filter.h +63 -0
  1893. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +230 -0
  1894. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +63 -0
  1895. data/src/core/xds/grpc/xds_lb_policy_registry.cc +365 -0
  1896. data/src/core/xds/grpc/xds_lb_policy_registry.h +70 -0
  1897. data/src/core/xds/grpc/xds_listener.cc +173 -0
  1898. data/src/core/xds/grpc/xds_listener.h +203 -0
  1899. data/src/core/xds/grpc/xds_listener_parser.cc +1000 -0
  1900. data/src/core/xds/grpc/xds_listener_parser.h +60 -0
  1901. data/src/core/xds/grpc/xds_metadata.cc +62 -0
  1902. data/src/core/xds/grpc/xds_metadata.h +158 -0
  1903. data/src/core/xds/grpc/xds_metadata_parser.cc +197 -0
  1904. data/src/core/xds/grpc/xds_metadata_parser.h +35 -0
  1905. data/src/core/xds/grpc/xds_route_config.cc +276 -0
  1906. data/src/core/xds/grpc/xds_route_config.h +220 -0
  1907. data/src/core/xds/grpc/xds_route_config_parser.cc +960 -0
  1908. data/src/core/xds/grpc/xds_route_config_parser.h +77 -0
  1909. data/src/core/xds/grpc/xds_routing.cc +297 -0
  1910. data/src/core/xds/grpc/xds_routing.h +112 -0
  1911. data/src/core/xds/grpc/xds_server_grpc.cc +181 -0
  1912. data/src/core/xds/grpc/xds_server_grpc.h +66 -0
  1913. data/src/core/xds/grpc/xds_server_grpc_interface.h +33 -0
  1914. data/src/core/xds/grpc/xds_transport_grpc.cc +392 -0
  1915. data/src/core/xds/grpc/xds_transport_grpc.h +149 -0
  1916. data/src/core/xds/xds_client/lrs_client.cc +1280 -0
  1917. data/src/core/xds/xds_client/lrs_client.h +394 -0
  1918. data/src/core/xds/xds_client/xds_api.cc +130 -0
  1919. data/src/core/xds/xds_client/xds_api.h +34 -0
  1920. data/src/core/xds/xds_client/xds_backend_metric_propagation.cc +63 -0
  1921. data/src/core/xds/xds_client/xds_backend_metric_propagation.h +59 -0
  1922. data/src/core/xds/xds_client/xds_bootstrap.cc +47 -0
  1923. data/src/core/xds/xds_client/xds_bootstrap.h +95 -0
  1924. data/src/core/xds/xds_client/xds_channel_args.h +32 -0
  1925. data/src/core/xds/xds_client/xds_client.cc +2015 -0
  1926. data/src/core/xds/xds_client/xds_client.h +440 -0
  1927. data/src/core/xds/xds_client/xds_locality.h +102 -0
  1928. data/src/core/xds/xds_client/xds_metrics.h +41 -0
  1929. data/src/core/xds/xds_client/xds_resource_type.h +96 -0
  1930. data/src/core/xds/xds_client/xds_resource_type_impl.h +92 -0
  1931. data/src/core/xds/xds_client/xds_transport.h +104 -0
  1932. data/src/ruby/bin/math_pb.rb +1 -22
  1933. data/src/ruby/ext/grpc/extconf.rb +2 -1
  1934. data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -3
  1935. data/src/ruby/ext/grpc/rb_call.c +15 -8
  1936. data/src/ruby/ext/grpc/rb_call_credentials.c +39 -32
  1937. data/src/ruby/ext/grpc/rb_call_credentials.h +1 -0
  1938. data/src/ruby/ext/grpc/rb_channel.c +42 -36
  1939. data/src/ruby/ext/grpc/rb_channel_args.c +4 -4
  1940. data/src/ruby/ext/grpc/rb_channel_credentials.c +5 -5
  1941. data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -2
  1942. data/src/ruby/ext/grpc/rb_completion_queue.c +18 -36
  1943. data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
  1944. data/src/ruby/ext/grpc/rb_compression_options.c +9 -10
  1945. data/src/ruby/ext/grpc/rb_event_thread.c +9 -9
  1946. data/src/ruby/ext/grpc/rb_grpc.c +16 -16
  1947. data/src/ruby/ext/grpc/rb_grpc.h +8 -1
  1948. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +136 -144
  1949. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +205 -216
  1950. data/src/ruby/ext/grpc/rb_server.c +47 -27
  1951. data/src/ruby/ext/grpc/rb_server_credentials.c +4 -3
  1952. data/src/ruby/ext/grpc/rb_server_credentials.h +2 -2
  1953. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +5 -5
  1954. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +1 -2
  1955. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +5 -4
  1956. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +2 -2
  1957. data/src/ruby/lib/grpc/generic/active_call.rb +8 -5
  1958. data/src/ruby/lib/grpc/logconfig.rb +13 -0
  1959. data/src/ruby/lib/grpc/version.rb +1 -1
  1960. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
  1961. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
  1962. data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
  1963. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
  1964. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
  1965. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
  1966. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
  1967. data/src/ruby/spec/call_spec.rb +53 -40
  1968. data/src/ruby/spec/channel_spec.rb +4 -2
  1969. data/src/ruby/spec/client_server_spec.rb +148 -507
  1970. data/src/ruby/spec/generic/active_call_spec.rb +64 -86
  1971. data/src/ruby/spec/generic/client_stub_spec.rb +20 -20
  1972. data/src/ruby/spec/logconfig_spec.rb +30 -0
  1973. data/src/ruby/spec/support/services.rb +3 -0
  1974. data/third_party/abseil-cpp/absl/algorithm/container.h +57 -18
  1975. data/third_party/abseil-cpp/absl/base/attributes.h +84 -0
  1976. data/third_party/abseil-cpp/absl/base/config.h +32 -51
  1977. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +0 -16
  1978. data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +3 -1
  1979. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +13 -3
  1980. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -12
  1981. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +4 -4
  1982. data/third_party/abseil-cpp/absl/base/macros.h +48 -0
  1983. data/third_party/abseil-cpp/absl/base/no_destructor.h +35 -40
  1984. data/third_party/abseil-cpp/absl/base/nullability.h +33 -7
  1985. data/third_party/abseil-cpp/absl/base/optimization.h +11 -0
  1986. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  1987. data/third_party/abseil-cpp/absl/base/prefetch.h +1 -1
  1988. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +68 -12
  1989. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +60 -6
  1990. data/third_party/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
  1991. data/third_party/abseil-cpp/absl/container/inlined_vector.h +13 -0
  1992. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +20 -11
  1993. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +15 -16
  1994. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +34 -1
  1995. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +68 -1
  1996. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +50 -0
  1997. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +22 -7
  1998. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +26 -8
  1999. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +39 -35
  2000. data/third_party/abseil-cpp/absl/container/internal/layout.h +190 -74
  2001. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +8 -6
  2002. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +334 -71
  2003. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1299 -458
  2004. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +19 -17
  2005. data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +4 -3
  2006. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +2 -1
  2007. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +12 -8
  2008. data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +1 -1
  2009. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +11 -7
  2010. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +18 -17
  2011. data/third_party/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
  2012. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
  2013. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
  2014. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1057 -86
  2015. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +3 -0
  2016. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
  2017. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +42 -0
  2018. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +43 -16
  2019. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +8 -7
  2020. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +10 -7
  2021. data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
  2022. data/third_party/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
  2023. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +11 -0
  2024. data/third_party/abseil-cpp/absl/flags/flag.h +2 -0
  2025. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +117 -30
  2026. data/third_party/abseil-cpp/absl/flags/internal/flag.h +192 -30
  2027. data/third_party/abseil-cpp/absl/flags/reflection.cc +10 -0
  2028. data/third_party/abseil-cpp/absl/functional/any_invocable.h +13 -3
  2029. data/third_party/abseil-cpp/absl/functional/bind_front.h +3 -2
  2030. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +7 -7
  2031. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +9 -9
  2032. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -1
  2033. data/third_party/abseil-cpp/absl/hash/internal/hash.h +13 -3
  2034. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +60 -28
  2035. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +4 -0
  2036. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +3 -3
  2037. data/third_party/abseil-cpp/absl/log/check.h +209 -0
  2038. data/third_party/abseil-cpp/absl/log/globals.h +28 -15
  2039. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +150 -0
  2040. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +138 -0
  2041. data/third_party/abseil-cpp/absl/log/internal/check_op.h +462 -0
  2042. data/third_party/abseil-cpp/absl/log/internal/conditions.h +2 -2
  2043. data/third_party/abseil-cpp/absl/log/internal/log_impl.h +23 -23
  2044. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +104 -47
  2045. data/third_party/abseil-cpp/absl/log/internal/log_message.h +23 -4
  2046. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -10
  2047. data/third_party/abseil-cpp/absl/log/internal/strip.h +36 -0
  2048. data/third_party/abseil-cpp/absl/log/log.h +5 -1
  2049. data/third_party/abseil-cpp/absl/log/log_sink.h +11 -4
  2050. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +3 -3
  2051. data/third_party/abseil-cpp/absl/meta/type_traits.h +138 -42
  2052. data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -3
  2053. data/third_party/abseil-cpp/absl/numeric/int128.h +35 -5
  2054. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +14 -0
  2055. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +18 -0
  2056. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +6 -2
  2057. data/third_party/abseil-cpp/absl/random/beta_distribution.h +8 -8
  2058. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +9 -7
  2059. data/third_party/abseil-cpp/absl/random/distributions.h +11 -11
  2060. data/third_party/abseil-cpp/absl/random/seed_sequences.h +2 -0
  2061. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +61 -2
  2062. data/third_party/abseil-cpp/absl/status/status.cc +0 -4
  2063. data/third_party/abseil-cpp/absl/status/status.h +4 -4
  2064. data/third_party/abseil-cpp/absl/status/statusor.h +108 -142
  2065. data/third_party/abseil-cpp/absl/strings/ascii.cc +32 -71
  2066. data/third_party/abseil-cpp/absl/strings/cord.cc +20 -15
  2067. data/third_party/abseil-cpp/absl/strings/cord.h +68 -7
  2068. data/third_party/abseil-cpp/absl/strings/escaping.cc +96 -21
  2069. data/third_party/abseil-cpp/absl/strings/escaping.h +25 -8
  2070. data/third_party/abseil-cpp/absl/strings/has_absl_stringify.h +1 -0
  2071. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +10 -0
  2072. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +29 -9
  2073. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +2 -2
  2074. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +19 -13
  2075. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +23 -13
  2076. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +24 -24
  2077. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +12 -7
  2078. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +9 -4
  2079. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +5 -2
  2080. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +23 -2
  2081. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +5 -1
  2082. data/third_party/abseil-cpp/absl/strings/numbers.cc +107 -333
  2083. data/third_party/abseil-cpp/absl/strings/numbers.h +12 -151
  2084. data/third_party/abseil-cpp/absl/strings/str_cat.cc +49 -142
  2085. data/third_party/abseil-cpp/absl/strings/str_cat.h +70 -85
  2086. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -1
  2087. data/third_party/abseil-cpp/absl/strings/str_join.h +19 -5
  2088. data/third_party/abseil-cpp/absl/strings/str_split.h +2 -2
  2089. data/third_party/abseil-cpp/absl/strings/string_view.h +3 -2
  2090. data/third_party/abseil-cpp/absl/strings/substitute.cc +4 -0
  2091. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +11 -2
  2092. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +5 -0
  2093. data/third_party/abseil-cpp/absl/synchronization/mutex.h +5 -4
  2094. data/third_party/abseil-cpp/absl/time/civil_time.h +2 -2
  2095. data/third_party/abseil-cpp/absl/time/clock.cc +15 -1
  2096. data/third_party/abseil-cpp/absl/time/duration.cc +58 -53
  2097. data/third_party/abseil-cpp/absl/time/format.cc +2 -1
  2098. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
  2099. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +0 -29
  2100. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +3 -3
  2101. data/third_party/abseil-cpp/absl/time/time.h +73 -29
  2102. data/third_party/abseil-cpp/absl/types/compare.h +505 -0
  2103. data/third_party/abseil-cpp/absl/types/internal/optional.h +2 -2
  2104. data/third_party/abseil-cpp/absl/types/internal/variant.h +55 -67
  2105. data/third_party/abseil-cpp/absl/types/optional.h +15 -18
  2106. data/third_party/abseil-cpp/absl/types/span.h +3 -2
  2107. data/third_party/abseil-cpp/absl/types/variant.h +19 -24
  2108. data/third_party/abseil-cpp/absl/utility/utility.h +3 -41
  2109. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc +243 -0
  2110. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.cc +53 -0
  2111. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.cc +47 -0
  2112. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.cc +42 -0
  2113. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.cc +109 -0
  2114. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.cc +43 -0
  2115. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc +424 -0
  2116. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.cc +239 -0
  2117. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.cc +193 -0
  2118. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.cc +32 -0
  2119. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.cc +415 -0
  2120. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.cc +206 -0
  2121. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.cc +224 -0
  2122. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.cc +172 -0
  2123. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.cc +109 -0
  2124. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.cc +355 -0
  2125. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.cc +61 -0
  2126. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.cc +56 -0
  2127. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.cc +63 -0
  2128. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.cc +52 -0
  2129. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +13 -57
  2130. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.cc +241 -0
  2131. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc +932 -0
  2132. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc +669 -0
  2133. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.cc +164 -0
  2134. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.cc +276 -0
  2135. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc +84 -0
  2136. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.cc +229 -0
  2137. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.cc +434 -0
  2138. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +119 -0
  2139. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.cc +658 -0
  2140. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.cc +268 -0
  2141. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc +511 -0
  2142. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.cc +50 -0
  2143. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.cc +193 -0
  2144. data/third_party/boringssl-with-bazel/src/crypto/bio/file.cc +292 -0
  2145. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.cc +152 -0
  2146. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +13 -55
  2147. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.cc +446 -0
  2148. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.cc +59 -0
  2149. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc +147 -0
  2150. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc +133 -0
  2151. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.cc +169 -0
  2152. data/third_party/boringssl-with-bazel/src/crypto/bn/bn_asn1.cc +57 -0
  2153. data/third_party/boringssl-with-bazel/src/crypto/bn/convert.cc +423 -0
  2154. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.cc +118 -0
  2155. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.cc +53 -0
  2156. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.cc +266 -0
  2157. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc +702 -0
  2158. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc +912 -0
  2159. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +13 -13
  2160. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.cc +156 -0
  2161. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.cc +224 -0
  2162. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +36 -32
  2163. data/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc +110 -0
  2164. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesctrhmac.cc +279 -0
  2165. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc +845 -0
  2166. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_chacha20poly1305.cc +341 -0
  2167. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_des.cc +198 -0
  2168. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_null.cc +51 -0
  2169. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc2.cc +417 -0
  2170. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc4.cc +54 -0
  2171. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_tls.cc +599 -0
  2172. data/third_party/boringssl-with-bazel/src/crypto/cipher/get_cipher.cc +85 -0
  2173. data/third_party/boringssl-with-bazel/src/crypto/cipher/internal.h +240 -0
  2174. data/third_party/boringssl-with-bazel/src/crypto/cipher/tls_cbc.cc +476 -0
  2175. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.cc +631 -0
  2176. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +13 -13
  2177. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +75 -0
  2178. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +55 -0
  2179. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +62 -0
  2180. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +61 -0
  2181. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +94 -0
  2182. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +41 -0
  2183. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +54 -0
  2184. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +151 -0
  2185. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +13 -13
  2186. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc +287 -0
  2187. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +183 -0
  2188. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.cc +2154 -0
  2189. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.cc +18 -0
  2190. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +13 -13
  2191. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +13 -13
  2192. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.cc +529 -0
  2193. data/third_party/boringssl-with-bazel/src/crypto/des/des.cc +829 -0
  2194. data/third_party/boringssl-with-bazel/src/crypto/des/internal.h +27 -69
  2195. data/third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc +124 -0
  2196. data/third_party/boringssl-with-bazel/src/crypto/dh/params.cc +442 -0
  2197. data/third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc +306 -0
  2198. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc +951 -0
  2199. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc +379 -0
  2200. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +13 -13
  2201. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_asn1.cc +570 -0
  2202. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_derive.cc +96 -0
  2203. data/third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc +510 -0
  2204. data/third_party/boringssl-with-bazel/src/crypto/ec/internal.h +78 -0
  2205. data/third_party/boringssl-with-bazel/src/crypto/ecdh/ecdh.cc +73 -0
  2206. data/third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc +357 -0
  2207. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.cc +95 -0
  2208. data/third_party/boringssl-with-bazel/src/crypto/err/err.cc +810 -0
  2209. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +13 -13
  2210. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.cc +379 -0
  2211. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc +471 -0
  2212. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc +440 -0
  2213. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +20 -55
  2214. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.cc +153 -0
  2215. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.cc +142 -0
  2216. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc +279 -0
  2217. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.cc +230 -0
  2218. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc +286 -0
  2219. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.cc +103 -0
  2220. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc +225 -0
  2221. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.cc +236 -0
  2222. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.cc +609 -0
  2223. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc +198 -0
  2224. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.cc +109 -0
  2225. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc +237 -0
  2226. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.cc +98 -0
  2227. data/third_party/boringssl-with-bazel/src/crypto/evp/print.cc +342 -0
  2228. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.cc +216 -0
  2229. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc +114 -0
  2230. data/third_party/boringssl-with-bazel/src/crypto/ex_data.cc +141 -0
  2231. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc +191 -0
  2232. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.cc.inc +1281 -0
  2233. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cbc.cc.inc +130 -0
  2234. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cfb.cc.inc +166 -0
  2235. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ctr.cc.inc +100 -0
  2236. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm.cc.inc +604 -0
  2237. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm_nohw.cc.inc +302 -0
  2238. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +450 -75
  2239. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.cc.inc +208 -0
  2240. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc +84 -0
  2241. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ofb.cc.inc +53 -0
  2242. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/polyval.cc.inc +89 -0
  2243. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc +282 -0
  2244. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +729 -0
  2245. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.cc.inc +269 -0
  2246. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +554 -0
  2247. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.cc.inc +374 -0
  2248. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.cc.inc +225 -0
  2249. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.cc.inc +159 -0
  2250. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.cc.inc +191 -0
  2251. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc +825 -0
  2252. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.cc.inc +87 -0
  2253. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc +1227 -0
  2254. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc +300 -0
  2255. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc +339 -0
  2256. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.cc.inc +582 -0
  2257. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +52 -151
  2258. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.cc.inc +108 -0
  2259. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc +430 -0
  2260. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.cc.inc +222 -0
  2261. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc +698 -0
  2262. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc +980 -0
  2263. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.cc.inc +260 -0
  2264. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.cc.inc +142 -0
  2265. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +20 -17
  2266. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc +320 -0
  2267. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc +459 -0
  2268. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.cc.inc +295 -0
  2269. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.cc.inc +672 -0
  2270. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc +1242 -0
  2271. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.cc.inc +409 -0
  2272. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +14 -68
  2273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.cc.inc +288 -0
  2274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +26 -22
  2275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.cc.inc +203 -0
  2276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc +443 -0
  2277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +13 -15
  2278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.cc.inc +250 -0
  2279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.cc.inc +178 -0
  2280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +13 -55
  2281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +13 -47
  2282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.cc.inc +226 -0
  2283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +91 -91
  2284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.cc.inc +986 -0
  2285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc +501 -0
  2286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.cc.inc +439 -0
  2287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.cc.inc +104 -0
  2288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +19 -66
  2289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.cc.inc +306 -0
  2290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.cc.inc +1163 -0
  2291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h +15 -10
  2292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.cc.inc +741 -0
  2293. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +87 -25
  2294. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.cc.inc +749 -0
  2295. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +13 -13
  2296. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.cc.inc +179 -0
  2297. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc +284 -0
  2298. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.cc.inc +269 -0
  2299. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.cc.inc +255 -0
  2300. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.cc.inc +221 -0
  2301. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.cc.inc +88 -0
  2302. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +278 -0
  2303. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +41 -24
  2304. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.cc +28 -0
  2305. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.cc.inc +112 -0
  2306. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.cc.inc +215 -0
  2307. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/internal.h +70 -0
  2308. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/keccak.cc.inc +279 -0
  2309. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc +1993 -0
  2310. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc +1165 -0
  2311. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.cc.inc +214 -0
  2312. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +19 -104
  2313. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.cc.inc +483 -0
  2314. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.cc.inc +147 -0
  2315. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +13 -56
  2316. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.cc.inc +379 -0
  2317. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc +983 -0
  2318. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1296 -0
  2319. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  2320. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc +1042 -0
  2321. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +36 -36
  2322. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +327 -0
  2323. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +109 -74
  2324. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.cc.inc +390 -0
  2325. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.cc.inc +299 -0
  2326. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  2327. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/address.h +119 -0
  2328. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.cc.inc +169 -0
  2329. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.h +58 -0
  2330. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.cc.inc +161 -0
  2331. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.h +70 -0
  2332. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/params.h +78 -0
  2333. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +329 -0
  2334. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.cc.inc +173 -0
  2335. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.h +85 -0
  2336. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.cc.inc +171 -0
  2337. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.h +50 -0
  2338. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +13 -13
  2339. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  2340. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.cc +1095 -0
  2341. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.cc +2185 -0
  2342. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +13 -13
  2343. data/third_party/boringssl-with-bazel/src/crypto/internal.h +346 -456
  2344. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +14 -14
  2345. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.cc +869 -0
  2346. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +31 -75
  2347. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.cc +309 -0
  2348. data/third_party/boringssl-with-bazel/src/crypto/md4/md4.cc +194 -0
  2349. data/third_party/boringssl-with-bazel/src/crypto/md5/internal.h +37 -0
  2350. data/third_party/boringssl-with-bazel/src/crypto/md5/md5.cc +243 -0
  2351. data/third_party/boringssl-with-bazel/src/crypto/mem.cc +583 -0
  2352. data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.cc +90 -0
  2353. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +152 -0
  2354. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc +519 -0
  2355. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +18 -57
  2356. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.cc +80 -0
  2357. data/third_party/boringssl-with-bazel/src/crypto/pem/internal.h +44 -0
  2358. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.cc +149 -0
  2359. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.cc +254 -0
  2360. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc +741 -0
  2361. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.cc +45 -0
  2362. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.cc +208 -0
  2363. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.cc +141 -0
  2364. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.cc +22 -0
  2365. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.cc +22 -0
  2366. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +13 -13
  2367. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc +193 -0
  2368. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc +526 -0
  2369. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +14 -54
  2370. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc +275 -0
  2371. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc +487 -0
  2372. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc +1304 -0
  2373. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +13 -13
  2374. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.cc +314 -0
  2375. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.cc +310 -0
  2376. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.cc +850 -0
  2377. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +13 -13
  2378. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.cc +262 -0
  2379. data/third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc +65 -0
  2380. data/third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc +194 -0
  2381. data/third_party/boringssl-with-bazel/src/crypto/rand/forkunsafe.cc +44 -0
  2382. data/third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc +60 -0
  2383. data/third_party/boringssl-with-bazel/src/crypto/rand/getrandom_fillin.h +64 -0
  2384. data/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc +42 -0
  2385. data/third_party/boringssl-with-bazel/src/crypto/rand/passive.cc +178 -0
  2386. data/third_party/boringssl-with-bazel/src/crypto/rand/rand.cc +77 -0
  2387. data/third_party/boringssl-with-bazel/src/crypto/rand/sysrand_internal.h +37 -0
  2388. data/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc +46 -0
  2389. data/third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc +328 -0
  2390. data/third_party/boringssl-with-bazel/src/crypto/rand/windows.cc +102 -0
  2391. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.cc +56 -0
  2392. data/third_party/boringssl-with-bazel/src/crypto/refcount.cc +59 -0
  2393. data/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h +36 -0
  2394. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_asn1.cc +283 -0
  2395. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc +531 -0
  2396. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_extra.cc +19 -0
  2397. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_print.cc +27 -0
  2398. data/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc +52 -0
  2399. data/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc +87 -0
  2400. data/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc +104 -0
  2401. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.cc +79 -0
  2402. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc +113 -0
  2403. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h +204 -0
  2404. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/spake2plus.cc +501 -0
  2405. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.cc +496 -0
  2406. data/third_party/boringssl-with-bazel/src/crypto/thread.cc +68 -0
  2407. data/third_party/boringssl-with-bazel/src/crypto/thread_none.cc +51 -0
  2408. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.cc +151 -0
  2409. data/third_party/boringssl-with-bazel/src/crypto/thread_win.cc +240 -0
  2410. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +13 -13
  2411. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.cc +1656 -0
  2412. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.cc +685 -0
  2413. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.cc +1263 -0
  2414. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.cc +52 -0
  2415. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc +97 -0
  2416. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.cc +74 -0
  2417. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.cc +136 -0
  2418. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc +542 -0
  2419. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.cc +355 -0
  2420. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.cc +227 -0
  2421. data/third_party/boringssl-with-bazel/src/crypto/x509/ext_dat.h +13 -55
  2422. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.cc +37 -0
  2423. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +17 -62
  2424. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.cc +185 -0
  2425. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.cc +796 -0
  2426. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.cc +364 -0
  2427. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.cc +103 -0
  2428. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.cc +203 -0
  2429. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.cc +287 -0
  2430. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.cc +79 -0
  2431. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.cc +181 -0
  2432. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.cc +31 -0
  2433. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.cc +593 -0
  2434. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.cc +95 -0
  2435. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.cc +102 -0
  2436. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc +374 -0
  2437. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.cc +444 -0
  2438. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.cc +557 -0
  2439. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.cc +73 -0
  2440. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.cc +114 -0
  2441. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.cc +228 -0
  2442. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.cc +79 -0
  2443. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc +164 -0
  2444. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.cc +81 -0
  2445. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.cc +304 -0
  2446. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.cc +514 -0
  2447. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.cc +89 -0
  2448. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.cc +101 -0
  2449. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.cc +109 -0
  2450. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.cc +183 -0
  2451. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.cc +590 -0
  2452. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.cc +131 -0
  2453. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.cc +1342 -0
  2454. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.cc +47 -0
  2455. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.cc +186 -0
  2456. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.cc +238 -0
  2457. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.cc +66 -0
  2458. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.cc +44 -0
  2459. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.cc +139 -0
  2460. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.cc +554 -0
  2461. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.cc +164 -0
  2462. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.cc +257 -0
  2463. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.cc +198 -0
  2464. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.cc +118 -0
  2465. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.cc +147 -0
  2466. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.cc +249 -0
  2467. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc +1600 -0
  2468. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.cc +440 -0
  2469. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.cc +235 -0
  2470. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.cc +365 -0
  2471. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.cc +67 -0
  2472. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.cc +91 -0
  2473. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc +107 -0
  2474. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.cc +318 -0
  2475. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.cc +55 -0
  2476. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.cc +342 -0
  2477. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.cc +36 -0
  2478. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc +492 -0
  2479. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.cc +170 -0
  2480. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.cc +74 -0
  2481. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.cc +51 -0
  2482. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.cc +34 -0
  2483. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.cc +28 -0
  2484. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc +506 -0
  2485. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc +169 -0
  2486. data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc +1529 -0
  2487. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +13 -13
  2488. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +13 -47
  2489. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +13 -51
  2490. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +14 -14
  2491. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +37 -63
  2492. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +13 -13
  2493. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +248 -328
  2494. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -55
  2495. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +13 -55
  2496. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +82 -0
  2497. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +98 -97
  2498. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +13 -13
  2499. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +13 -55
  2500. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +28 -130
  2501. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +13 -55
  2502. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +13 -13
  2503. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +43 -20
  2504. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +13 -55
  2505. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +13 -13
  2506. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +31 -59
  2507. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +13 -13
  2508. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +13 -55
  2509. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +13 -13
  2510. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +35 -25
  2511. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +13 -13
  2512. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +13 -13
  2513. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +13 -55
  2514. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +34 -56
  2515. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +19 -56
  2516. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -61
  2517. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +13 -13
  2518. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +13 -13
  2519. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +14 -66
  2520. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +31 -72
  2521. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +14 -65
  2522. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +13 -51
  2523. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +13 -13
  2524. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +26 -107
  2525. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +39 -70
  2526. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +14 -55
  2527. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +28 -110
  2528. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +146 -0
  2529. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +13 -13
  2530. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +13 -55
  2531. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +21 -19
  2532. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +13 -13
  2533. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +13 -13
  2534. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +13 -13
  2535. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +13 -55
  2536. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +13 -55
  2537. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +13 -55
  2538. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +13 -55
  2539. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +130 -0
  2540. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +222 -0
  2541. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +30 -69
  2542. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +15 -57
  2543. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +13 -13
  2544. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +13 -13
  2545. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +13 -13
  2546. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +13 -13
  2547. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +13 -13
  2548. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +88 -117
  2549. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +13 -13
  2550. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +13 -13
  2551. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +13 -55
  2552. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +13 -13
  2553. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +13 -13
  2554. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +13 -13
  2555. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +32 -23
  2556. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +13 -55
  2557. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +13 -55
  2558. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +23 -63
  2559. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +13 -13
  2560. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +15 -15
  2561. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +15 -95
  2562. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +13 -13
  2563. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +174 -0
  2564. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +60 -32
  2565. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +13 -13
  2566. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +723 -369
  2567. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +15 -114
  2568. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +23 -58
  2569. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +36 -23
  2570. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +15 -57
  2571. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +13 -13
  2572. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +29 -158
  2573. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +15 -15
  2574. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +13 -55
  2575. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2951 -2520
  2576. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +13 -13
  2577. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +13 -13
  2578. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3_errors.h +13 -53
  2579. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +15 -14
  2580. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +684 -441
  2581. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +129 -168
  2582. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +177 -127
  2583. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +21 -127
  2584. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +112 -97
  2585. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +456 -222
  2586. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +57 -56
  2587. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +740 -530
  2588. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +67 -74
  2589. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +78 -160
  2590. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +283 -332
  2591. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +242 -324
  2592. data/third_party/boringssl-with-bazel/src/ssl/internal.h +1213 -648
  2593. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +88 -170
  2594. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +29 -160
  2595. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +39 -113
  2596. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +103 -111
  2597. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +52 -145
  2598. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +22 -24
  2599. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +155 -521
  2600. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +239 -373
  2601. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +608 -0
  2602. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +15 -111
  2603. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +129 -33
  2604. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +289 -389
  2605. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +147 -169
  2606. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +104 -247
  2607. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +17 -91
  2608. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +109 -157
  2609. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +48 -28
  2610. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +104 -301
  2611. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +45 -176
  2612. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +79 -69
  2613. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +187 -88
  2614. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +296 -163
  2615. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +290 -116
  2616. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +64 -117
  2617. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +55 -157
  2618. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +6 -0
  2619. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +6 -0
  2620. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +4 -1
  2621. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1 -1
  2622. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +3 -0
  2623. data/third_party/upb/upb/base/string_view.h +1 -1
  2624. data/third_party/upb/upb/json/decode.c +60 -13
  2625. data/third_party/upb/upb/json/decode.h +26 -3
  2626. data/third_party/upb/upb/json/encode.c +2 -2
  2627. data/third_party/upb/upb/lex/round_trip.c +10 -0
  2628. data/third_party/upb/upb/mem/arena.c +80 -4
  2629. data/third_party/upb/upb/mem/arena.h +20 -9
  2630. data/third_party/upb/upb/mem/arena.hpp +5 -1
  2631. data/third_party/upb/upb/mem/internal/arena.h +11 -8
  2632. data/third_party/upb/upb/message/accessors.c +6 -7
  2633. data/third_party/upb/upb/message/accessors.h +186 -376
  2634. data/third_party/upb/upb/message/array.c +26 -3
  2635. data/third_party/upb/upb/message/array.h +17 -9
  2636. data/third_party/upb/upb/message/compat.c +5 -5
  2637. data/third_party/upb/upb/message/compat.h +3 -3
  2638. data/third_party/upb/upb/message/copy.c +23 -20
  2639. data/third_party/upb/upb/message/internal/accessors.h +617 -55
  2640. data/third_party/upb/upb/message/internal/array.h +23 -15
  2641. data/third_party/upb/upb/message/internal/compare_unknown.c +289 -0
  2642. data/third_party/upb/upb/message/internal/compare_unknown.h +49 -0
  2643. data/third_party/upb/upb/message/internal/extension.c +12 -12
  2644. data/third_party/upb/upb/message/internal/extension.h +9 -12
  2645. data/third_party/upb/upb/message/internal/map.h +15 -0
  2646. data/third_party/upb/upb/message/internal/map_sorter.h +4 -5
  2647. data/third_party/upb/upb/message/internal/message.c +22 -6
  2648. data/third_party/upb/upb/message/internal/message.h +11 -0
  2649. data/third_party/upb/upb/message/internal/tagged_ptr.h +5 -5
  2650. data/third_party/upb/upb/message/internal/types.h +41 -1
  2651. data/third_party/upb/upb/message/map.c +25 -0
  2652. data/third_party/upb/upb/message/map.h +11 -7
  2653. data/third_party/upb/upb/message/merge.c +38 -0
  2654. data/third_party/upb/upb/message/merge.h +26 -0
  2655. data/third_party/upb/upb/message/message.c +83 -4
  2656. data/third_party/upb/upb/message/message.h +16 -1
  2657. data/third_party/upb/upb/message/tagged_ptr.h +4 -8
  2658. data/third_party/upb/upb/message/value.h +26 -0
  2659. data/third_party/upb/upb/mini_descriptor/build_enum.c +3 -3
  2660. data/third_party/upb/upb/mini_descriptor/build_enum.h +6 -14
  2661. data/third_party/upb/upb/mini_descriptor/decode.c +19 -3
  2662. data/third_party/upb/upb/mini_descriptor/link.c +23 -21
  2663. data/third_party/upb/upb/mini_table/enum.h +2 -4
  2664. data/third_party/upb/upb/mini_table/extension.h +4 -12
  2665. data/third_party/upb/upb/mini_table/extension_registry.c +18 -0
  2666. data/third_party/upb/upb/mini_table/extension_registry.h +17 -0
  2667. data/third_party/upb/upb/mini_table/field.h +12 -38
  2668. data/third_party/upb/upb/mini_table/file.h +6 -19
  2669. data/third_party/upb/upb/mini_table/internal/enum.h +1 -1
  2670. data/third_party/upb/upb/mini_table/internal/extension.h +18 -9
  2671. data/third_party/upb/upb/mini_table/internal/field.h +23 -23
  2672. data/third_party/upb/upb/mini_table/internal/file.h +7 -7
  2673. data/third_party/upb/upb/mini_table/internal/message.c +21 -1
  2674. data/third_party/upb/upb/mini_table/internal/message.h +80 -36
  2675. data/third_party/upb/upb/mini_table/internal/sub.h +9 -4
  2676. data/third_party/upb/upb/mini_table/message.h +23 -22
  2677. data/third_party/upb/upb/mini_table/sub.h +4 -12
  2678. data/third_party/upb/upb/port/def.inc +108 -12
  2679. data/third_party/upb/upb/port/undef.inc +8 -1
  2680. data/third_party/upb/upb/reflection/common.h +1 -11
  2681. data/third_party/upb/upb/reflection/def.hpp +35 -0
  2682. data/third_party/upb/upb/reflection/def_pool.h +2 -2
  2683. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +19 -0
  2684. data/third_party/upb/upb/reflection/enum_def.c +5 -1
  2685. data/third_party/upb/upb/reflection/enum_def.h +1 -0
  2686. data/third_party/upb/upb/reflection/enum_value_def.c +3 -8
  2687. data/third_party/upb/upb/reflection/field_def.c +72 -46
  2688. data/third_party/upb/upb/reflection/field_def.h +4 -0
  2689. data/third_party/upb/upb/reflection/file_def.c +30 -4
  2690. data/third_party/upb/upb/reflection/file_def.h +3 -0
  2691. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  2692. data/third_party/upb/upb/reflection/message.c +26 -9
  2693. data/third_party/upb/upb/reflection/message.h +2 -2
  2694. data/third_party/upb/upb/reflection/message_def.c +14 -9
  2695. data/third_party/upb/upb/reflection/method_def.h +8 -7
  2696. data/third_party/upb/upb/reflection/service_def.h +6 -5
  2697. data/third_party/upb/upb/text/encode.c +53 -389
  2698. data/third_party/upb/upb/text/encode.h +1 -11
  2699. data/third_party/upb/upb/text/internal/encode.c +180 -0
  2700. data/third_party/upb/upb/text/internal/encode.h +240 -0
  2701. data/third_party/upb/upb/text/options.h +22 -0
  2702. data/third_party/upb/upb/wire/decode.c +160 -94
  2703. data/third_party/upb/upb/wire/decode.h +15 -2
  2704. data/third_party/upb/upb/wire/encode.c +89 -48
  2705. data/third_party/upb/upb/wire/encode.h +12 -1
  2706. data/third_party/upb/upb/wire/eps_copy_input_stream.h +3 -3
  2707. data/third_party/upb/upb/wire/internal/decode_fast.c +28 -29
  2708. data/third_party/upb/upb/wire/internal/reader.h +3 -3
  2709. data/third_party/upb/upb/wire/reader.c +1 -2
  2710. data/third_party/upb/upb/wire/reader.h +4 -8
  2711. metadata +737 -639
  2712. data/src/core/client_channel/client_channel_channelz.cc +0 -93
  2713. data/src/core/client_channel/client_channel_channelz.h +0 -85
  2714. data/src/core/client_channel/config_selector.cc +0 -60
  2715. data/src/core/client_channel/http_proxy_mapper.cc +0 -304
  2716. data/src/core/client_channel/http_proxy_mapper.h +0 -53
  2717. data/src/core/ext/filters/deadline/deadline_filter.cc +0 -407
  2718. data/src/core/ext/filters/deadline/deadline_filter.h +0 -85
  2719. data/src/core/ext/filters/server_config_selector/server_config_selector.h +0 -83
  2720. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +0 -171
  2721. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +0 -33
  2722. data/src/core/ext/gcp/metadata_query.cc +0 -136
  2723. data/src/core/ext/gcp/metadata_query.h +0 -87
  2724. data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
  2725. data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
  2726. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.cc +0 -44
  2727. data/src/core/ext/transport/chttp2/transport/max_concurrent_streams_policy.h +0 -67
  2728. data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
  2729. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +0 -419
  2730. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +0 -81
  2731. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +0 -30
  2732. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +0 -400
  2733. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +0 -106
  2734. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +0 -33
  2735. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +0 -104
  2736. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +0 -32
  2737. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -66
  2738. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -47
  2739. data/src/core/ext/xds/certificate_provider_store.cc +0 -155
  2740. data/src/core/ext/xds/certificate_provider_store.h +0 -134
  2741. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +0 -138
  2742. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +0 -82
  2743. data/src/core/ext/xds/upb_utils.h +0 -45
  2744. data/src/core/ext/xds/xds_api.cc +0 -572
  2745. data/src/core/ext/xds/xds_api.h +0 -189
  2746. data/src/core/ext/xds/xds_audit_logger_registry.cc +0 -123
  2747. data/src/core/ext/xds/xds_audit_logger_registry.h +0 -68
  2748. data/src/core/ext/xds/xds_bootstrap.cc +0 -38
  2749. data/src/core/ext/xds/xds_bootstrap.h +0 -88
  2750. data/src/core/ext/xds/xds_bootstrap_grpc.cc +0 -397
  2751. data/src/core/ext/xds/xds_bootstrap_grpc.h +0 -197
  2752. data/src/core/ext/xds/xds_certificate_provider.cc +0 -217
  2753. data/src/core/ext/xds/xds_certificate_provider.h +0 -116
  2754. data/src/core/ext/xds/xds_channel_args.h +0 -32
  2755. data/src/core/ext/xds/xds_channel_stack_modifier.cc +0 -107
  2756. data/src/core/ext/xds/xds_channel_stack_modifier.h +0 -64
  2757. data/src/core/ext/xds/xds_client.cc +0 -2303
  2758. data/src/core/ext/xds/xds_client.h +0 -391
  2759. data/src/core/ext/xds/xds_client_grpc.cc +0 -410
  2760. data/src/core/ext/xds/xds_client_grpc.h +0 -110
  2761. data/src/core/ext/xds/xds_client_stats.cc +0 -173
  2762. data/src/core/ext/xds/xds_client_stats.h +0 -258
  2763. data/src/core/ext/xds/xds_cluster.cc +0 -795
  2764. data/src/core/ext/xds/xds_cluster.h +0 -145
  2765. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +0 -140
  2766. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +0 -97
  2767. data/src/core/ext/xds/xds_common_types.cc +0 -509
  2768. data/src/core/ext/xds/xds_common_types.h +0 -108
  2769. data/src/core/ext/xds/xds_endpoint.cc +0 -517
  2770. data/src/core/ext/xds/xds_endpoint.h +0 -150
  2771. data/src/core/ext/xds/xds_health_status.cc +0 -75
  2772. data/src/core/ext/xds/xds_health_status.h +0 -91
  2773. data/src/core/ext/xds/xds_http_fault_filter.cc +0 -238
  2774. data/src/core/ext/xds/xds_http_fault_filter.h +0 -58
  2775. data/src/core/ext/xds/xds_http_filters.cc +0 -117
  2776. data/src/core/ext/xds/xds_http_filters.h +0 -182
  2777. data/src/core/ext/xds/xds_http_rbac_filter.cc +0 -588
  2778. data/src/core/ext/xds/xds_http_rbac_filter.h +0 -58
  2779. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +0 -218
  2780. data/src/core/ext/xds/xds_http_stateful_session_filter.h +0 -58
  2781. data/src/core/ext/xds/xds_lb_policy_registry.cc +0 -371
  2782. data/src/core/ext/xds/xds_lb_policy_registry.h +0 -71
  2783. data/src/core/ext/xds/xds_listener.cc +0 -1142
  2784. data/src/core/ext/xds/xds_listener.h +0 -236
  2785. data/src/core/ext/xds/xds_metrics.h +0 -39
  2786. data/src/core/ext/xds/xds_resource_type.h +0 -98
  2787. data/src/core/ext/xds/xds_resource_type_impl.h +0 -88
  2788. data/src/core/ext/xds/xds_route_config.cc +0 -1198
  2789. data/src/core/ext/xds/xds_route_config.h +0 -253
  2790. data/src/core/ext/xds/xds_routing.cc +0 -264
  2791. data/src/core/ext/xds/xds_routing.h +0 -106
  2792. data/src/core/ext/xds/xds_server_config_fetcher.cc +0 -1393
  2793. data/src/core/ext/xds/xds_transport.h +0 -89
  2794. data/src/core/ext/xds/xds_transport_grpc.cc +0 -350
  2795. data/src/core/ext/xds/xds_transport_grpc.h +0 -139
  2796. data/src/core/lib/avl/avl.h +0 -325
  2797. data/src/core/lib/backoff/backoff.cc +0 -47
  2798. data/src/core/lib/backoff/backoff.h +0 -89
  2799. data/src/core/lib/backoff/random_early_detection.cc +0 -33
  2800. data/src/core/lib/backoff/random_early_detection.h +0 -62
  2801. data/src/core/lib/channel/call_tracer.cc +0 -364
  2802. data/src/core/lib/channel/call_tracer.h +0 -227
  2803. data/src/core/lib/channel/channel_stack_trace.cc +0 -19
  2804. data/src/core/lib/channel/channel_stack_trace.h +0 -24
  2805. data/src/core/lib/channel/channel_trace.cc +0 -187
  2806. data/src/core/lib/channel/channel_trace.h +0 -138
  2807. data/src/core/lib/channel/channelz.cc +0 -610
  2808. data/src/core/lib/channel/channelz.h +0 -384
  2809. data/src/core/lib/channel/channelz_registry.cc +0 -281
  2810. data/src/core/lib/channel/channelz_registry.h +0 -102
  2811. data/src/core/lib/channel/context.h +0 -77
  2812. data/src/core/lib/channel/metrics.cc +0 -396
  2813. data/src/core/lib/channel/metrics.h +0 -406
  2814. data/src/core/lib/channel/server_call_tracer_filter.cc +0 -113
  2815. data/src/core/lib/channel/server_call_tracer_filter.h +0 -28
  2816. data/src/core/lib/channel/tcp_tracer.h +0 -144
  2817. data/src/core/lib/config/config_vars.cc +0 -154
  2818. data/src/core/lib/config/config_vars.h +0 -131
  2819. data/src/core/lib/config/config_vars_non_generated.cc +0 -49
  2820. data/src/core/lib/config/core_configuration.cc +0 -111
  2821. data/src/core/lib/config/core_configuration.h +0 -244
  2822. data/src/core/lib/config/load_config.cc +0 -79
  2823. data/src/core/lib/config/load_config.h +0 -55
  2824. data/src/core/lib/debug/event_log.cc +0 -88
  2825. data/src/core/lib/debug/event_log.h +0 -81
  2826. data/src/core/lib/debug/histogram_view.cc +0 -69
  2827. data/src/core/lib/debug/histogram_view.h +0 -37
  2828. data/src/core/lib/debug/stats.cc +0 -68
  2829. data/src/core/lib/debug/stats.h +0 -64
  2830. data/src/core/lib/debug/stats_data.cc +0 -752
  2831. data/src/core/lib/debug/stats_data.h +0 -579
  2832. data/src/core/lib/event_engine/trace.cc +0 -25
  2833. data/src/core/lib/event_engine/trace.h +0 -49
  2834. data/src/core/lib/gpr/alloc.cc +0 -71
  2835. data/src/core/lib/gpr/alloc.h +0 -28
  2836. data/src/core/lib/gpr/android/log.cc +0 -79
  2837. data/src/core/lib/gpr/atm.cc +0 -35
  2838. data/src/core/lib/gpr/iphone/cpu.cc +0 -44
  2839. data/src/core/lib/gpr/linux/cpu.cc +0 -87
  2840. data/src/core/lib/gpr/linux/log.cc +0 -114
  2841. data/src/core/lib/gpr/log.cc +0 -166
  2842. data/src/core/lib/gpr/log_internal.h +0 -55
  2843. data/src/core/lib/gpr/msys/tmpfile.cc +0 -59
  2844. data/src/core/lib/gpr/posix/cpu.cc +0 -84
  2845. data/src/core/lib/gpr/posix/log.cc +0 -111
  2846. data/src/core/lib/gpr/posix/string.cc +0 -72
  2847. data/src/core/lib/gpr/posix/sync.cc +0 -159
  2848. data/src/core/lib/gpr/posix/time.cc +0 -122
  2849. data/src/core/lib/gpr/posix/tmpfile.cc +0 -71
  2850. data/src/core/lib/gpr/spinlock.h +0 -53
  2851. data/src/core/lib/gpr/string.cc +0 -344
  2852. data/src/core/lib/gpr/string.h +0 -112
  2853. data/src/core/lib/gpr/sync.cc +0 -124
  2854. data/src/core/lib/gpr/sync_abseil.cc +0 -110
  2855. data/src/core/lib/gpr/time.cc +0 -269
  2856. data/src/core/lib/gpr/time_precise.cc +0 -168
  2857. data/src/core/lib/gpr/time_precise.h +0 -69
  2858. data/src/core/lib/gpr/tmpfile.h +0 -32
  2859. data/src/core/lib/gpr/useful.h +0 -184
  2860. data/src/core/lib/gpr/windows/cpu.cc +0 -35
  2861. data/src/core/lib/gpr/windows/log.cc +0 -116
  2862. data/src/core/lib/gpr/windows/string.cc +0 -69
  2863. data/src/core/lib/gpr/windows/string_util.cc +0 -55
  2864. data/src/core/lib/gpr/windows/sync.cc +0 -122
  2865. data/src/core/lib/gpr/windows/time.cc +0 -105
  2866. data/src/core/lib/gpr/windows/tmpfile.cc +0 -68
  2867. data/src/core/lib/gprpp/atomic_utils.h +0 -47
  2868. data/src/core/lib/gprpp/bitset.h +0 -225
  2869. data/src/core/lib/gprpp/chunked_vector.h +0 -257
  2870. data/src/core/lib/gprpp/construct_destruct.h +0 -40
  2871. data/src/core/lib/gprpp/cpp_impl_of.h +0 -49
  2872. data/src/core/lib/gprpp/crash.cc +0 -43
  2873. data/src/core/lib/gprpp/crash.h +0 -37
  2874. data/src/core/lib/gprpp/debug_location.h +0 -99
  2875. data/src/core/lib/gprpp/directory_reader.h +0 -48
  2876. data/src/core/lib/gprpp/down_cast.h +0 -49
  2877. data/src/core/lib/gprpp/dual_ref_counted.h +0 -364
  2878. data/src/core/lib/gprpp/env.h +0 -53
  2879. data/src/core/lib/gprpp/examine_stack.cc +0 -43
  2880. data/src/core/lib/gprpp/examine_stack.h +0 -45
  2881. data/src/core/lib/gprpp/fork.cc +0 -242
  2882. data/src/core/lib/gprpp/fork.h +0 -98
  2883. data/src/core/lib/gprpp/host_port.cc +0 -114
  2884. data/src/core/lib/gprpp/host_port.h +0 -57
  2885. data/src/core/lib/gprpp/if_list.h +0 -4530
  2886. data/src/core/lib/gprpp/linux/env.cc +0 -62
  2887. data/src/core/lib/gprpp/load_file.cc +0 -78
  2888. data/src/core/lib/gprpp/load_file.h +0 -34
  2889. data/src/core/lib/gprpp/manual_constructor.h +0 -146
  2890. data/src/core/lib/gprpp/match.h +0 -75
  2891. data/src/core/lib/gprpp/memory.h +0 -53
  2892. data/src/core/lib/gprpp/mpscq.cc +0 -108
  2893. data/src/core/lib/gprpp/mpscq.h +0 -99
  2894. data/src/core/lib/gprpp/no_destruct.h +0 -95
  2895. data/src/core/lib/gprpp/notification.h +0 -67
  2896. data/src/core/lib/gprpp/orphanable.h +0 -153
  2897. data/src/core/lib/gprpp/overload.h +0 -59
  2898. data/src/core/lib/gprpp/packed_table.h +0 -40
  2899. data/src/core/lib/gprpp/per_cpu.cc +0 -35
  2900. data/src/core/lib/gprpp/per_cpu.h +0 -104
  2901. data/src/core/lib/gprpp/posix/directory_reader.cc +0 -82
  2902. data/src/core/lib/gprpp/posix/env.cc +0 -47
  2903. data/src/core/lib/gprpp/posix/stat.cc +0 -54
  2904. data/src/core/lib/gprpp/posix/thd.cc +0 -247
  2905. data/src/core/lib/gprpp/ref_counted.h +0 -394
  2906. data/src/core/lib/gprpp/ref_counted_ptr.h +0 -445
  2907. data/src/core/lib/gprpp/ref_counted_string.cc +0 -44
  2908. data/src/core/lib/gprpp/ref_counted_string.h +0 -161
  2909. data/src/core/lib/gprpp/single_set_ptr.h +0 -87
  2910. data/src/core/lib/gprpp/sorted_pack.h +0 -89
  2911. data/src/core/lib/gprpp/stat.h +0 -36
  2912. data/src/core/lib/gprpp/status_helper.cc +0 -453
  2913. data/src/core/lib/gprpp/status_helper.h +0 -190
  2914. data/src/core/lib/gprpp/strerror.cc +0 -41
  2915. data/src/core/lib/gprpp/strerror.h +0 -29
  2916. data/src/core/lib/gprpp/sync.h +0 -200
  2917. data/src/core/lib/gprpp/table.h +0 -452
  2918. data/src/core/lib/gprpp/tchar.cc +0 -49
  2919. data/src/core/lib/gprpp/tchar.h +0 -33
  2920. data/src/core/lib/gprpp/thd.h +0 -195
  2921. data/src/core/lib/gprpp/time.cc +0 -242
  2922. data/src/core/lib/gprpp/time.h +0 -385
  2923. data/src/core/lib/gprpp/time_averaged_stats.cc +0 -60
  2924. data/src/core/lib/gprpp/time_averaged_stats.h +0 -79
  2925. data/src/core/lib/gprpp/time_util.cc +0 -81
  2926. data/src/core/lib/gprpp/time_util.h +0 -42
  2927. data/src/core/lib/gprpp/type_list.h +0 -32
  2928. data/src/core/lib/gprpp/unique_type_name.h +0 -104
  2929. data/src/core/lib/gprpp/uuid_v4.cc +0 -37
  2930. data/src/core/lib/gprpp/uuid_v4.h +0 -36
  2931. data/src/core/lib/gprpp/validation_errors.cc +0 -65
  2932. data/src/core/lib/gprpp/validation_errors.h +0 -134
  2933. data/src/core/lib/gprpp/windows/directory_reader.cc +0 -81
  2934. data/src/core/lib/gprpp/windows/env.cc +0 -56
  2935. data/src/core/lib/gprpp/windows/stat.cc +0 -50
  2936. data/src/core/lib/gprpp/windows/thd.cc +0 -182
  2937. data/src/core/lib/gprpp/work_serializer.cc +0 -558
  2938. data/src/core/lib/gprpp/work_serializer.h +0 -107
  2939. data/src/core/lib/gprpp/xxhash_inline.h +0 -29
  2940. data/src/core/lib/handshaker/proxy_mapper.h +0 -53
  2941. data/src/core/lib/handshaker/proxy_mapper_registry.cc +0 -71
  2942. data/src/core/lib/handshaker/proxy_mapper_registry.h +0 -75
  2943. data/src/core/lib/http/format_request.cc +0 -137
  2944. data/src/core/lib/http/format_request.h +0 -38
  2945. data/src/core/lib/http/httpcli.cc +0 -392
  2946. data/src/core/lib/http/httpcli.h +0 -268
  2947. data/src/core/lib/http/httpcli_security_connector.cc +0 -213
  2948. data/src/core/lib/http/httpcli_ssl_credentials.h +0 -39
  2949. data/src/core/lib/http/parser.cc +0 -451
  2950. data/src/core/lib/http/parser.h +0 -130
  2951. data/src/core/lib/iomgr/ev_windows.cc +0 -30
  2952. data/src/core/lib/iomgr/gethostname.h +0 -26
  2953. data/src/core/lib/iomgr/gethostname_fallback.cc +0 -30
  2954. data/src/core/lib/iomgr/gethostname_host_name_max.cc +0 -40
  2955. data/src/core/lib/iomgr/gethostname_sysconf.cc +0 -40
  2956. data/src/core/lib/iomgr/grpc_if_nametoindex.h +0 -30
  2957. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +0 -43
  2958. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +0 -39
  2959. data/src/core/lib/json/json.h +0 -30
  2960. data/src/core/lib/json/json_args.h +0 -34
  2961. data/src/core/lib/json/json_channel_args.h +0 -42
  2962. data/src/core/lib/json/json_object_loader.cc +0 -216
  2963. data/src/core/lib/json/json_object_loader.h +0 -645
  2964. data/src/core/lib/json/json_reader.cc +0 -956
  2965. data/src/core/lib/json/json_reader.h +0 -34
  2966. data/src/core/lib/json/json_util.cc +0 -101
  2967. data/src/core/lib/json/json_util.h +0 -164
  2968. data/src/core/lib/json/json_writer.cc +0 -339
  2969. data/src/core/lib/json/json_writer.h +0 -33
  2970. data/src/core/lib/matchers/matchers.cc +0 -330
  2971. data/src/core/lib/matchers/matchers.h +0 -163
  2972. data/src/core/lib/promise/trace.cc +0 -20
  2973. data/src/core/lib/promise/trace.h +0 -24
  2974. data/src/core/lib/resource_quota/trace.cc +0 -19
  2975. data/src/core/lib/resource_quota/trace.h +0 -24
  2976. data/src/core/lib/security/transport/secure_endpoint.cc +0 -565
  2977. data/src/core/lib/security/transport/secure_endpoint.h +0 -43
  2978. data/src/core/lib/security/transport/security_handshaker.cc +0 -682
  2979. data/src/core/lib/security/transport/security_handshaker.h +0 -47
  2980. data/src/core/lib/security/transport/tsi_error.cc +0 -31
  2981. data/src/core/lib/security/transport/tsi_error.h +0 -30
  2982. data/src/core/lib/slice/slice_refcount.cc +0 -20
  2983. data/src/core/lib/surface/api_trace.cc +0 -25
  2984. data/src/core/lib/surface/api_trace.h +0 -53
  2985. data/src/core/lib/surface/call_trace.h +0 -24
  2986. data/src/core/lib/surface/server.cc +0 -2030
  2987. data/src/core/lib/surface/server.h +0 -555
  2988. data/src/core/lib/surface/server_interface.h +0 -43
  2989. data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
  2990. data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
  2991. data/src/core/lib/transport/batch_builder.cc +0 -170
  2992. data/src/core/lib/transport/batch_builder.h +0 -476
  2993. data/src/core/lib/transport/call_size_estimator.cc +0 -41
  2994. data/src/core/lib/transport/call_size_estimator.h +0 -52
  2995. data/src/core/lib/transport/endpoint_info_handshaker.cc +0 -80
  2996. data/src/core/lib/transport/endpoint_info_handshaker.h +0 -37
  2997. data/src/core/lib/transport/handshaker.cc +0 -229
  2998. data/src/core/lib/transport/handshaker.h +0 -165
  2999. data/src/core/lib/transport/handshaker_factory.h +0 -73
  3000. data/src/core/lib/transport/handshaker_registry.cc +0 -61
  3001. data/src/core/lib/transport/handshaker_registry.h +0 -69
  3002. data/src/core/lib/transport/http_connect_handshaker.cc +0 -400
  3003. data/src/core/lib/transport/http_connect_handshaker.h +0 -42
  3004. data/src/core/lib/transport/tcp_connect_handshaker.cc +0 -244
  3005. data/src/core/lib/transport/tcp_connect_handshaker.h +0 -39
  3006. data/src/core/lib/uri/uri_parser.cc +0 -372
  3007. data/src/core/lib/uri/uri_parser.h +0 -101
  3008. data/src/core/resolver/binder/binder_resolver.cc +0 -154
  3009. data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
  3010. data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
  3011. data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +0 -44
  3012. data/third_party/boringssl-with-bazel/err_data.c +0 -1512
  3013. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +0 -284
  3014. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +0 -95
  3015. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -89
  3016. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +0 -84
  3017. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +0 -151
  3018. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +0 -85
  3019. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +0 -465
  3020. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +0 -279
  3021. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +0 -235
  3022. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +0 -74
  3023. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +0 -457
  3024. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +0 -245
  3025. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +0 -259
  3026. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +0 -214
  3027. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +0 -183
  3028. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -397
  3029. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +0 -103
  3030. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +0 -98
  3031. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +0 -105
  3032. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +0 -94
  3033. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +0 -241
  3034. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +0 -973
  3035. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +0 -708
  3036. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +0 -212
  3037. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +0 -317
  3038. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -126
  3039. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +0 -268
  3040. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +0 -475
  3041. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +0 -731
  3042. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +0 -309
  3043. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +0 -544
  3044. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +0 -92
  3045. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -235
  3046. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +0 -319
  3047. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c +0 -192
  3048. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +0 -480
  3049. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -102
  3050. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +0 -189
  3051. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +0 -133
  3052. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +0 -169
  3053. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +0 -57
  3054. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +0 -465
  3055. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +0 -158
  3056. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +0 -53
  3057. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +0 -266
  3058. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +0 -718
  3059. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +0 -926
  3060. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +0 -155
  3061. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -224
  3062. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +0 -127
  3063. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +0 -152
  3064. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +0 -284
  3065. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +0 -841
  3066. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +0 -341
  3067. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c +0 -246
  3068. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +0 -86
  3069. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +0 -463
  3070. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +0 -89
  3071. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +0 -598
  3072. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +0 -237
  3073. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +0 -514
  3074. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +0 -647
  3075. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
  3076. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +0 -75
  3077. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -55
  3078. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -62
  3079. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +0 -61
  3080. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +0 -93
  3081. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +0 -41
  3082. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -54
  3083. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -148
  3084. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +0 -292
  3085. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +0 -242
  3086. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +0 -2157
  3087. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c +0 -18
  3088. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +0 -523
  3089. data/third_party/boringssl-with-bazel/src/crypto/des/des.c +0 -871
  3090. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +0 -165
  3091. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +0 -480
  3092. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -265
  3093. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +0 -981
  3094. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -420
  3095. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +0 -572
  3096. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +0 -96
  3097. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +0 -508
  3098. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -78
  3099. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +0 -124
  3100. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +0 -265
  3101. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.c +0 -91
  3102. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +0 -882
  3103. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +0 -509
  3104. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +0 -547
  3105. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +0 -483
  3106. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +0 -308
  3107. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +0 -275
  3108. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +0 -302
  3109. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +0 -103
  3110. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +0 -224
  3111. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +0 -232
  3112. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +0 -646
  3113. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +0 -211
  3114. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +0 -109
  3115. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +0 -236
  3116. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +0 -146
  3117. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +0 -381
  3118. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +0 -209
  3119. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +0 -156
  3120. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +0 -237
  3121. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -106
  3122. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +0 -1281
  3123. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +0 -242
  3124. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +0 -124
  3125. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +0 -275
  3126. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c +0 -310
  3127. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -541
  3128. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +0 -428
  3129. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +0 -267
  3130. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +0 -201
  3131. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -234
  3132. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +0 -909
  3133. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +0 -87
  3134. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +0 -1276
  3135. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -397
  3136. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +0 -328
  3137. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +0 -624
  3138. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c +0 -146
  3139. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +0 -532
  3140. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +0 -222
  3141. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +0 -744
  3142. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -1070
  3143. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +0 -355
  3144. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +0 -137
  3145. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +0 -363
  3146. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +0 -499
  3147. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +0 -287
  3148. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +0 -717
  3149. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +0 -1463
  3150. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.c +0 -446
  3151. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c +0 -322
  3152. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +0 -245
  3153. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +0 -489
  3154. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +0 -288
  3155. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +0 -304
  3156. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.c +0 -267
  3157. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +0 -1043
  3158. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -553
  3159. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +0 -491
  3160. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +0 -104
  3161. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +0 -359
  3162. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +0 -1163
  3163. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +0 -637
  3164. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +0 -749
  3165. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +0 -169
  3166. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +0 -336
  3167. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +0 -269
  3168. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +0 -255
  3169. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -264
  3170. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +0 -130
  3171. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +0 -372
  3172. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +0 -32
  3173. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c +0 -112
  3174. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +0 -256
  3175. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +0 -240
  3176. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h +0 -37
  3177. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +0 -284
  3178. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +0 -164
  3179. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +0 -200
  3180. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +0 -196
  3181. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +0 -743
  3182. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +0 -302
  3183. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +0 -428
  3184. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +0 -87
  3185. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +0 -90
  3186. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +0 -220
  3187. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +0 -197
  3188. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +0 -67
  3189. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +0 -64
  3190. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -493
  3191. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -328
  3192. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -241
  3193. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +0 -423
  3194. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +0 -1038
  3195. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +0 -1337
  3196. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +0 -119
  3197. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +0 -1064
  3198. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +0 -331
  3199. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +0 -439
  3200. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +0 -359
  3201. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +0 -537
  3202. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +0 -211
  3203. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +0 -799
  3204. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +0 -2234
  3205. data/third_party/boringssl-with-bazel/src/crypto/keccak/internal.h +0 -70
  3206. data/third_party/boringssl-with-bazel/src/crypto/keccak/keccak.c +0 -279
  3207. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +0 -844
  3208. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +0 -350
  3209. data/third_party/boringssl-with-bazel/src/crypto/mem.c +0 -600
  3210. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +0 -564
  3211. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c +0 -122
  3212. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -243
  3213. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -294
  3214. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -789
  3215. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +0 -87
  3216. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -248
  3217. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -182
  3218. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -64
  3219. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -64
  3220. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +0 -193
  3221. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -523
  3222. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +0 -316
  3223. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -527
  3224. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +0 -1352
  3225. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +0 -314
  3226. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +0 -308
  3227. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +0 -847
  3228. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +0 -261
  3229. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +0 -57
  3230. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +0 -44
  3231. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +0 -52
  3232. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +0 -34
  3233. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +0 -158
  3234. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +0 -74
  3235. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +0 -38
  3236. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +0 -95
  3237. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c +0 -98
  3238. data/third_party/boringssl-with-bazel/src/crypto/refcount.c +0 -59
  3239. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +0 -77
  3240. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +0 -324
  3241. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +0 -570
  3242. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c +0 -22
  3243. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +0 -79
  3244. data/third_party/boringssl-with-bazel/src/crypto/spx/address.c +0 -101
  3245. data/third_party/boringssl-with-bazel/src/crypto/spx/address.h +0 -50
  3246. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.c +0 -133
  3247. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.h +0 -54
  3248. data/third_party/boringssl-with-bazel/src/crypto/spx/internal.h +0 -79
  3249. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.c +0 -150
  3250. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.h +0 -61
  3251. data/third_party/boringssl-with-bazel/src/crypto/spx/params.h +0 -71
  3252. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +0 -139
  3253. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c +0 -53
  3254. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.h +0 -44
  3255. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.c +0 -136
  3256. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.h +0 -70
  3257. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.c +0 -135
  3258. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.h +0 -45
  3259. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +0 -534
  3260. data/third_party/boringssl-with-bazel/src/crypto/thread.c +0 -110
  3261. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -51
  3262. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -150
  3263. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +0 -236
  3264. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +0 -1668
  3265. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +0 -687
  3266. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +0 -1267
  3267. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +0 -94
  3268. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +0 -136
  3269. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +0 -116
  3270. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +0 -178
  3271. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +0 -585
  3272. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +0 -407
  3273. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -269
  3274. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +0 -79
  3275. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +0 -227
  3276. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +0 -786
  3277. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +0 -397
  3278. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +0 -145
  3279. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +0 -245
  3280. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -329
  3281. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +0 -121
  3282. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.c +0 -221
  3283. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.c +0 -73
  3284. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.c +0 -634
  3285. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.c +0 -135
  3286. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.c +0 -141
  3287. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.c +0 -416
  3288. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c +0 -477
  3289. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c +0 -598
  3290. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.c +0 -112
  3291. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.c +0 -154
  3292. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.c +0 -270
  3293. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.c +0 -122
  3294. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c +0 -211
  3295. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.c +0 -121
  3296. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c +0 -342
  3297. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.c +0 -555
  3298. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.c +0 -81
  3299. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.c +0 -142
  3300. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.c +0 -150
  3301. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.c +0 -224
  3302. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.c +0 -624
  3303. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.c +0 -170
  3304. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +0 -1357
  3305. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -89
  3306. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -227
  3307. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +0 -280
  3308. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +0 -108
  3309. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +0 -86
  3310. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +0 -181
  3311. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -609
  3312. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +0 -206
  3313. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +0 -299
  3314. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +0 -240
  3315. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +0 -164
  3316. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +0 -189
  3317. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +0 -291
  3318. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -1655
  3319. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +0 -440
  3320. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +0 -277
  3321. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +0 -407
  3322. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +0 -109
  3323. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +0 -133
  3324. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +0 -149
  3325. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -356
  3326. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +0 -97
  3327. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +0 -384
  3328. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +0 -78
  3329. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +0 -527
  3330. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -210
  3331. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +0 -116
  3332. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +0 -93
  3333. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +0 -79
  3334. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +0 -70
  3335. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +0 -549
  3336. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +0 -209
  3337. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +0 -136
  3338. data/third_party/boringssl-with-bazel/src/include/openssl/pki/certificate.h +0 -83
  3339. data/third_party/boringssl-with-bazel/src/include/openssl/pki/signature_verify_cache.h +0 -41
@@ -0,0 +1,4530 @@
1
+ // Copyright 2023 gRPC authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ //
16
+ // Automatically generated by tools/codegen/core/gen_if_list.py
17
+ //
18
+
19
+ #ifndef GRPC_SRC_CORE_UTIL_IF_LIST_H
20
+ #define GRPC_SRC_CORE_UTIL_IF_LIST_H
21
+
22
+ #include <grpc/support/port_platform.h>
23
+
24
+ namespace grpc_core {
25
+
26
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
27
+ typename Check0, typename Action0>
28
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
29
+ Check0 check0, Action0 action0) {
30
+ if (check0(input)) return action0(action_arg);
31
+ return action_fail(action_arg);
32
+ }
33
+
34
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
35
+ typename Check0, typename Check1, typename Action0, typename Action1>
36
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
37
+ Check0 check0, Check1 check1, Action0 action0, Action1 action1) {
38
+ if (check0(input)) return action0(action_arg);
39
+ if (check1(input)) return action1(action_arg);
40
+ return action_fail(action_arg);
41
+ }
42
+
43
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
44
+ typename Check0, typename Check1, typename Check2, typename Action0,
45
+ typename Action1, typename Action2>
46
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
47
+ Check0 check0, Check1 check1, Check2 check2, Action0 action0,
48
+ Action1 action1, Action2 action2) {
49
+ if (check0(input)) return action0(action_arg);
50
+ if (check1(input)) return action1(action_arg);
51
+ if (check2(input)) return action2(action_arg);
52
+ return action_fail(action_arg);
53
+ }
54
+
55
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
56
+ typename Check0, typename Check1, typename Check2, typename Check3,
57
+ typename Action0, typename Action1, typename Action2,
58
+ typename Action3>
59
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
60
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
61
+ Action0 action0, Action1 action1, Action2 action2,
62
+ Action3 action3) {
63
+ if (check0(input)) return action0(action_arg);
64
+ if (check1(input)) return action1(action_arg);
65
+ if (check2(input)) return action2(action_arg);
66
+ if (check3(input)) return action3(action_arg);
67
+ return action_fail(action_arg);
68
+ }
69
+
70
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
71
+ typename Check0, typename Check1, typename Check2, typename Check3,
72
+ typename Check4, typename Action0, typename Action1, typename Action2,
73
+ typename Action3, typename Action4>
74
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
75
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
76
+ Check4 check4, Action0 action0, Action1 action1, Action2 action2,
77
+ Action3 action3, Action4 action4) {
78
+ if (check0(input)) return action0(action_arg);
79
+ if (check1(input)) return action1(action_arg);
80
+ if (check2(input)) return action2(action_arg);
81
+ if (check3(input)) return action3(action_arg);
82
+ if (check4(input)) return action4(action_arg);
83
+ return action_fail(action_arg);
84
+ }
85
+
86
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
87
+ typename Check0, typename Check1, typename Check2, typename Check3,
88
+ typename Check4, typename Check5, typename Action0, typename Action1,
89
+ typename Action2, typename Action3, typename Action4,
90
+ typename Action5>
91
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
92
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
93
+ Check4 check4, Check5 check5, Action0 action0, Action1 action1,
94
+ Action2 action2, Action3 action3, Action4 action4,
95
+ Action5 action5) {
96
+ if (check0(input)) return action0(action_arg);
97
+ if (check1(input)) return action1(action_arg);
98
+ if (check2(input)) return action2(action_arg);
99
+ if (check3(input)) return action3(action_arg);
100
+ if (check4(input)) return action4(action_arg);
101
+ if (check5(input)) return action5(action_arg);
102
+ return action_fail(action_arg);
103
+ }
104
+
105
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
106
+ typename Check0, typename Check1, typename Check2, typename Check3,
107
+ typename Check4, typename Check5, typename Check6, typename Action0,
108
+ typename Action1, typename Action2, typename Action3,
109
+ typename Action4, typename Action5, typename Action6>
110
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
111
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
112
+ Check4 check4, Check5 check5, Check6 check6, Action0 action0,
113
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
114
+ Action5 action5, Action6 action6) {
115
+ if (check0(input)) return action0(action_arg);
116
+ if (check1(input)) return action1(action_arg);
117
+ if (check2(input)) return action2(action_arg);
118
+ if (check3(input)) return action3(action_arg);
119
+ if (check4(input)) return action4(action_arg);
120
+ if (check5(input)) return action5(action_arg);
121
+ if (check6(input)) return action6(action_arg);
122
+ return action_fail(action_arg);
123
+ }
124
+
125
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
126
+ typename Check0, typename Check1, typename Check2, typename Check3,
127
+ typename Check4, typename Check5, typename Check6, typename Check7,
128
+ typename Action0, typename Action1, typename Action2,
129
+ typename Action3, typename Action4, typename Action5,
130
+ typename Action6, typename Action7>
131
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
132
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
133
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
134
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
135
+ Action4 action4, Action5 action5, Action6 action6,
136
+ Action7 action7) {
137
+ if (check0(input)) return action0(action_arg);
138
+ if (check1(input)) return action1(action_arg);
139
+ if (check2(input)) return action2(action_arg);
140
+ if (check3(input)) return action3(action_arg);
141
+ if (check4(input)) return action4(action_arg);
142
+ if (check5(input)) return action5(action_arg);
143
+ if (check6(input)) return action6(action_arg);
144
+ if (check7(input)) return action7(action_arg);
145
+ return action_fail(action_arg);
146
+ }
147
+
148
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
149
+ typename Check0, typename Check1, typename Check2, typename Check3,
150
+ typename Check4, typename Check5, typename Check6, typename Check7,
151
+ typename Check8, typename Action0, typename Action1, typename Action2,
152
+ typename Action3, typename Action4, typename Action5,
153
+ typename Action6, typename Action7, typename Action8>
154
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
155
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
156
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
157
+ Check8 check8, Action0 action0, Action1 action1, Action2 action2,
158
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
159
+ Action7 action7, Action8 action8) {
160
+ if (check0(input)) return action0(action_arg);
161
+ if (check1(input)) return action1(action_arg);
162
+ if (check2(input)) return action2(action_arg);
163
+ if (check3(input)) return action3(action_arg);
164
+ if (check4(input)) return action4(action_arg);
165
+ if (check5(input)) return action5(action_arg);
166
+ if (check6(input)) return action6(action_arg);
167
+ if (check7(input)) return action7(action_arg);
168
+ if (check8(input)) return action8(action_arg);
169
+ return action_fail(action_arg);
170
+ }
171
+
172
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
173
+ typename Check0, typename Check1, typename Check2, typename Check3,
174
+ typename Check4, typename Check5, typename Check6, typename Check7,
175
+ typename Check8, typename Check9, typename Action0, typename Action1,
176
+ typename Action2, typename Action3, typename Action4,
177
+ typename Action5, typename Action6, typename Action7,
178
+ typename Action8, typename Action9>
179
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
180
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
181
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
182
+ Check8 check8, Check9 check9, Action0 action0, Action1 action1,
183
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
184
+ Action6 action6, Action7 action7, Action8 action8,
185
+ Action9 action9) {
186
+ if (check0(input)) return action0(action_arg);
187
+ if (check1(input)) return action1(action_arg);
188
+ if (check2(input)) return action2(action_arg);
189
+ if (check3(input)) return action3(action_arg);
190
+ if (check4(input)) return action4(action_arg);
191
+ if (check5(input)) return action5(action_arg);
192
+ if (check6(input)) return action6(action_arg);
193
+ if (check7(input)) return action7(action_arg);
194
+ if (check8(input)) return action8(action_arg);
195
+ if (check9(input)) return action9(action_arg);
196
+ return action_fail(action_arg);
197
+ }
198
+
199
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
200
+ typename Check0, typename Check1, typename Check2, typename Check3,
201
+ typename Check4, typename Check5, typename Check6, typename Check7,
202
+ typename Check8, typename Check9, typename Check10, typename Action0,
203
+ typename Action1, typename Action2, typename Action3,
204
+ typename Action4, typename Action5, typename Action6,
205
+ typename Action7, typename Action8, typename Action9,
206
+ typename Action10>
207
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
208
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
209
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
210
+ Check8 check8, Check9 check9, Check10 check10, Action0 action0,
211
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
212
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
213
+ Action9 action9, Action10 action10) {
214
+ if (check0(input)) return action0(action_arg);
215
+ if (check1(input)) return action1(action_arg);
216
+ if (check2(input)) return action2(action_arg);
217
+ if (check3(input)) return action3(action_arg);
218
+ if (check4(input)) return action4(action_arg);
219
+ if (check5(input)) return action5(action_arg);
220
+ if (check6(input)) return action6(action_arg);
221
+ if (check7(input)) return action7(action_arg);
222
+ if (check8(input)) return action8(action_arg);
223
+ if (check9(input)) return action9(action_arg);
224
+ if (check10(input)) return action10(action_arg);
225
+ return action_fail(action_arg);
226
+ }
227
+
228
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
229
+ typename Check0, typename Check1, typename Check2, typename Check3,
230
+ typename Check4, typename Check5, typename Check6, typename Check7,
231
+ typename Check8, typename Check9, typename Check10, typename Check11,
232
+ typename Action0, typename Action1, typename Action2,
233
+ typename Action3, typename Action4, typename Action5,
234
+ typename Action6, typename Action7, typename Action8,
235
+ typename Action9, typename Action10, typename Action11>
236
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
237
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
238
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
239
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
240
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
241
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
242
+ Action8 action8, Action9 action9, Action10 action10,
243
+ Action11 action11) {
244
+ if (check0(input)) return action0(action_arg);
245
+ if (check1(input)) return action1(action_arg);
246
+ if (check2(input)) return action2(action_arg);
247
+ if (check3(input)) return action3(action_arg);
248
+ if (check4(input)) return action4(action_arg);
249
+ if (check5(input)) return action5(action_arg);
250
+ if (check6(input)) return action6(action_arg);
251
+ if (check7(input)) return action7(action_arg);
252
+ if (check8(input)) return action8(action_arg);
253
+ if (check9(input)) return action9(action_arg);
254
+ if (check10(input)) return action10(action_arg);
255
+ if (check11(input)) return action11(action_arg);
256
+ return action_fail(action_arg);
257
+ }
258
+
259
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
260
+ typename Check0, typename Check1, typename Check2, typename Check3,
261
+ typename Check4, typename Check5, typename Check6, typename Check7,
262
+ typename Check8, typename Check9, typename Check10, typename Check11,
263
+ typename Check12, typename Action0, typename Action1,
264
+ typename Action2, typename Action3, typename Action4,
265
+ typename Action5, typename Action6, typename Action7,
266
+ typename Action8, typename Action9, typename Action10,
267
+ typename Action11, typename Action12>
268
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
269
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
270
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
271
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
272
+ Check12 check12, Action0 action0, Action1 action1, Action2 action2,
273
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
274
+ Action7 action7, Action8 action8, Action9 action9,
275
+ Action10 action10, Action11 action11, Action12 action12) {
276
+ if (check0(input)) return action0(action_arg);
277
+ if (check1(input)) return action1(action_arg);
278
+ if (check2(input)) return action2(action_arg);
279
+ if (check3(input)) return action3(action_arg);
280
+ if (check4(input)) return action4(action_arg);
281
+ if (check5(input)) return action5(action_arg);
282
+ if (check6(input)) return action6(action_arg);
283
+ if (check7(input)) return action7(action_arg);
284
+ if (check8(input)) return action8(action_arg);
285
+ if (check9(input)) return action9(action_arg);
286
+ if (check10(input)) return action10(action_arg);
287
+ if (check11(input)) return action11(action_arg);
288
+ if (check12(input)) return action12(action_arg);
289
+ return action_fail(action_arg);
290
+ }
291
+
292
+ template <
293
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
294
+ typename Check1, typename Check2, typename Check3, typename Check4,
295
+ typename Check5, typename Check6, typename Check7, typename Check8,
296
+ typename Check9, typename Check10, typename Check11, typename Check12,
297
+ typename Check13, typename Action0, typename Action1, typename Action2,
298
+ typename Action3, typename Action4, typename Action5, typename Action6,
299
+ typename Action7, typename Action8, typename Action9, typename Action10,
300
+ typename Action11, typename Action12, typename Action13>
301
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
302
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
303
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
304
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
305
+ Check12 check12, Check13 check13, Action0 action0, Action1 action1,
306
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
307
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
308
+ Action10 action10, Action11 action11, Action12 action12,
309
+ Action13 action13) {
310
+ if (check0(input)) return action0(action_arg);
311
+ if (check1(input)) return action1(action_arg);
312
+ if (check2(input)) return action2(action_arg);
313
+ if (check3(input)) return action3(action_arg);
314
+ if (check4(input)) return action4(action_arg);
315
+ if (check5(input)) return action5(action_arg);
316
+ if (check6(input)) return action6(action_arg);
317
+ if (check7(input)) return action7(action_arg);
318
+ if (check8(input)) return action8(action_arg);
319
+ if (check9(input)) return action9(action_arg);
320
+ if (check10(input)) return action10(action_arg);
321
+ if (check11(input)) return action11(action_arg);
322
+ if (check12(input)) return action12(action_arg);
323
+ if (check13(input)) return action13(action_arg);
324
+ return action_fail(action_arg);
325
+ }
326
+
327
+ template <typename CheckArg, typename ActionArg, typename ActionFail,
328
+ typename Check0, typename Check1, typename Check2, typename Check3,
329
+ typename Check4, typename Check5, typename Check6, typename Check7,
330
+ typename Check8, typename Check9, typename Check10, typename Check11,
331
+ typename Check12, typename Check13, typename Check14,
332
+ typename Action0, typename Action1, typename Action2,
333
+ typename Action3, typename Action4, typename Action5,
334
+ typename Action6, typename Action7, typename Action8,
335
+ typename Action9, typename Action10, typename Action11,
336
+ typename Action12, typename Action13, typename Action14>
337
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
338
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
339
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
340
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
341
+ Check12 check12, Check13 check13, Check14 check14, Action0 action0,
342
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
343
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
344
+ Action9 action9, Action10 action10, Action11 action11,
345
+ Action12 action12, Action13 action13, Action14 action14) {
346
+ if (check0(input)) return action0(action_arg);
347
+ if (check1(input)) return action1(action_arg);
348
+ if (check2(input)) return action2(action_arg);
349
+ if (check3(input)) return action3(action_arg);
350
+ if (check4(input)) return action4(action_arg);
351
+ if (check5(input)) return action5(action_arg);
352
+ if (check6(input)) return action6(action_arg);
353
+ if (check7(input)) return action7(action_arg);
354
+ if (check8(input)) return action8(action_arg);
355
+ if (check9(input)) return action9(action_arg);
356
+ if (check10(input)) return action10(action_arg);
357
+ if (check11(input)) return action11(action_arg);
358
+ if (check12(input)) return action12(action_arg);
359
+ if (check13(input)) return action13(action_arg);
360
+ if (check14(input)) return action14(action_arg);
361
+ return action_fail(action_arg);
362
+ }
363
+
364
+ template <
365
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
366
+ typename Check1, typename Check2, typename Check3, typename Check4,
367
+ typename Check5, typename Check6, typename Check7, typename Check8,
368
+ typename Check9, typename Check10, typename Check11, typename Check12,
369
+ typename Check13, typename Check14, typename Check15, typename Action0,
370
+ typename Action1, typename Action2, typename Action3, typename Action4,
371
+ typename Action5, typename Action6, typename Action7, typename Action8,
372
+ typename Action9, typename Action10, typename Action11, typename Action12,
373
+ typename Action13, typename Action14, typename Action15>
374
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
375
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
376
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
377
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
378
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
379
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
380
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
381
+ Action8 action8, Action9 action9, Action10 action10,
382
+ Action11 action11, Action12 action12, Action13 action13,
383
+ Action14 action14, Action15 action15) {
384
+ if (check0(input)) return action0(action_arg);
385
+ if (check1(input)) return action1(action_arg);
386
+ if (check2(input)) return action2(action_arg);
387
+ if (check3(input)) return action3(action_arg);
388
+ if (check4(input)) return action4(action_arg);
389
+ if (check5(input)) return action5(action_arg);
390
+ if (check6(input)) return action6(action_arg);
391
+ if (check7(input)) return action7(action_arg);
392
+ if (check8(input)) return action8(action_arg);
393
+ if (check9(input)) return action9(action_arg);
394
+ if (check10(input)) return action10(action_arg);
395
+ if (check11(input)) return action11(action_arg);
396
+ if (check12(input)) return action12(action_arg);
397
+ if (check13(input)) return action13(action_arg);
398
+ if (check14(input)) return action14(action_arg);
399
+ if (check15(input)) return action15(action_arg);
400
+ return action_fail(action_arg);
401
+ }
402
+
403
+ template <
404
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
405
+ typename Check1, typename Check2, typename Check3, typename Check4,
406
+ typename Check5, typename Check6, typename Check7, typename Check8,
407
+ typename Check9, typename Check10, typename Check11, typename Check12,
408
+ typename Check13, typename Check14, typename Check15, typename Check16,
409
+ typename Action0, typename Action1, typename Action2, typename Action3,
410
+ typename Action4, typename Action5, typename Action6, typename Action7,
411
+ typename Action8, typename Action9, typename Action10, typename Action11,
412
+ typename Action12, typename Action13, typename Action14, typename Action15,
413
+ typename Action16>
414
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
415
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
416
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
417
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
418
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
419
+ Check16 check16, Action0 action0, Action1 action1, Action2 action2,
420
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
421
+ Action7 action7, Action8 action8, Action9 action9,
422
+ Action10 action10, Action11 action11, Action12 action12,
423
+ Action13 action13, Action14 action14, Action15 action15,
424
+ Action16 action16) {
425
+ if (check0(input)) return action0(action_arg);
426
+ if (check1(input)) return action1(action_arg);
427
+ if (check2(input)) return action2(action_arg);
428
+ if (check3(input)) return action3(action_arg);
429
+ if (check4(input)) return action4(action_arg);
430
+ if (check5(input)) return action5(action_arg);
431
+ if (check6(input)) return action6(action_arg);
432
+ if (check7(input)) return action7(action_arg);
433
+ if (check8(input)) return action8(action_arg);
434
+ if (check9(input)) return action9(action_arg);
435
+ if (check10(input)) return action10(action_arg);
436
+ if (check11(input)) return action11(action_arg);
437
+ if (check12(input)) return action12(action_arg);
438
+ if (check13(input)) return action13(action_arg);
439
+ if (check14(input)) return action14(action_arg);
440
+ if (check15(input)) return action15(action_arg);
441
+ if (check16(input)) return action16(action_arg);
442
+ return action_fail(action_arg);
443
+ }
444
+
445
+ template <
446
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
447
+ typename Check1, typename Check2, typename Check3, typename Check4,
448
+ typename Check5, typename Check6, typename Check7, typename Check8,
449
+ typename Check9, typename Check10, typename Check11, typename Check12,
450
+ typename Check13, typename Check14, typename Check15, typename Check16,
451
+ typename Check17, typename Action0, typename Action1, typename Action2,
452
+ typename Action3, typename Action4, typename Action5, typename Action6,
453
+ typename Action7, typename Action8, typename Action9, typename Action10,
454
+ typename Action11, typename Action12, typename Action13, typename Action14,
455
+ typename Action15, typename Action16, typename Action17>
456
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
457
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
458
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
459
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
460
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
461
+ Check16 check16, Check17 check17, Action0 action0, Action1 action1,
462
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
463
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
464
+ Action10 action10, Action11 action11, Action12 action12,
465
+ Action13 action13, Action14 action14, Action15 action15,
466
+ Action16 action16, Action17 action17) {
467
+ if (check0(input)) return action0(action_arg);
468
+ if (check1(input)) return action1(action_arg);
469
+ if (check2(input)) return action2(action_arg);
470
+ if (check3(input)) return action3(action_arg);
471
+ if (check4(input)) return action4(action_arg);
472
+ if (check5(input)) return action5(action_arg);
473
+ if (check6(input)) return action6(action_arg);
474
+ if (check7(input)) return action7(action_arg);
475
+ if (check8(input)) return action8(action_arg);
476
+ if (check9(input)) return action9(action_arg);
477
+ if (check10(input)) return action10(action_arg);
478
+ if (check11(input)) return action11(action_arg);
479
+ if (check12(input)) return action12(action_arg);
480
+ if (check13(input)) return action13(action_arg);
481
+ if (check14(input)) return action14(action_arg);
482
+ if (check15(input)) return action15(action_arg);
483
+ if (check16(input)) return action16(action_arg);
484
+ if (check17(input)) return action17(action_arg);
485
+ return action_fail(action_arg);
486
+ }
487
+
488
+ template <
489
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
490
+ typename Check1, typename Check2, typename Check3, typename Check4,
491
+ typename Check5, typename Check6, typename Check7, typename Check8,
492
+ typename Check9, typename Check10, typename Check11, typename Check12,
493
+ typename Check13, typename Check14, typename Check15, typename Check16,
494
+ typename Check17, typename Check18, typename Action0, typename Action1,
495
+ typename Action2, typename Action3, typename Action4, typename Action5,
496
+ typename Action6, typename Action7, typename Action8, typename Action9,
497
+ typename Action10, typename Action11, typename Action12, typename Action13,
498
+ typename Action14, typename Action15, typename Action16, typename Action17,
499
+ typename Action18>
500
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
501
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
502
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
503
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
504
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
505
+ Check16 check16, Check17 check17, Check18 check18, Action0 action0,
506
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
507
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
508
+ Action9 action9, Action10 action10, Action11 action11,
509
+ Action12 action12, Action13 action13, Action14 action14,
510
+ Action15 action15, Action16 action16, Action17 action17,
511
+ Action18 action18) {
512
+ if (check0(input)) return action0(action_arg);
513
+ if (check1(input)) return action1(action_arg);
514
+ if (check2(input)) return action2(action_arg);
515
+ if (check3(input)) return action3(action_arg);
516
+ if (check4(input)) return action4(action_arg);
517
+ if (check5(input)) return action5(action_arg);
518
+ if (check6(input)) return action6(action_arg);
519
+ if (check7(input)) return action7(action_arg);
520
+ if (check8(input)) return action8(action_arg);
521
+ if (check9(input)) return action9(action_arg);
522
+ if (check10(input)) return action10(action_arg);
523
+ if (check11(input)) return action11(action_arg);
524
+ if (check12(input)) return action12(action_arg);
525
+ if (check13(input)) return action13(action_arg);
526
+ if (check14(input)) return action14(action_arg);
527
+ if (check15(input)) return action15(action_arg);
528
+ if (check16(input)) return action16(action_arg);
529
+ if (check17(input)) return action17(action_arg);
530
+ if (check18(input)) return action18(action_arg);
531
+ return action_fail(action_arg);
532
+ }
533
+
534
+ template <
535
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
536
+ typename Check1, typename Check2, typename Check3, typename Check4,
537
+ typename Check5, typename Check6, typename Check7, typename Check8,
538
+ typename Check9, typename Check10, typename Check11, typename Check12,
539
+ typename Check13, typename Check14, typename Check15, typename Check16,
540
+ typename Check17, typename Check18, typename Check19, typename Action0,
541
+ typename Action1, typename Action2, typename Action3, typename Action4,
542
+ typename Action5, typename Action6, typename Action7, typename Action8,
543
+ typename Action9, typename Action10, typename Action11, typename Action12,
544
+ typename Action13, typename Action14, typename Action15, typename Action16,
545
+ typename Action17, typename Action18, typename Action19>
546
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
547
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
548
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
549
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
550
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
551
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
552
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
553
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
554
+ Action8 action8, Action9 action9, Action10 action10,
555
+ Action11 action11, Action12 action12, Action13 action13,
556
+ Action14 action14, Action15 action15, Action16 action16,
557
+ Action17 action17, Action18 action18, Action19 action19) {
558
+ if (check0(input)) return action0(action_arg);
559
+ if (check1(input)) return action1(action_arg);
560
+ if (check2(input)) return action2(action_arg);
561
+ if (check3(input)) return action3(action_arg);
562
+ if (check4(input)) return action4(action_arg);
563
+ if (check5(input)) return action5(action_arg);
564
+ if (check6(input)) return action6(action_arg);
565
+ if (check7(input)) return action7(action_arg);
566
+ if (check8(input)) return action8(action_arg);
567
+ if (check9(input)) return action9(action_arg);
568
+ if (check10(input)) return action10(action_arg);
569
+ if (check11(input)) return action11(action_arg);
570
+ if (check12(input)) return action12(action_arg);
571
+ if (check13(input)) return action13(action_arg);
572
+ if (check14(input)) return action14(action_arg);
573
+ if (check15(input)) return action15(action_arg);
574
+ if (check16(input)) return action16(action_arg);
575
+ if (check17(input)) return action17(action_arg);
576
+ if (check18(input)) return action18(action_arg);
577
+ if (check19(input)) return action19(action_arg);
578
+ return action_fail(action_arg);
579
+ }
580
+
581
+ template <
582
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
583
+ typename Check1, typename Check2, typename Check3, typename Check4,
584
+ typename Check5, typename Check6, typename Check7, typename Check8,
585
+ typename Check9, typename Check10, typename Check11, typename Check12,
586
+ typename Check13, typename Check14, typename Check15, typename Check16,
587
+ typename Check17, typename Check18, typename Check19, typename Check20,
588
+ typename Action0, typename Action1, typename Action2, typename Action3,
589
+ typename Action4, typename Action5, typename Action6, typename Action7,
590
+ typename Action8, typename Action9, typename Action10, typename Action11,
591
+ typename Action12, typename Action13, typename Action14, typename Action15,
592
+ typename Action16, typename Action17, typename Action18, typename Action19,
593
+ typename Action20>
594
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
595
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
596
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
597
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
598
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
599
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
600
+ Check20 check20, Action0 action0, Action1 action1, Action2 action2,
601
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
602
+ Action7 action7, Action8 action8, Action9 action9,
603
+ Action10 action10, Action11 action11, Action12 action12,
604
+ Action13 action13, Action14 action14, Action15 action15,
605
+ Action16 action16, Action17 action17, Action18 action18,
606
+ Action19 action19, Action20 action20) {
607
+ if (check0(input)) return action0(action_arg);
608
+ if (check1(input)) return action1(action_arg);
609
+ if (check2(input)) return action2(action_arg);
610
+ if (check3(input)) return action3(action_arg);
611
+ if (check4(input)) return action4(action_arg);
612
+ if (check5(input)) return action5(action_arg);
613
+ if (check6(input)) return action6(action_arg);
614
+ if (check7(input)) return action7(action_arg);
615
+ if (check8(input)) return action8(action_arg);
616
+ if (check9(input)) return action9(action_arg);
617
+ if (check10(input)) return action10(action_arg);
618
+ if (check11(input)) return action11(action_arg);
619
+ if (check12(input)) return action12(action_arg);
620
+ if (check13(input)) return action13(action_arg);
621
+ if (check14(input)) return action14(action_arg);
622
+ if (check15(input)) return action15(action_arg);
623
+ if (check16(input)) return action16(action_arg);
624
+ if (check17(input)) return action17(action_arg);
625
+ if (check18(input)) return action18(action_arg);
626
+ if (check19(input)) return action19(action_arg);
627
+ if (check20(input)) return action20(action_arg);
628
+ return action_fail(action_arg);
629
+ }
630
+
631
+ template <
632
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
633
+ typename Check1, typename Check2, typename Check3, typename Check4,
634
+ typename Check5, typename Check6, typename Check7, typename Check8,
635
+ typename Check9, typename Check10, typename Check11, typename Check12,
636
+ typename Check13, typename Check14, typename Check15, typename Check16,
637
+ typename Check17, typename Check18, typename Check19, typename Check20,
638
+ typename Check21, typename Action0, typename Action1, typename Action2,
639
+ typename Action3, typename Action4, typename Action5, typename Action6,
640
+ typename Action7, typename Action8, typename Action9, typename Action10,
641
+ typename Action11, typename Action12, typename Action13, typename Action14,
642
+ typename Action15, typename Action16, typename Action17, typename Action18,
643
+ typename Action19, typename Action20, typename Action21>
644
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
645
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
646
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
647
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
648
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
649
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
650
+ Check20 check20, Check21 check21, Action0 action0, Action1 action1,
651
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
652
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
653
+ Action10 action10, Action11 action11, Action12 action12,
654
+ Action13 action13, Action14 action14, Action15 action15,
655
+ Action16 action16, Action17 action17, Action18 action18,
656
+ Action19 action19, Action20 action20, Action21 action21) {
657
+ if (check0(input)) return action0(action_arg);
658
+ if (check1(input)) return action1(action_arg);
659
+ if (check2(input)) return action2(action_arg);
660
+ if (check3(input)) return action3(action_arg);
661
+ if (check4(input)) return action4(action_arg);
662
+ if (check5(input)) return action5(action_arg);
663
+ if (check6(input)) return action6(action_arg);
664
+ if (check7(input)) return action7(action_arg);
665
+ if (check8(input)) return action8(action_arg);
666
+ if (check9(input)) return action9(action_arg);
667
+ if (check10(input)) return action10(action_arg);
668
+ if (check11(input)) return action11(action_arg);
669
+ if (check12(input)) return action12(action_arg);
670
+ if (check13(input)) return action13(action_arg);
671
+ if (check14(input)) return action14(action_arg);
672
+ if (check15(input)) return action15(action_arg);
673
+ if (check16(input)) return action16(action_arg);
674
+ if (check17(input)) return action17(action_arg);
675
+ if (check18(input)) return action18(action_arg);
676
+ if (check19(input)) return action19(action_arg);
677
+ if (check20(input)) return action20(action_arg);
678
+ if (check21(input)) return action21(action_arg);
679
+ return action_fail(action_arg);
680
+ }
681
+
682
+ template <
683
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
684
+ typename Check1, typename Check2, typename Check3, typename Check4,
685
+ typename Check5, typename Check6, typename Check7, typename Check8,
686
+ typename Check9, typename Check10, typename Check11, typename Check12,
687
+ typename Check13, typename Check14, typename Check15, typename Check16,
688
+ typename Check17, typename Check18, typename Check19, typename Check20,
689
+ typename Check21, typename Check22, typename Action0, typename Action1,
690
+ typename Action2, typename Action3, typename Action4, typename Action5,
691
+ typename Action6, typename Action7, typename Action8, typename Action9,
692
+ typename Action10, typename Action11, typename Action12, typename Action13,
693
+ typename Action14, typename Action15, typename Action16, typename Action17,
694
+ typename Action18, typename Action19, typename Action20, typename Action21,
695
+ typename Action22>
696
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
697
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
698
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
699
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
700
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
701
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
702
+ Check20 check20, Check21 check21, Check22 check22, Action0 action0,
703
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
704
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
705
+ Action9 action9, Action10 action10, Action11 action11,
706
+ Action12 action12, Action13 action13, Action14 action14,
707
+ Action15 action15, Action16 action16, Action17 action17,
708
+ Action18 action18, Action19 action19, Action20 action20,
709
+ Action21 action21, Action22 action22) {
710
+ if (check0(input)) return action0(action_arg);
711
+ if (check1(input)) return action1(action_arg);
712
+ if (check2(input)) return action2(action_arg);
713
+ if (check3(input)) return action3(action_arg);
714
+ if (check4(input)) return action4(action_arg);
715
+ if (check5(input)) return action5(action_arg);
716
+ if (check6(input)) return action6(action_arg);
717
+ if (check7(input)) return action7(action_arg);
718
+ if (check8(input)) return action8(action_arg);
719
+ if (check9(input)) return action9(action_arg);
720
+ if (check10(input)) return action10(action_arg);
721
+ if (check11(input)) return action11(action_arg);
722
+ if (check12(input)) return action12(action_arg);
723
+ if (check13(input)) return action13(action_arg);
724
+ if (check14(input)) return action14(action_arg);
725
+ if (check15(input)) return action15(action_arg);
726
+ if (check16(input)) return action16(action_arg);
727
+ if (check17(input)) return action17(action_arg);
728
+ if (check18(input)) return action18(action_arg);
729
+ if (check19(input)) return action19(action_arg);
730
+ if (check20(input)) return action20(action_arg);
731
+ if (check21(input)) return action21(action_arg);
732
+ if (check22(input)) return action22(action_arg);
733
+ return action_fail(action_arg);
734
+ }
735
+
736
+ template <
737
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
738
+ typename Check1, typename Check2, typename Check3, typename Check4,
739
+ typename Check5, typename Check6, typename Check7, typename Check8,
740
+ typename Check9, typename Check10, typename Check11, typename Check12,
741
+ typename Check13, typename Check14, typename Check15, typename Check16,
742
+ typename Check17, typename Check18, typename Check19, typename Check20,
743
+ typename Check21, typename Check22, typename Check23, typename Action0,
744
+ typename Action1, typename Action2, typename Action3, typename Action4,
745
+ typename Action5, typename Action6, typename Action7, typename Action8,
746
+ typename Action9, typename Action10, typename Action11, typename Action12,
747
+ typename Action13, typename Action14, typename Action15, typename Action16,
748
+ typename Action17, typename Action18, typename Action19, typename Action20,
749
+ typename Action21, typename Action22, typename Action23>
750
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
751
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
752
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
753
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
754
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
755
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
756
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
757
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
758
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
759
+ Action8 action8, Action9 action9, Action10 action10,
760
+ Action11 action11, Action12 action12, Action13 action13,
761
+ Action14 action14, Action15 action15, Action16 action16,
762
+ Action17 action17, Action18 action18, Action19 action19,
763
+ Action20 action20, Action21 action21, Action22 action22,
764
+ Action23 action23) {
765
+ if (check0(input)) return action0(action_arg);
766
+ if (check1(input)) return action1(action_arg);
767
+ if (check2(input)) return action2(action_arg);
768
+ if (check3(input)) return action3(action_arg);
769
+ if (check4(input)) return action4(action_arg);
770
+ if (check5(input)) return action5(action_arg);
771
+ if (check6(input)) return action6(action_arg);
772
+ if (check7(input)) return action7(action_arg);
773
+ if (check8(input)) return action8(action_arg);
774
+ if (check9(input)) return action9(action_arg);
775
+ if (check10(input)) return action10(action_arg);
776
+ if (check11(input)) return action11(action_arg);
777
+ if (check12(input)) return action12(action_arg);
778
+ if (check13(input)) return action13(action_arg);
779
+ if (check14(input)) return action14(action_arg);
780
+ if (check15(input)) return action15(action_arg);
781
+ if (check16(input)) return action16(action_arg);
782
+ if (check17(input)) return action17(action_arg);
783
+ if (check18(input)) return action18(action_arg);
784
+ if (check19(input)) return action19(action_arg);
785
+ if (check20(input)) return action20(action_arg);
786
+ if (check21(input)) return action21(action_arg);
787
+ if (check22(input)) return action22(action_arg);
788
+ if (check23(input)) return action23(action_arg);
789
+ return action_fail(action_arg);
790
+ }
791
+
792
+ template <
793
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
794
+ typename Check1, typename Check2, typename Check3, typename Check4,
795
+ typename Check5, typename Check6, typename Check7, typename Check8,
796
+ typename Check9, typename Check10, typename Check11, typename Check12,
797
+ typename Check13, typename Check14, typename Check15, typename Check16,
798
+ typename Check17, typename Check18, typename Check19, typename Check20,
799
+ typename Check21, typename Check22, typename Check23, typename Check24,
800
+ typename Action0, typename Action1, typename Action2, typename Action3,
801
+ typename Action4, typename Action5, typename Action6, typename Action7,
802
+ typename Action8, typename Action9, typename Action10, typename Action11,
803
+ typename Action12, typename Action13, typename Action14, typename Action15,
804
+ typename Action16, typename Action17, typename Action18, typename Action19,
805
+ typename Action20, typename Action21, typename Action22, typename Action23,
806
+ typename Action24>
807
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
808
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
809
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
810
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
811
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
812
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
813
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
814
+ Check24 check24, Action0 action0, Action1 action1, Action2 action2,
815
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
816
+ Action7 action7, Action8 action8, Action9 action9,
817
+ Action10 action10, Action11 action11, Action12 action12,
818
+ Action13 action13, Action14 action14, Action15 action15,
819
+ Action16 action16, Action17 action17, Action18 action18,
820
+ Action19 action19, Action20 action20, Action21 action21,
821
+ Action22 action22, Action23 action23, Action24 action24) {
822
+ if (check0(input)) return action0(action_arg);
823
+ if (check1(input)) return action1(action_arg);
824
+ if (check2(input)) return action2(action_arg);
825
+ if (check3(input)) return action3(action_arg);
826
+ if (check4(input)) return action4(action_arg);
827
+ if (check5(input)) return action5(action_arg);
828
+ if (check6(input)) return action6(action_arg);
829
+ if (check7(input)) return action7(action_arg);
830
+ if (check8(input)) return action8(action_arg);
831
+ if (check9(input)) return action9(action_arg);
832
+ if (check10(input)) return action10(action_arg);
833
+ if (check11(input)) return action11(action_arg);
834
+ if (check12(input)) return action12(action_arg);
835
+ if (check13(input)) return action13(action_arg);
836
+ if (check14(input)) return action14(action_arg);
837
+ if (check15(input)) return action15(action_arg);
838
+ if (check16(input)) return action16(action_arg);
839
+ if (check17(input)) return action17(action_arg);
840
+ if (check18(input)) return action18(action_arg);
841
+ if (check19(input)) return action19(action_arg);
842
+ if (check20(input)) return action20(action_arg);
843
+ if (check21(input)) return action21(action_arg);
844
+ if (check22(input)) return action22(action_arg);
845
+ if (check23(input)) return action23(action_arg);
846
+ if (check24(input)) return action24(action_arg);
847
+ return action_fail(action_arg);
848
+ }
849
+
850
+ template <
851
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
852
+ typename Check1, typename Check2, typename Check3, typename Check4,
853
+ typename Check5, typename Check6, typename Check7, typename Check8,
854
+ typename Check9, typename Check10, typename Check11, typename Check12,
855
+ typename Check13, typename Check14, typename Check15, typename Check16,
856
+ typename Check17, typename Check18, typename Check19, typename Check20,
857
+ typename Check21, typename Check22, typename Check23, typename Check24,
858
+ typename Check25, typename Action0, typename Action1, typename Action2,
859
+ typename Action3, typename Action4, typename Action5, typename Action6,
860
+ typename Action7, typename Action8, typename Action9, typename Action10,
861
+ typename Action11, typename Action12, typename Action13, typename Action14,
862
+ typename Action15, typename Action16, typename Action17, typename Action18,
863
+ typename Action19, typename Action20, typename Action21, typename Action22,
864
+ typename Action23, typename Action24, typename Action25>
865
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
866
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
867
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
868
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
869
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
870
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
871
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
872
+ Check24 check24, Check25 check25, Action0 action0, Action1 action1,
873
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
874
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
875
+ Action10 action10, Action11 action11, Action12 action12,
876
+ Action13 action13, Action14 action14, Action15 action15,
877
+ Action16 action16, Action17 action17, Action18 action18,
878
+ Action19 action19, Action20 action20, Action21 action21,
879
+ Action22 action22, Action23 action23, Action24 action24,
880
+ Action25 action25) {
881
+ if (check0(input)) return action0(action_arg);
882
+ if (check1(input)) return action1(action_arg);
883
+ if (check2(input)) return action2(action_arg);
884
+ if (check3(input)) return action3(action_arg);
885
+ if (check4(input)) return action4(action_arg);
886
+ if (check5(input)) return action5(action_arg);
887
+ if (check6(input)) return action6(action_arg);
888
+ if (check7(input)) return action7(action_arg);
889
+ if (check8(input)) return action8(action_arg);
890
+ if (check9(input)) return action9(action_arg);
891
+ if (check10(input)) return action10(action_arg);
892
+ if (check11(input)) return action11(action_arg);
893
+ if (check12(input)) return action12(action_arg);
894
+ if (check13(input)) return action13(action_arg);
895
+ if (check14(input)) return action14(action_arg);
896
+ if (check15(input)) return action15(action_arg);
897
+ if (check16(input)) return action16(action_arg);
898
+ if (check17(input)) return action17(action_arg);
899
+ if (check18(input)) return action18(action_arg);
900
+ if (check19(input)) return action19(action_arg);
901
+ if (check20(input)) return action20(action_arg);
902
+ if (check21(input)) return action21(action_arg);
903
+ if (check22(input)) return action22(action_arg);
904
+ if (check23(input)) return action23(action_arg);
905
+ if (check24(input)) return action24(action_arg);
906
+ if (check25(input)) return action25(action_arg);
907
+ return action_fail(action_arg);
908
+ }
909
+
910
+ template <
911
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
912
+ typename Check1, typename Check2, typename Check3, typename Check4,
913
+ typename Check5, typename Check6, typename Check7, typename Check8,
914
+ typename Check9, typename Check10, typename Check11, typename Check12,
915
+ typename Check13, typename Check14, typename Check15, typename Check16,
916
+ typename Check17, typename Check18, typename Check19, typename Check20,
917
+ typename Check21, typename Check22, typename Check23, typename Check24,
918
+ typename Check25, typename Check26, typename Action0, typename Action1,
919
+ typename Action2, typename Action3, typename Action4, typename Action5,
920
+ typename Action6, typename Action7, typename Action8, typename Action9,
921
+ typename Action10, typename Action11, typename Action12, typename Action13,
922
+ typename Action14, typename Action15, typename Action16, typename Action17,
923
+ typename Action18, typename Action19, typename Action20, typename Action21,
924
+ typename Action22, typename Action23, typename Action24, typename Action25,
925
+ typename Action26>
926
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
927
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
928
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
929
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
930
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
931
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
932
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
933
+ Check24 check24, Check25 check25, Check26 check26, Action0 action0,
934
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
935
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
936
+ Action9 action9, Action10 action10, Action11 action11,
937
+ Action12 action12, Action13 action13, Action14 action14,
938
+ Action15 action15, Action16 action16, Action17 action17,
939
+ Action18 action18, Action19 action19, Action20 action20,
940
+ Action21 action21, Action22 action22, Action23 action23,
941
+ Action24 action24, Action25 action25, Action26 action26) {
942
+ if (check0(input)) return action0(action_arg);
943
+ if (check1(input)) return action1(action_arg);
944
+ if (check2(input)) return action2(action_arg);
945
+ if (check3(input)) return action3(action_arg);
946
+ if (check4(input)) return action4(action_arg);
947
+ if (check5(input)) return action5(action_arg);
948
+ if (check6(input)) return action6(action_arg);
949
+ if (check7(input)) return action7(action_arg);
950
+ if (check8(input)) return action8(action_arg);
951
+ if (check9(input)) return action9(action_arg);
952
+ if (check10(input)) return action10(action_arg);
953
+ if (check11(input)) return action11(action_arg);
954
+ if (check12(input)) return action12(action_arg);
955
+ if (check13(input)) return action13(action_arg);
956
+ if (check14(input)) return action14(action_arg);
957
+ if (check15(input)) return action15(action_arg);
958
+ if (check16(input)) return action16(action_arg);
959
+ if (check17(input)) return action17(action_arg);
960
+ if (check18(input)) return action18(action_arg);
961
+ if (check19(input)) return action19(action_arg);
962
+ if (check20(input)) return action20(action_arg);
963
+ if (check21(input)) return action21(action_arg);
964
+ if (check22(input)) return action22(action_arg);
965
+ if (check23(input)) return action23(action_arg);
966
+ if (check24(input)) return action24(action_arg);
967
+ if (check25(input)) return action25(action_arg);
968
+ if (check26(input)) return action26(action_arg);
969
+ return action_fail(action_arg);
970
+ }
971
+
972
+ template <
973
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
974
+ typename Check1, typename Check2, typename Check3, typename Check4,
975
+ typename Check5, typename Check6, typename Check7, typename Check8,
976
+ typename Check9, typename Check10, typename Check11, typename Check12,
977
+ typename Check13, typename Check14, typename Check15, typename Check16,
978
+ typename Check17, typename Check18, typename Check19, typename Check20,
979
+ typename Check21, typename Check22, typename Check23, typename Check24,
980
+ typename Check25, typename Check26, typename Check27, typename Action0,
981
+ typename Action1, typename Action2, typename Action3, typename Action4,
982
+ typename Action5, typename Action6, typename Action7, typename Action8,
983
+ typename Action9, typename Action10, typename Action11, typename Action12,
984
+ typename Action13, typename Action14, typename Action15, typename Action16,
985
+ typename Action17, typename Action18, typename Action19, typename Action20,
986
+ typename Action21, typename Action22, typename Action23, typename Action24,
987
+ typename Action25, typename Action26, typename Action27>
988
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
989
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
990
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
991
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
992
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
993
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
994
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
995
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
996
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
997
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
998
+ Action8 action8, Action9 action9, Action10 action10,
999
+ Action11 action11, Action12 action12, Action13 action13,
1000
+ Action14 action14, Action15 action15, Action16 action16,
1001
+ Action17 action17, Action18 action18, Action19 action19,
1002
+ Action20 action20, Action21 action21, Action22 action22,
1003
+ Action23 action23, Action24 action24, Action25 action25,
1004
+ Action26 action26, Action27 action27) {
1005
+ if (check0(input)) return action0(action_arg);
1006
+ if (check1(input)) return action1(action_arg);
1007
+ if (check2(input)) return action2(action_arg);
1008
+ if (check3(input)) return action3(action_arg);
1009
+ if (check4(input)) return action4(action_arg);
1010
+ if (check5(input)) return action5(action_arg);
1011
+ if (check6(input)) return action6(action_arg);
1012
+ if (check7(input)) return action7(action_arg);
1013
+ if (check8(input)) return action8(action_arg);
1014
+ if (check9(input)) return action9(action_arg);
1015
+ if (check10(input)) return action10(action_arg);
1016
+ if (check11(input)) return action11(action_arg);
1017
+ if (check12(input)) return action12(action_arg);
1018
+ if (check13(input)) return action13(action_arg);
1019
+ if (check14(input)) return action14(action_arg);
1020
+ if (check15(input)) return action15(action_arg);
1021
+ if (check16(input)) return action16(action_arg);
1022
+ if (check17(input)) return action17(action_arg);
1023
+ if (check18(input)) return action18(action_arg);
1024
+ if (check19(input)) return action19(action_arg);
1025
+ if (check20(input)) return action20(action_arg);
1026
+ if (check21(input)) return action21(action_arg);
1027
+ if (check22(input)) return action22(action_arg);
1028
+ if (check23(input)) return action23(action_arg);
1029
+ if (check24(input)) return action24(action_arg);
1030
+ if (check25(input)) return action25(action_arg);
1031
+ if (check26(input)) return action26(action_arg);
1032
+ if (check27(input)) return action27(action_arg);
1033
+ return action_fail(action_arg);
1034
+ }
1035
+
1036
+ template <
1037
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1038
+ typename Check1, typename Check2, typename Check3, typename Check4,
1039
+ typename Check5, typename Check6, typename Check7, typename Check8,
1040
+ typename Check9, typename Check10, typename Check11, typename Check12,
1041
+ typename Check13, typename Check14, typename Check15, typename Check16,
1042
+ typename Check17, typename Check18, typename Check19, typename Check20,
1043
+ typename Check21, typename Check22, typename Check23, typename Check24,
1044
+ typename Check25, typename Check26, typename Check27, typename Check28,
1045
+ typename Action0, typename Action1, typename Action2, typename Action3,
1046
+ typename Action4, typename Action5, typename Action6, typename Action7,
1047
+ typename Action8, typename Action9, typename Action10, typename Action11,
1048
+ typename Action12, typename Action13, typename Action14, typename Action15,
1049
+ typename Action16, typename Action17, typename Action18, typename Action19,
1050
+ typename Action20, typename Action21, typename Action22, typename Action23,
1051
+ typename Action24, typename Action25, typename Action26, typename Action27,
1052
+ typename Action28>
1053
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1054
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1055
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1056
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1057
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1058
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1059
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1060
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1061
+ Check28 check28, Action0 action0, Action1 action1, Action2 action2,
1062
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1063
+ Action7 action7, Action8 action8, Action9 action9,
1064
+ Action10 action10, Action11 action11, Action12 action12,
1065
+ Action13 action13, Action14 action14, Action15 action15,
1066
+ Action16 action16, Action17 action17, Action18 action18,
1067
+ Action19 action19, Action20 action20, Action21 action21,
1068
+ Action22 action22, Action23 action23, Action24 action24,
1069
+ Action25 action25, Action26 action26, Action27 action27,
1070
+ Action28 action28) {
1071
+ if (check0(input)) return action0(action_arg);
1072
+ if (check1(input)) return action1(action_arg);
1073
+ if (check2(input)) return action2(action_arg);
1074
+ if (check3(input)) return action3(action_arg);
1075
+ if (check4(input)) return action4(action_arg);
1076
+ if (check5(input)) return action5(action_arg);
1077
+ if (check6(input)) return action6(action_arg);
1078
+ if (check7(input)) return action7(action_arg);
1079
+ if (check8(input)) return action8(action_arg);
1080
+ if (check9(input)) return action9(action_arg);
1081
+ if (check10(input)) return action10(action_arg);
1082
+ if (check11(input)) return action11(action_arg);
1083
+ if (check12(input)) return action12(action_arg);
1084
+ if (check13(input)) return action13(action_arg);
1085
+ if (check14(input)) return action14(action_arg);
1086
+ if (check15(input)) return action15(action_arg);
1087
+ if (check16(input)) return action16(action_arg);
1088
+ if (check17(input)) return action17(action_arg);
1089
+ if (check18(input)) return action18(action_arg);
1090
+ if (check19(input)) return action19(action_arg);
1091
+ if (check20(input)) return action20(action_arg);
1092
+ if (check21(input)) return action21(action_arg);
1093
+ if (check22(input)) return action22(action_arg);
1094
+ if (check23(input)) return action23(action_arg);
1095
+ if (check24(input)) return action24(action_arg);
1096
+ if (check25(input)) return action25(action_arg);
1097
+ if (check26(input)) return action26(action_arg);
1098
+ if (check27(input)) return action27(action_arg);
1099
+ if (check28(input)) return action28(action_arg);
1100
+ return action_fail(action_arg);
1101
+ }
1102
+
1103
+ template <
1104
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1105
+ typename Check1, typename Check2, typename Check3, typename Check4,
1106
+ typename Check5, typename Check6, typename Check7, typename Check8,
1107
+ typename Check9, typename Check10, typename Check11, typename Check12,
1108
+ typename Check13, typename Check14, typename Check15, typename Check16,
1109
+ typename Check17, typename Check18, typename Check19, typename Check20,
1110
+ typename Check21, typename Check22, typename Check23, typename Check24,
1111
+ typename Check25, typename Check26, typename Check27, typename Check28,
1112
+ typename Check29, typename Action0, typename Action1, typename Action2,
1113
+ typename Action3, typename Action4, typename Action5, typename Action6,
1114
+ typename Action7, typename Action8, typename Action9, typename Action10,
1115
+ typename Action11, typename Action12, typename Action13, typename Action14,
1116
+ typename Action15, typename Action16, typename Action17, typename Action18,
1117
+ typename Action19, typename Action20, typename Action21, typename Action22,
1118
+ typename Action23, typename Action24, typename Action25, typename Action26,
1119
+ typename Action27, typename Action28, typename Action29>
1120
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1121
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1122
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1123
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1124
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1125
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1126
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1127
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1128
+ Check28 check28, Check29 check29, Action0 action0, Action1 action1,
1129
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1130
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1131
+ Action10 action10, Action11 action11, Action12 action12,
1132
+ Action13 action13, Action14 action14, Action15 action15,
1133
+ Action16 action16, Action17 action17, Action18 action18,
1134
+ Action19 action19, Action20 action20, Action21 action21,
1135
+ Action22 action22, Action23 action23, Action24 action24,
1136
+ Action25 action25, Action26 action26, Action27 action27,
1137
+ Action28 action28, Action29 action29) {
1138
+ if (check0(input)) return action0(action_arg);
1139
+ if (check1(input)) return action1(action_arg);
1140
+ if (check2(input)) return action2(action_arg);
1141
+ if (check3(input)) return action3(action_arg);
1142
+ if (check4(input)) return action4(action_arg);
1143
+ if (check5(input)) return action5(action_arg);
1144
+ if (check6(input)) return action6(action_arg);
1145
+ if (check7(input)) return action7(action_arg);
1146
+ if (check8(input)) return action8(action_arg);
1147
+ if (check9(input)) return action9(action_arg);
1148
+ if (check10(input)) return action10(action_arg);
1149
+ if (check11(input)) return action11(action_arg);
1150
+ if (check12(input)) return action12(action_arg);
1151
+ if (check13(input)) return action13(action_arg);
1152
+ if (check14(input)) return action14(action_arg);
1153
+ if (check15(input)) return action15(action_arg);
1154
+ if (check16(input)) return action16(action_arg);
1155
+ if (check17(input)) return action17(action_arg);
1156
+ if (check18(input)) return action18(action_arg);
1157
+ if (check19(input)) return action19(action_arg);
1158
+ if (check20(input)) return action20(action_arg);
1159
+ if (check21(input)) return action21(action_arg);
1160
+ if (check22(input)) return action22(action_arg);
1161
+ if (check23(input)) return action23(action_arg);
1162
+ if (check24(input)) return action24(action_arg);
1163
+ if (check25(input)) return action25(action_arg);
1164
+ if (check26(input)) return action26(action_arg);
1165
+ if (check27(input)) return action27(action_arg);
1166
+ if (check28(input)) return action28(action_arg);
1167
+ if (check29(input)) return action29(action_arg);
1168
+ return action_fail(action_arg);
1169
+ }
1170
+
1171
+ template <
1172
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1173
+ typename Check1, typename Check2, typename Check3, typename Check4,
1174
+ typename Check5, typename Check6, typename Check7, typename Check8,
1175
+ typename Check9, typename Check10, typename Check11, typename Check12,
1176
+ typename Check13, typename Check14, typename Check15, typename Check16,
1177
+ typename Check17, typename Check18, typename Check19, typename Check20,
1178
+ typename Check21, typename Check22, typename Check23, typename Check24,
1179
+ typename Check25, typename Check26, typename Check27, typename Check28,
1180
+ typename Check29, typename Check30, typename Action0, typename Action1,
1181
+ typename Action2, typename Action3, typename Action4, typename Action5,
1182
+ typename Action6, typename Action7, typename Action8, typename Action9,
1183
+ typename Action10, typename Action11, typename Action12, typename Action13,
1184
+ typename Action14, typename Action15, typename Action16, typename Action17,
1185
+ typename Action18, typename Action19, typename Action20, typename Action21,
1186
+ typename Action22, typename Action23, typename Action24, typename Action25,
1187
+ typename Action26, typename Action27, typename Action28, typename Action29,
1188
+ typename Action30>
1189
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1190
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1191
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1192
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1193
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1194
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1195
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1196
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1197
+ Check28 check28, Check29 check29, Check30 check30, Action0 action0,
1198
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1199
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1200
+ Action9 action9, Action10 action10, Action11 action11,
1201
+ Action12 action12, Action13 action13, Action14 action14,
1202
+ Action15 action15, Action16 action16, Action17 action17,
1203
+ Action18 action18, Action19 action19, Action20 action20,
1204
+ Action21 action21, Action22 action22, Action23 action23,
1205
+ Action24 action24, Action25 action25, Action26 action26,
1206
+ Action27 action27, Action28 action28, Action29 action29,
1207
+ Action30 action30) {
1208
+ if (check0(input)) return action0(action_arg);
1209
+ if (check1(input)) return action1(action_arg);
1210
+ if (check2(input)) return action2(action_arg);
1211
+ if (check3(input)) return action3(action_arg);
1212
+ if (check4(input)) return action4(action_arg);
1213
+ if (check5(input)) return action5(action_arg);
1214
+ if (check6(input)) return action6(action_arg);
1215
+ if (check7(input)) return action7(action_arg);
1216
+ if (check8(input)) return action8(action_arg);
1217
+ if (check9(input)) return action9(action_arg);
1218
+ if (check10(input)) return action10(action_arg);
1219
+ if (check11(input)) return action11(action_arg);
1220
+ if (check12(input)) return action12(action_arg);
1221
+ if (check13(input)) return action13(action_arg);
1222
+ if (check14(input)) return action14(action_arg);
1223
+ if (check15(input)) return action15(action_arg);
1224
+ if (check16(input)) return action16(action_arg);
1225
+ if (check17(input)) return action17(action_arg);
1226
+ if (check18(input)) return action18(action_arg);
1227
+ if (check19(input)) return action19(action_arg);
1228
+ if (check20(input)) return action20(action_arg);
1229
+ if (check21(input)) return action21(action_arg);
1230
+ if (check22(input)) return action22(action_arg);
1231
+ if (check23(input)) return action23(action_arg);
1232
+ if (check24(input)) return action24(action_arg);
1233
+ if (check25(input)) return action25(action_arg);
1234
+ if (check26(input)) return action26(action_arg);
1235
+ if (check27(input)) return action27(action_arg);
1236
+ if (check28(input)) return action28(action_arg);
1237
+ if (check29(input)) return action29(action_arg);
1238
+ if (check30(input)) return action30(action_arg);
1239
+ return action_fail(action_arg);
1240
+ }
1241
+
1242
+ template <
1243
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1244
+ typename Check1, typename Check2, typename Check3, typename Check4,
1245
+ typename Check5, typename Check6, typename Check7, typename Check8,
1246
+ typename Check9, typename Check10, typename Check11, typename Check12,
1247
+ typename Check13, typename Check14, typename Check15, typename Check16,
1248
+ typename Check17, typename Check18, typename Check19, typename Check20,
1249
+ typename Check21, typename Check22, typename Check23, typename Check24,
1250
+ typename Check25, typename Check26, typename Check27, typename Check28,
1251
+ typename Check29, typename Check30, typename Check31, typename Action0,
1252
+ typename Action1, typename Action2, typename Action3, typename Action4,
1253
+ typename Action5, typename Action6, typename Action7, typename Action8,
1254
+ typename Action9, typename Action10, typename Action11, typename Action12,
1255
+ typename Action13, typename Action14, typename Action15, typename Action16,
1256
+ typename Action17, typename Action18, typename Action19, typename Action20,
1257
+ typename Action21, typename Action22, typename Action23, typename Action24,
1258
+ typename Action25, typename Action26, typename Action27, typename Action28,
1259
+ typename Action29, typename Action30, typename Action31>
1260
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1261
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1262
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1263
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1264
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1265
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1266
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1267
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1268
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1269
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1270
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1271
+ Action8 action8, Action9 action9, Action10 action10,
1272
+ Action11 action11, Action12 action12, Action13 action13,
1273
+ Action14 action14, Action15 action15, Action16 action16,
1274
+ Action17 action17, Action18 action18, Action19 action19,
1275
+ Action20 action20, Action21 action21, Action22 action22,
1276
+ Action23 action23, Action24 action24, Action25 action25,
1277
+ Action26 action26, Action27 action27, Action28 action28,
1278
+ Action29 action29, Action30 action30, Action31 action31) {
1279
+ if (check0(input)) return action0(action_arg);
1280
+ if (check1(input)) return action1(action_arg);
1281
+ if (check2(input)) return action2(action_arg);
1282
+ if (check3(input)) return action3(action_arg);
1283
+ if (check4(input)) return action4(action_arg);
1284
+ if (check5(input)) return action5(action_arg);
1285
+ if (check6(input)) return action6(action_arg);
1286
+ if (check7(input)) return action7(action_arg);
1287
+ if (check8(input)) return action8(action_arg);
1288
+ if (check9(input)) return action9(action_arg);
1289
+ if (check10(input)) return action10(action_arg);
1290
+ if (check11(input)) return action11(action_arg);
1291
+ if (check12(input)) return action12(action_arg);
1292
+ if (check13(input)) return action13(action_arg);
1293
+ if (check14(input)) return action14(action_arg);
1294
+ if (check15(input)) return action15(action_arg);
1295
+ if (check16(input)) return action16(action_arg);
1296
+ if (check17(input)) return action17(action_arg);
1297
+ if (check18(input)) return action18(action_arg);
1298
+ if (check19(input)) return action19(action_arg);
1299
+ if (check20(input)) return action20(action_arg);
1300
+ if (check21(input)) return action21(action_arg);
1301
+ if (check22(input)) return action22(action_arg);
1302
+ if (check23(input)) return action23(action_arg);
1303
+ if (check24(input)) return action24(action_arg);
1304
+ if (check25(input)) return action25(action_arg);
1305
+ if (check26(input)) return action26(action_arg);
1306
+ if (check27(input)) return action27(action_arg);
1307
+ if (check28(input)) return action28(action_arg);
1308
+ if (check29(input)) return action29(action_arg);
1309
+ if (check30(input)) return action30(action_arg);
1310
+ if (check31(input)) return action31(action_arg);
1311
+ return action_fail(action_arg);
1312
+ }
1313
+
1314
+ template <
1315
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1316
+ typename Check1, typename Check2, typename Check3, typename Check4,
1317
+ typename Check5, typename Check6, typename Check7, typename Check8,
1318
+ typename Check9, typename Check10, typename Check11, typename Check12,
1319
+ typename Check13, typename Check14, typename Check15, typename Check16,
1320
+ typename Check17, typename Check18, typename Check19, typename Check20,
1321
+ typename Check21, typename Check22, typename Check23, typename Check24,
1322
+ typename Check25, typename Check26, typename Check27, typename Check28,
1323
+ typename Check29, typename Check30, typename Check31, typename Check32,
1324
+ typename Action0, typename Action1, typename Action2, typename Action3,
1325
+ typename Action4, typename Action5, typename Action6, typename Action7,
1326
+ typename Action8, typename Action9, typename Action10, typename Action11,
1327
+ typename Action12, typename Action13, typename Action14, typename Action15,
1328
+ typename Action16, typename Action17, typename Action18, typename Action19,
1329
+ typename Action20, typename Action21, typename Action22, typename Action23,
1330
+ typename Action24, typename Action25, typename Action26, typename Action27,
1331
+ typename Action28, typename Action29, typename Action30, typename Action31,
1332
+ typename Action32>
1333
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1334
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1335
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1336
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1337
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1338
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1339
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1340
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1341
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1342
+ Check32 check32, Action0 action0, Action1 action1, Action2 action2,
1343
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1344
+ Action7 action7, Action8 action8, Action9 action9,
1345
+ Action10 action10, Action11 action11, Action12 action12,
1346
+ Action13 action13, Action14 action14, Action15 action15,
1347
+ Action16 action16, Action17 action17, Action18 action18,
1348
+ Action19 action19, Action20 action20, Action21 action21,
1349
+ Action22 action22, Action23 action23, Action24 action24,
1350
+ Action25 action25, Action26 action26, Action27 action27,
1351
+ Action28 action28, Action29 action29, Action30 action30,
1352
+ Action31 action31, Action32 action32) {
1353
+ if (check0(input)) return action0(action_arg);
1354
+ if (check1(input)) return action1(action_arg);
1355
+ if (check2(input)) return action2(action_arg);
1356
+ if (check3(input)) return action3(action_arg);
1357
+ if (check4(input)) return action4(action_arg);
1358
+ if (check5(input)) return action5(action_arg);
1359
+ if (check6(input)) return action6(action_arg);
1360
+ if (check7(input)) return action7(action_arg);
1361
+ if (check8(input)) return action8(action_arg);
1362
+ if (check9(input)) return action9(action_arg);
1363
+ if (check10(input)) return action10(action_arg);
1364
+ if (check11(input)) return action11(action_arg);
1365
+ if (check12(input)) return action12(action_arg);
1366
+ if (check13(input)) return action13(action_arg);
1367
+ if (check14(input)) return action14(action_arg);
1368
+ if (check15(input)) return action15(action_arg);
1369
+ if (check16(input)) return action16(action_arg);
1370
+ if (check17(input)) return action17(action_arg);
1371
+ if (check18(input)) return action18(action_arg);
1372
+ if (check19(input)) return action19(action_arg);
1373
+ if (check20(input)) return action20(action_arg);
1374
+ if (check21(input)) return action21(action_arg);
1375
+ if (check22(input)) return action22(action_arg);
1376
+ if (check23(input)) return action23(action_arg);
1377
+ if (check24(input)) return action24(action_arg);
1378
+ if (check25(input)) return action25(action_arg);
1379
+ if (check26(input)) return action26(action_arg);
1380
+ if (check27(input)) return action27(action_arg);
1381
+ if (check28(input)) return action28(action_arg);
1382
+ if (check29(input)) return action29(action_arg);
1383
+ if (check30(input)) return action30(action_arg);
1384
+ if (check31(input)) return action31(action_arg);
1385
+ if (check32(input)) return action32(action_arg);
1386
+ return action_fail(action_arg);
1387
+ }
1388
+
1389
+ template <
1390
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1391
+ typename Check1, typename Check2, typename Check3, typename Check4,
1392
+ typename Check5, typename Check6, typename Check7, typename Check8,
1393
+ typename Check9, typename Check10, typename Check11, typename Check12,
1394
+ typename Check13, typename Check14, typename Check15, typename Check16,
1395
+ typename Check17, typename Check18, typename Check19, typename Check20,
1396
+ typename Check21, typename Check22, typename Check23, typename Check24,
1397
+ typename Check25, typename Check26, typename Check27, typename Check28,
1398
+ typename Check29, typename Check30, typename Check31, typename Check32,
1399
+ typename Check33, typename Action0, typename Action1, typename Action2,
1400
+ typename Action3, typename Action4, typename Action5, typename Action6,
1401
+ typename Action7, typename Action8, typename Action9, typename Action10,
1402
+ typename Action11, typename Action12, typename Action13, typename Action14,
1403
+ typename Action15, typename Action16, typename Action17, typename Action18,
1404
+ typename Action19, typename Action20, typename Action21, typename Action22,
1405
+ typename Action23, typename Action24, typename Action25, typename Action26,
1406
+ typename Action27, typename Action28, typename Action29, typename Action30,
1407
+ typename Action31, typename Action32, typename Action33>
1408
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1409
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1410
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1411
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1412
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1413
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1414
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1415
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1416
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1417
+ Check32 check32, Check33 check33, Action0 action0, Action1 action1,
1418
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1419
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1420
+ Action10 action10, Action11 action11, Action12 action12,
1421
+ Action13 action13, Action14 action14, Action15 action15,
1422
+ Action16 action16, Action17 action17, Action18 action18,
1423
+ Action19 action19, Action20 action20, Action21 action21,
1424
+ Action22 action22, Action23 action23, Action24 action24,
1425
+ Action25 action25, Action26 action26, Action27 action27,
1426
+ Action28 action28, Action29 action29, Action30 action30,
1427
+ Action31 action31, Action32 action32, Action33 action33) {
1428
+ if (check0(input)) return action0(action_arg);
1429
+ if (check1(input)) return action1(action_arg);
1430
+ if (check2(input)) return action2(action_arg);
1431
+ if (check3(input)) return action3(action_arg);
1432
+ if (check4(input)) return action4(action_arg);
1433
+ if (check5(input)) return action5(action_arg);
1434
+ if (check6(input)) return action6(action_arg);
1435
+ if (check7(input)) return action7(action_arg);
1436
+ if (check8(input)) return action8(action_arg);
1437
+ if (check9(input)) return action9(action_arg);
1438
+ if (check10(input)) return action10(action_arg);
1439
+ if (check11(input)) return action11(action_arg);
1440
+ if (check12(input)) return action12(action_arg);
1441
+ if (check13(input)) return action13(action_arg);
1442
+ if (check14(input)) return action14(action_arg);
1443
+ if (check15(input)) return action15(action_arg);
1444
+ if (check16(input)) return action16(action_arg);
1445
+ if (check17(input)) return action17(action_arg);
1446
+ if (check18(input)) return action18(action_arg);
1447
+ if (check19(input)) return action19(action_arg);
1448
+ if (check20(input)) return action20(action_arg);
1449
+ if (check21(input)) return action21(action_arg);
1450
+ if (check22(input)) return action22(action_arg);
1451
+ if (check23(input)) return action23(action_arg);
1452
+ if (check24(input)) return action24(action_arg);
1453
+ if (check25(input)) return action25(action_arg);
1454
+ if (check26(input)) return action26(action_arg);
1455
+ if (check27(input)) return action27(action_arg);
1456
+ if (check28(input)) return action28(action_arg);
1457
+ if (check29(input)) return action29(action_arg);
1458
+ if (check30(input)) return action30(action_arg);
1459
+ if (check31(input)) return action31(action_arg);
1460
+ if (check32(input)) return action32(action_arg);
1461
+ if (check33(input)) return action33(action_arg);
1462
+ return action_fail(action_arg);
1463
+ }
1464
+
1465
+ template <
1466
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1467
+ typename Check1, typename Check2, typename Check3, typename Check4,
1468
+ typename Check5, typename Check6, typename Check7, typename Check8,
1469
+ typename Check9, typename Check10, typename Check11, typename Check12,
1470
+ typename Check13, typename Check14, typename Check15, typename Check16,
1471
+ typename Check17, typename Check18, typename Check19, typename Check20,
1472
+ typename Check21, typename Check22, typename Check23, typename Check24,
1473
+ typename Check25, typename Check26, typename Check27, typename Check28,
1474
+ typename Check29, typename Check30, typename Check31, typename Check32,
1475
+ typename Check33, typename Check34, typename Action0, typename Action1,
1476
+ typename Action2, typename Action3, typename Action4, typename Action5,
1477
+ typename Action6, typename Action7, typename Action8, typename Action9,
1478
+ typename Action10, typename Action11, typename Action12, typename Action13,
1479
+ typename Action14, typename Action15, typename Action16, typename Action17,
1480
+ typename Action18, typename Action19, typename Action20, typename Action21,
1481
+ typename Action22, typename Action23, typename Action24, typename Action25,
1482
+ typename Action26, typename Action27, typename Action28, typename Action29,
1483
+ typename Action30, typename Action31, typename Action32, typename Action33,
1484
+ typename Action34>
1485
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1486
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1487
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1488
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1489
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1490
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1491
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1492
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1493
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1494
+ Check32 check32, Check33 check33, Check34 check34, Action0 action0,
1495
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1496
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1497
+ Action9 action9, Action10 action10, Action11 action11,
1498
+ Action12 action12, Action13 action13, Action14 action14,
1499
+ Action15 action15, Action16 action16, Action17 action17,
1500
+ Action18 action18, Action19 action19, Action20 action20,
1501
+ Action21 action21, Action22 action22, Action23 action23,
1502
+ Action24 action24, Action25 action25, Action26 action26,
1503
+ Action27 action27, Action28 action28, Action29 action29,
1504
+ Action30 action30, Action31 action31, Action32 action32,
1505
+ Action33 action33, Action34 action34) {
1506
+ if (check0(input)) return action0(action_arg);
1507
+ if (check1(input)) return action1(action_arg);
1508
+ if (check2(input)) return action2(action_arg);
1509
+ if (check3(input)) return action3(action_arg);
1510
+ if (check4(input)) return action4(action_arg);
1511
+ if (check5(input)) return action5(action_arg);
1512
+ if (check6(input)) return action6(action_arg);
1513
+ if (check7(input)) return action7(action_arg);
1514
+ if (check8(input)) return action8(action_arg);
1515
+ if (check9(input)) return action9(action_arg);
1516
+ if (check10(input)) return action10(action_arg);
1517
+ if (check11(input)) return action11(action_arg);
1518
+ if (check12(input)) return action12(action_arg);
1519
+ if (check13(input)) return action13(action_arg);
1520
+ if (check14(input)) return action14(action_arg);
1521
+ if (check15(input)) return action15(action_arg);
1522
+ if (check16(input)) return action16(action_arg);
1523
+ if (check17(input)) return action17(action_arg);
1524
+ if (check18(input)) return action18(action_arg);
1525
+ if (check19(input)) return action19(action_arg);
1526
+ if (check20(input)) return action20(action_arg);
1527
+ if (check21(input)) return action21(action_arg);
1528
+ if (check22(input)) return action22(action_arg);
1529
+ if (check23(input)) return action23(action_arg);
1530
+ if (check24(input)) return action24(action_arg);
1531
+ if (check25(input)) return action25(action_arg);
1532
+ if (check26(input)) return action26(action_arg);
1533
+ if (check27(input)) return action27(action_arg);
1534
+ if (check28(input)) return action28(action_arg);
1535
+ if (check29(input)) return action29(action_arg);
1536
+ if (check30(input)) return action30(action_arg);
1537
+ if (check31(input)) return action31(action_arg);
1538
+ if (check32(input)) return action32(action_arg);
1539
+ if (check33(input)) return action33(action_arg);
1540
+ if (check34(input)) return action34(action_arg);
1541
+ return action_fail(action_arg);
1542
+ }
1543
+
1544
+ template <
1545
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1546
+ typename Check1, typename Check2, typename Check3, typename Check4,
1547
+ typename Check5, typename Check6, typename Check7, typename Check8,
1548
+ typename Check9, typename Check10, typename Check11, typename Check12,
1549
+ typename Check13, typename Check14, typename Check15, typename Check16,
1550
+ typename Check17, typename Check18, typename Check19, typename Check20,
1551
+ typename Check21, typename Check22, typename Check23, typename Check24,
1552
+ typename Check25, typename Check26, typename Check27, typename Check28,
1553
+ typename Check29, typename Check30, typename Check31, typename Check32,
1554
+ typename Check33, typename Check34, typename Check35, typename Action0,
1555
+ typename Action1, typename Action2, typename Action3, typename Action4,
1556
+ typename Action5, typename Action6, typename Action7, typename Action8,
1557
+ typename Action9, typename Action10, typename Action11, typename Action12,
1558
+ typename Action13, typename Action14, typename Action15, typename Action16,
1559
+ typename Action17, typename Action18, typename Action19, typename Action20,
1560
+ typename Action21, typename Action22, typename Action23, typename Action24,
1561
+ typename Action25, typename Action26, typename Action27, typename Action28,
1562
+ typename Action29, typename Action30, typename Action31, typename Action32,
1563
+ typename Action33, typename Action34, typename Action35>
1564
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1565
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1566
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1567
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1568
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1569
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1570
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1571
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1572
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1573
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1574
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1575
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1576
+ Action8 action8, Action9 action9, Action10 action10,
1577
+ Action11 action11, Action12 action12, Action13 action13,
1578
+ Action14 action14, Action15 action15, Action16 action16,
1579
+ Action17 action17, Action18 action18, Action19 action19,
1580
+ Action20 action20, Action21 action21, Action22 action22,
1581
+ Action23 action23, Action24 action24, Action25 action25,
1582
+ Action26 action26, Action27 action27, Action28 action28,
1583
+ Action29 action29, Action30 action30, Action31 action31,
1584
+ Action32 action32, Action33 action33, Action34 action34,
1585
+ Action35 action35) {
1586
+ if (check0(input)) return action0(action_arg);
1587
+ if (check1(input)) return action1(action_arg);
1588
+ if (check2(input)) return action2(action_arg);
1589
+ if (check3(input)) return action3(action_arg);
1590
+ if (check4(input)) return action4(action_arg);
1591
+ if (check5(input)) return action5(action_arg);
1592
+ if (check6(input)) return action6(action_arg);
1593
+ if (check7(input)) return action7(action_arg);
1594
+ if (check8(input)) return action8(action_arg);
1595
+ if (check9(input)) return action9(action_arg);
1596
+ if (check10(input)) return action10(action_arg);
1597
+ if (check11(input)) return action11(action_arg);
1598
+ if (check12(input)) return action12(action_arg);
1599
+ if (check13(input)) return action13(action_arg);
1600
+ if (check14(input)) return action14(action_arg);
1601
+ if (check15(input)) return action15(action_arg);
1602
+ if (check16(input)) return action16(action_arg);
1603
+ if (check17(input)) return action17(action_arg);
1604
+ if (check18(input)) return action18(action_arg);
1605
+ if (check19(input)) return action19(action_arg);
1606
+ if (check20(input)) return action20(action_arg);
1607
+ if (check21(input)) return action21(action_arg);
1608
+ if (check22(input)) return action22(action_arg);
1609
+ if (check23(input)) return action23(action_arg);
1610
+ if (check24(input)) return action24(action_arg);
1611
+ if (check25(input)) return action25(action_arg);
1612
+ if (check26(input)) return action26(action_arg);
1613
+ if (check27(input)) return action27(action_arg);
1614
+ if (check28(input)) return action28(action_arg);
1615
+ if (check29(input)) return action29(action_arg);
1616
+ if (check30(input)) return action30(action_arg);
1617
+ if (check31(input)) return action31(action_arg);
1618
+ if (check32(input)) return action32(action_arg);
1619
+ if (check33(input)) return action33(action_arg);
1620
+ if (check34(input)) return action34(action_arg);
1621
+ if (check35(input)) return action35(action_arg);
1622
+ return action_fail(action_arg);
1623
+ }
1624
+
1625
+ template <
1626
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1627
+ typename Check1, typename Check2, typename Check3, typename Check4,
1628
+ typename Check5, typename Check6, typename Check7, typename Check8,
1629
+ typename Check9, typename Check10, typename Check11, typename Check12,
1630
+ typename Check13, typename Check14, typename Check15, typename Check16,
1631
+ typename Check17, typename Check18, typename Check19, typename Check20,
1632
+ typename Check21, typename Check22, typename Check23, typename Check24,
1633
+ typename Check25, typename Check26, typename Check27, typename Check28,
1634
+ typename Check29, typename Check30, typename Check31, typename Check32,
1635
+ typename Check33, typename Check34, typename Check35, typename Check36,
1636
+ typename Action0, typename Action1, typename Action2, typename Action3,
1637
+ typename Action4, typename Action5, typename Action6, typename Action7,
1638
+ typename Action8, typename Action9, typename Action10, typename Action11,
1639
+ typename Action12, typename Action13, typename Action14, typename Action15,
1640
+ typename Action16, typename Action17, typename Action18, typename Action19,
1641
+ typename Action20, typename Action21, typename Action22, typename Action23,
1642
+ typename Action24, typename Action25, typename Action26, typename Action27,
1643
+ typename Action28, typename Action29, typename Action30, typename Action31,
1644
+ typename Action32, typename Action33, typename Action34, typename Action35,
1645
+ typename Action36>
1646
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1647
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1648
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1649
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1650
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1651
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1652
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1653
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1654
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1655
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1656
+ Check36 check36, Action0 action0, Action1 action1, Action2 action2,
1657
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
1658
+ Action7 action7, Action8 action8, Action9 action9,
1659
+ Action10 action10, Action11 action11, Action12 action12,
1660
+ Action13 action13, Action14 action14, Action15 action15,
1661
+ Action16 action16, Action17 action17, Action18 action18,
1662
+ Action19 action19, Action20 action20, Action21 action21,
1663
+ Action22 action22, Action23 action23, Action24 action24,
1664
+ Action25 action25, Action26 action26, Action27 action27,
1665
+ Action28 action28, Action29 action29, Action30 action30,
1666
+ Action31 action31, Action32 action32, Action33 action33,
1667
+ Action34 action34, Action35 action35, Action36 action36) {
1668
+ if (check0(input)) return action0(action_arg);
1669
+ if (check1(input)) return action1(action_arg);
1670
+ if (check2(input)) return action2(action_arg);
1671
+ if (check3(input)) return action3(action_arg);
1672
+ if (check4(input)) return action4(action_arg);
1673
+ if (check5(input)) return action5(action_arg);
1674
+ if (check6(input)) return action6(action_arg);
1675
+ if (check7(input)) return action7(action_arg);
1676
+ if (check8(input)) return action8(action_arg);
1677
+ if (check9(input)) return action9(action_arg);
1678
+ if (check10(input)) return action10(action_arg);
1679
+ if (check11(input)) return action11(action_arg);
1680
+ if (check12(input)) return action12(action_arg);
1681
+ if (check13(input)) return action13(action_arg);
1682
+ if (check14(input)) return action14(action_arg);
1683
+ if (check15(input)) return action15(action_arg);
1684
+ if (check16(input)) return action16(action_arg);
1685
+ if (check17(input)) return action17(action_arg);
1686
+ if (check18(input)) return action18(action_arg);
1687
+ if (check19(input)) return action19(action_arg);
1688
+ if (check20(input)) return action20(action_arg);
1689
+ if (check21(input)) return action21(action_arg);
1690
+ if (check22(input)) return action22(action_arg);
1691
+ if (check23(input)) return action23(action_arg);
1692
+ if (check24(input)) return action24(action_arg);
1693
+ if (check25(input)) return action25(action_arg);
1694
+ if (check26(input)) return action26(action_arg);
1695
+ if (check27(input)) return action27(action_arg);
1696
+ if (check28(input)) return action28(action_arg);
1697
+ if (check29(input)) return action29(action_arg);
1698
+ if (check30(input)) return action30(action_arg);
1699
+ if (check31(input)) return action31(action_arg);
1700
+ if (check32(input)) return action32(action_arg);
1701
+ if (check33(input)) return action33(action_arg);
1702
+ if (check34(input)) return action34(action_arg);
1703
+ if (check35(input)) return action35(action_arg);
1704
+ if (check36(input)) return action36(action_arg);
1705
+ return action_fail(action_arg);
1706
+ }
1707
+
1708
+ template <
1709
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1710
+ typename Check1, typename Check2, typename Check3, typename Check4,
1711
+ typename Check5, typename Check6, typename Check7, typename Check8,
1712
+ typename Check9, typename Check10, typename Check11, typename Check12,
1713
+ typename Check13, typename Check14, typename Check15, typename Check16,
1714
+ typename Check17, typename Check18, typename Check19, typename Check20,
1715
+ typename Check21, typename Check22, typename Check23, typename Check24,
1716
+ typename Check25, typename Check26, typename Check27, typename Check28,
1717
+ typename Check29, typename Check30, typename Check31, typename Check32,
1718
+ typename Check33, typename Check34, typename Check35, typename Check36,
1719
+ typename Check37, typename Action0, typename Action1, typename Action2,
1720
+ typename Action3, typename Action4, typename Action5, typename Action6,
1721
+ typename Action7, typename Action8, typename Action9, typename Action10,
1722
+ typename Action11, typename Action12, typename Action13, typename Action14,
1723
+ typename Action15, typename Action16, typename Action17, typename Action18,
1724
+ typename Action19, typename Action20, typename Action21, typename Action22,
1725
+ typename Action23, typename Action24, typename Action25, typename Action26,
1726
+ typename Action27, typename Action28, typename Action29, typename Action30,
1727
+ typename Action31, typename Action32, typename Action33, typename Action34,
1728
+ typename Action35, typename Action36, typename Action37>
1729
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1730
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1731
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1732
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1733
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1734
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1735
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1736
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1737
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1738
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1739
+ Check36 check36, Check37 check37, Action0 action0, Action1 action1,
1740
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
1741
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
1742
+ Action10 action10, Action11 action11, Action12 action12,
1743
+ Action13 action13, Action14 action14, Action15 action15,
1744
+ Action16 action16, Action17 action17, Action18 action18,
1745
+ Action19 action19, Action20 action20, Action21 action21,
1746
+ Action22 action22, Action23 action23, Action24 action24,
1747
+ Action25 action25, Action26 action26, Action27 action27,
1748
+ Action28 action28, Action29 action29, Action30 action30,
1749
+ Action31 action31, Action32 action32, Action33 action33,
1750
+ Action34 action34, Action35 action35, Action36 action36,
1751
+ Action37 action37) {
1752
+ if (check0(input)) return action0(action_arg);
1753
+ if (check1(input)) return action1(action_arg);
1754
+ if (check2(input)) return action2(action_arg);
1755
+ if (check3(input)) return action3(action_arg);
1756
+ if (check4(input)) return action4(action_arg);
1757
+ if (check5(input)) return action5(action_arg);
1758
+ if (check6(input)) return action6(action_arg);
1759
+ if (check7(input)) return action7(action_arg);
1760
+ if (check8(input)) return action8(action_arg);
1761
+ if (check9(input)) return action9(action_arg);
1762
+ if (check10(input)) return action10(action_arg);
1763
+ if (check11(input)) return action11(action_arg);
1764
+ if (check12(input)) return action12(action_arg);
1765
+ if (check13(input)) return action13(action_arg);
1766
+ if (check14(input)) return action14(action_arg);
1767
+ if (check15(input)) return action15(action_arg);
1768
+ if (check16(input)) return action16(action_arg);
1769
+ if (check17(input)) return action17(action_arg);
1770
+ if (check18(input)) return action18(action_arg);
1771
+ if (check19(input)) return action19(action_arg);
1772
+ if (check20(input)) return action20(action_arg);
1773
+ if (check21(input)) return action21(action_arg);
1774
+ if (check22(input)) return action22(action_arg);
1775
+ if (check23(input)) return action23(action_arg);
1776
+ if (check24(input)) return action24(action_arg);
1777
+ if (check25(input)) return action25(action_arg);
1778
+ if (check26(input)) return action26(action_arg);
1779
+ if (check27(input)) return action27(action_arg);
1780
+ if (check28(input)) return action28(action_arg);
1781
+ if (check29(input)) return action29(action_arg);
1782
+ if (check30(input)) return action30(action_arg);
1783
+ if (check31(input)) return action31(action_arg);
1784
+ if (check32(input)) return action32(action_arg);
1785
+ if (check33(input)) return action33(action_arg);
1786
+ if (check34(input)) return action34(action_arg);
1787
+ if (check35(input)) return action35(action_arg);
1788
+ if (check36(input)) return action36(action_arg);
1789
+ if (check37(input)) return action37(action_arg);
1790
+ return action_fail(action_arg);
1791
+ }
1792
+
1793
+ template <
1794
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1795
+ typename Check1, typename Check2, typename Check3, typename Check4,
1796
+ typename Check5, typename Check6, typename Check7, typename Check8,
1797
+ typename Check9, typename Check10, typename Check11, typename Check12,
1798
+ typename Check13, typename Check14, typename Check15, typename Check16,
1799
+ typename Check17, typename Check18, typename Check19, typename Check20,
1800
+ typename Check21, typename Check22, typename Check23, typename Check24,
1801
+ typename Check25, typename Check26, typename Check27, typename Check28,
1802
+ typename Check29, typename Check30, typename Check31, typename Check32,
1803
+ typename Check33, typename Check34, typename Check35, typename Check36,
1804
+ typename Check37, typename Check38, typename Action0, typename Action1,
1805
+ typename Action2, typename Action3, typename Action4, typename Action5,
1806
+ typename Action6, typename Action7, typename Action8, typename Action9,
1807
+ typename Action10, typename Action11, typename Action12, typename Action13,
1808
+ typename Action14, typename Action15, typename Action16, typename Action17,
1809
+ typename Action18, typename Action19, typename Action20, typename Action21,
1810
+ typename Action22, typename Action23, typename Action24, typename Action25,
1811
+ typename Action26, typename Action27, typename Action28, typename Action29,
1812
+ typename Action30, typename Action31, typename Action32, typename Action33,
1813
+ typename Action34, typename Action35, typename Action36, typename Action37,
1814
+ typename Action38>
1815
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1816
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1817
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1818
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1819
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1820
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1821
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1822
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1823
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1824
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1825
+ Check36 check36, Check37 check37, Check38 check38, Action0 action0,
1826
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
1827
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
1828
+ Action9 action9, Action10 action10, Action11 action11,
1829
+ Action12 action12, Action13 action13, Action14 action14,
1830
+ Action15 action15, Action16 action16, Action17 action17,
1831
+ Action18 action18, Action19 action19, Action20 action20,
1832
+ Action21 action21, Action22 action22, Action23 action23,
1833
+ Action24 action24, Action25 action25, Action26 action26,
1834
+ Action27 action27, Action28 action28, Action29 action29,
1835
+ Action30 action30, Action31 action31, Action32 action32,
1836
+ Action33 action33, Action34 action34, Action35 action35,
1837
+ Action36 action36, Action37 action37, Action38 action38) {
1838
+ if (check0(input)) return action0(action_arg);
1839
+ if (check1(input)) return action1(action_arg);
1840
+ if (check2(input)) return action2(action_arg);
1841
+ if (check3(input)) return action3(action_arg);
1842
+ if (check4(input)) return action4(action_arg);
1843
+ if (check5(input)) return action5(action_arg);
1844
+ if (check6(input)) return action6(action_arg);
1845
+ if (check7(input)) return action7(action_arg);
1846
+ if (check8(input)) return action8(action_arg);
1847
+ if (check9(input)) return action9(action_arg);
1848
+ if (check10(input)) return action10(action_arg);
1849
+ if (check11(input)) return action11(action_arg);
1850
+ if (check12(input)) return action12(action_arg);
1851
+ if (check13(input)) return action13(action_arg);
1852
+ if (check14(input)) return action14(action_arg);
1853
+ if (check15(input)) return action15(action_arg);
1854
+ if (check16(input)) return action16(action_arg);
1855
+ if (check17(input)) return action17(action_arg);
1856
+ if (check18(input)) return action18(action_arg);
1857
+ if (check19(input)) return action19(action_arg);
1858
+ if (check20(input)) return action20(action_arg);
1859
+ if (check21(input)) return action21(action_arg);
1860
+ if (check22(input)) return action22(action_arg);
1861
+ if (check23(input)) return action23(action_arg);
1862
+ if (check24(input)) return action24(action_arg);
1863
+ if (check25(input)) return action25(action_arg);
1864
+ if (check26(input)) return action26(action_arg);
1865
+ if (check27(input)) return action27(action_arg);
1866
+ if (check28(input)) return action28(action_arg);
1867
+ if (check29(input)) return action29(action_arg);
1868
+ if (check30(input)) return action30(action_arg);
1869
+ if (check31(input)) return action31(action_arg);
1870
+ if (check32(input)) return action32(action_arg);
1871
+ if (check33(input)) return action33(action_arg);
1872
+ if (check34(input)) return action34(action_arg);
1873
+ if (check35(input)) return action35(action_arg);
1874
+ if (check36(input)) return action36(action_arg);
1875
+ if (check37(input)) return action37(action_arg);
1876
+ if (check38(input)) return action38(action_arg);
1877
+ return action_fail(action_arg);
1878
+ }
1879
+
1880
+ template <
1881
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1882
+ typename Check1, typename Check2, typename Check3, typename Check4,
1883
+ typename Check5, typename Check6, typename Check7, typename Check8,
1884
+ typename Check9, typename Check10, typename Check11, typename Check12,
1885
+ typename Check13, typename Check14, typename Check15, typename Check16,
1886
+ typename Check17, typename Check18, typename Check19, typename Check20,
1887
+ typename Check21, typename Check22, typename Check23, typename Check24,
1888
+ typename Check25, typename Check26, typename Check27, typename Check28,
1889
+ typename Check29, typename Check30, typename Check31, typename Check32,
1890
+ typename Check33, typename Check34, typename Check35, typename Check36,
1891
+ typename Check37, typename Check38, typename Check39, typename Action0,
1892
+ typename Action1, typename Action2, typename Action3, typename Action4,
1893
+ typename Action5, typename Action6, typename Action7, typename Action8,
1894
+ typename Action9, typename Action10, typename Action11, typename Action12,
1895
+ typename Action13, typename Action14, typename Action15, typename Action16,
1896
+ typename Action17, typename Action18, typename Action19, typename Action20,
1897
+ typename Action21, typename Action22, typename Action23, typename Action24,
1898
+ typename Action25, typename Action26, typename Action27, typename Action28,
1899
+ typename Action29, typename Action30, typename Action31, typename Action32,
1900
+ typename Action33, typename Action34, typename Action35, typename Action36,
1901
+ typename Action37, typename Action38, typename Action39>
1902
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
1903
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
1904
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
1905
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
1906
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
1907
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
1908
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
1909
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
1910
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
1911
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
1912
+ Check36 check36, Check37 check37, Check38 check38, Check39 check39,
1913
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
1914
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
1915
+ Action8 action8, Action9 action9, Action10 action10,
1916
+ Action11 action11, Action12 action12, Action13 action13,
1917
+ Action14 action14, Action15 action15, Action16 action16,
1918
+ Action17 action17, Action18 action18, Action19 action19,
1919
+ Action20 action20, Action21 action21, Action22 action22,
1920
+ Action23 action23, Action24 action24, Action25 action25,
1921
+ Action26 action26, Action27 action27, Action28 action28,
1922
+ Action29 action29, Action30 action30, Action31 action31,
1923
+ Action32 action32, Action33 action33, Action34 action34,
1924
+ Action35 action35, Action36 action36, Action37 action37,
1925
+ Action38 action38, Action39 action39) {
1926
+ if (check0(input)) return action0(action_arg);
1927
+ if (check1(input)) return action1(action_arg);
1928
+ if (check2(input)) return action2(action_arg);
1929
+ if (check3(input)) return action3(action_arg);
1930
+ if (check4(input)) return action4(action_arg);
1931
+ if (check5(input)) return action5(action_arg);
1932
+ if (check6(input)) return action6(action_arg);
1933
+ if (check7(input)) return action7(action_arg);
1934
+ if (check8(input)) return action8(action_arg);
1935
+ if (check9(input)) return action9(action_arg);
1936
+ if (check10(input)) return action10(action_arg);
1937
+ if (check11(input)) return action11(action_arg);
1938
+ if (check12(input)) return action12(action_arg);
1939
+ if (check13(input)) return action13(action_arg);
1940
+ if (check14(input)) return action14(action_arg);
1941
+ if (check15(input)) return action15(action_arg);
1942
+ if (check16(input)) return action16(action_arg);
1943
+ if (check17(input)) return action17(action_arg);
1944
+ if (check18(input)) return action18(action_arg);
1945
+ if (check19(input)) return action19(action_arg);
1946
+ if (check20(input)) return action20(action_arg);
1947
+ if (check21(input)) return action21(action_arg);
1948
+ if (check22(input)) return action22(action_arg);
1949
+ if (check23(input)) return action23(action_arg);
1950
+ if (check24(input)) return action24(action_arg);
1951
+ if (check25(input)) return action25(action_arg);
1952
+ if (check26(input)) return action26(action_arg);
1953
+ if (check27(input)) return action27(action_arg);
1954
+ if (check28(input)) return action28(action_arg);
1955
+ if (check29(input)) return action29(action_arg);
1956
+ if (check30(input)) return action30(action_arg);
1957
+ if (check31(input)) return action31(action_arg);
1958
+ if (check32(input)) return action32(action_arg);
1959
+ if (check33(input)) return action33(action_arg);
1960
+ if (check34(input)) return action34(action_arg);
1961
+ if (check35(input)) return action35(action_arg);
1962
+ if (check36(input)) return action36(action_arg);
1963
+ if (check37(input)) return action37(action_arg);
1964
+ if (check38(input)) return action38(action_arg);
1965
+ if (check39(input)) return action39(action_arg);
1966
+ return action_fail(action_arg);
1967
+ }
1968
+
1969
+ template <
1970
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
1971
+ typename Check1, typename Check2, typename Check3, typename Check4,
1972
+ typename Check5, typename Check6, typename Check7, typename Check8,
1973
+ typename Check9, typename Check10, typename Check11, typename Check12,
1974
+ typename Check13, typename Check14, typename Check15, typename Check16,
1975
+ typename Check17, typename Check18, typename Check19, typename Check20,
1976
+ typename Check21, typename Check22, typename Check23, typename Check24,
1977
+ typename Check25, typename Check26, typename Check27, typename Check28,
1978
+ typename Check29, typename Check30, typename Check31, typename Check32,
1979
+ typename Check33, typename Check34, typename Check35, typename Check36,
1980
+ typename Check37, typename Check38, typename Check39, typename Check40,
1981
+ typename Action0, typename Action1, typename Action2, typename Action3,
1982
+ typename Action4, typename Action5, typename Action6, typename Action7,
1983
+ typename Action8, typename Action9, typename Action10, typename Action11,
1984
+ typename Action12, typename Action13, typename Action14, typename Action15,
1985
+ typename Action16, typename Action17, typename Action18, typename Action19,
1986
+ typename Action20, typename Action21, typename Action22, typename Action23,
1987
+ typename Action24, typename Action25, typename Action26, typename Action27,
1988
+ typename Action28, typename Action29, typename Action30, typename Action31,
1989
+ typename Action32, typename Action33, typename Action34, typename Action35,
1990
+ typename Action36, typename Action37, typename Action38, typename Action39,
1991
+ typename Action40>
1992
+ auto IfList(
1993
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
1994
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
1995
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
1996
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
1997
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
1998
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
1999
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2000
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2001
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2002
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2003
+ Check39 check39, Check40 check40, Action0 action0, Action1 action1,
2004
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2005
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2006
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2007
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2008
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2009
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2010
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2011
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2012
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2013
+ Action38 action38, Action39 action39, Action40 action40) {
2014
+ if (check0(input)) return action0(action_arg);
2015
+ if (check1(input)) return action1(action_arg);
2016
+ if (check2(input)) return action2(action_arg);
2017
+ if (check3(input)) return action3(action_arg);
2018
+ if (check4(input)) return action4(action_arg);
2019
+ if (check5(input)) return action5(action_arg);
2020
+ if (check6(input)) return action6(action_arg);
2021
+ if (check7(input)) return action7(action_arg);
2022
+ if (check8(input)) return action8(action_arg);
2023
+ if (check9(input)) return action9(action_arg);
2024
+ if (check10(input)) return action10(action_arg);
2025
+ if (check11(input)) return action11(action_arg);
2026
+ if (check12(input)) return action12(action_arg);
2027
+ if (check13(input)) return action13(action_arg);
2028
+ if (check14(input)) return action14(action_arg);
2029
+ if (check15(input)) return action15(action_arg);
2030
+ if (check16(input)) return action16(action_arg);
2031
+ if (check17(input)) return action17(action_arg);
2032
+ if (check18(input)) return action18(action_arg);
2033
+ if (check19(input)) return action19(action_arg);
2034
+ if (check20(input)) return action20(action_arg);
2035
+ if (check21(input)) return action21(action_arg);
2036
+ if (check22(input)) return action22(action_arg);
2037
+ if (check23(input)) return action23(action_arg);
2038
+ if (check24(input)) return action24(action_arg);
2039
+ if (check25(input)) return action25(action_arg);
2040
+ if (check26(input)) return action26(action_arg);
2041
+ if (check27(input)) return action27(action_arg);
2042
+ if (check28(input)) return action28(action_arg);
2043
+ if (check29(input)) return action29(action_arg);
2044
+ if (check30(input)) return action30(action_arg);
2045
+ if (check31(input)) return action31(action_arg);
2046
+ if (check32(input)) return action32(action_arg);
2047
+ if (check33(input)) return action33(action_arg);
2048
+ if (check34(input)) return action34(action_arg);
2049
+ if (check35(input)) return action35(action_arg);
2050
+ if (check36(input)) return action36(action_arg);
2051
+ if (check37(input)) return action37(action_arg);
2052
+ if (check38(input)) return action38(action_arg);
2053
+ if (check39(input)) return action39(action_arg);
2054
+ if (check40(input)) return action40(action_arg);
2055
+ return action_fail(action_arg);
2056
+ }
2057
+
2058
+ template <
2059
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2060
+ typename Check1, typename Check2, typename Check3, typename Check4,
2061
+ typename Check5, typename Check6, typename Check7, typename Check8,
2062
+ typename Check9, typename Check10, typename Check11, typename Check12,
2063
+ typename Check13, typename Check14, typename Check15, typename Check16,
2064
+ typename Check17, typename Check18, typename Check19, typename Check20,
2065
+ typename Check21, typename Check22, typename Check23, typename Check24,
2066
+ typename Check25, typename Check26, typename Check27, typename Check28,
2067
+ typename Check29, typename Check30, typename Check31, typename Check32,
2068
+ typename Check33, typename Check34, typename Check35, typename Check36,
2069
+ typename Check37, typename Check38, typename Check39, typename Check40,
2070
+ typename Check41, typename Action0, typename Action1, typename Action2,
2071
+ typename Action3, typename Action4, typename Action5, typename Action6,
2072
+ typename Action7, typename Action8, typename Action9, typename Action10,
2073
+ typename Action11, typename Action12, typename Action13, typename Action14,
2074
+ typename Action15, typename Action16, typename Action17, typename Action18,
2075
+ typename Action19, typename Action20, typename Action21, typename Action22,
2076
+ typename Action23, typename Action24, typename Action25, typename Action26,
2077
+ typename Action27, typename Action28, typename Action29, typename Action30,
2078
+ typename Action31, typename Action32, typename Action33, typename Action34,
2079
+ typename Action35, typename Action36, typename Action37, typename Action38,
2080
+ typename Action39, typename Action40, typename Action41>
2081
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2082
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2083
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2084
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2085
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2086
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2087
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2088
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2089
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2090
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2091
+ Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2092
+ Check40 check40, Check41 check41, Action0 action0, Action1 action1,
2093
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2094
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2095
+ Action10 action10, Action11 action11, Action12 action12,
2096
+ Action13 action13, Action14 action14, Action15 action15,
2097
+ Action16 action16, Action17 action17, Action18 action18,
2098
+ Action19 action19, Action20 action20, Action21 action21,
2099
+ Action22 action22, Action23 action23, Action24 action24,
2100
+ Action25 action25, Action26 action26, Action27 action27,
2101
+ Action28 action28, Action29 action29, Action30 action30,
2102
+ Action31 action31, Action32 action32, Action33 action33,
2103
+ Action34 action34, Action35 action35, Action36 action36,
2104
+ Action37 action37, Action38 action38, Action39 action39,
2105
+ Action40 action40, Action41 action41) {
2106
+ if (check0(input)) return action0(action_arg);
2107
+ if (check1(input)) return action1(action_arg);
2108
+ if (check2(input)) return action2(action_arg);
2109
+ if (check3(input)) return action3(action_arg);
2110
+ if (check4(input)) return action4(action_arg);
2111
+ if (check5(input)) return action5(action_arg);
2112
+ if (check6(input)) return action6(action_arg);
2113
+ if (check7(input)) return action7(action_arg);
2114
+ if (check8(input)) return action8(action_arg);
2115
+ if (check9(input)) return action9(action_arg);
2116
+ if (check10(input)) return action10(action_arg);
2117
+ if (check11(input)) return action11(action_arg);
2118
+ if (check12(input)) return action12(action_arg);
2119
+ if (check13(input)) return action13(action_arg);
2120
+ if (check14(input)) return action14(action_arg);
2121
+ if (check15(input)) return action15(action_arg);
2122
+ if (check16(input)) return action16(action_arg);
2123
+ if (check17(input)) return action17(action_arg);
2124
+ if (check18(input)) return action18(action_arg);
2125
+ if (check19(input)) return action19(action_arg);
2126
+ if (check20(input)) return action20(action_arg);
2127
+ if (check21(input)) return action21(action_arg);
2128
+ if (check22(input)) return action22(action_arg);
2129
+ if (check23(input)) return action23(action_arg);
2130
+ if (check24(input)) return action24(action_arg);
2131
+ if (check25(input)) return action25(action_arg);
2132
+ if (check26(input)) return action26(action_arg);
2133
+ if (check27(input)) return action27(action_arg);
2134
+ if (check28(input)) return action28(action_arg);
2135
+ if (check29(input)) return action29(action_arg);
2136
+ if (check30(input)) return action30(action_arg);
2137
+ if (check31(input)) return action31(action_arg);
2138
+ if (check32(input)) return action32(action_arg);
2139
+ if (check33(input)) return action33(action_arg);
2140
+ if (check34(input)) return action34(action_arg);
2141
+ if (check35(input)) return action35(action_arg);
2142
+ if (check36(input)) return action36(action_arg);
2143
+ if (check37(input)) return action37(action_arg);
2144
+ if (check38(input)) return action38(action_arg);
2145
+ if (check39(input)) return action39(action_arg);
2146
+ if (check40(input)) return action40(action_arg);
2147
+ if (check41(input)) return action41(action_arg);
2148
+ return action_fail(action_arg);
2149
+ }
2150
+
2151
+ template <
2152
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2153
+ typename Check1, typename Check2, typename Check3, typename Check4,
2154
+ typename Check5, typename Check6, typename Check7, typename Check8,
2155
+ typename Check9, typename Check10, typename Check11, typename Check12,
2156
+ typename Check13, typename Check14, typename Check15, typename Check16,
2157
+ typename Check17, typename Check18, typename Check19, typename Check20,
2158
+ typename Check21, typename Check22, typename Check23, typename Check24,
2159
+ typename Check25, typename Check26, typename Check27, typename Check28,
2160
+ typename Check29, typename Check30, typename Check31, typename Check32,
2161
+ typename Check33, typename Check34, typename Check35, typename Check36,
2162
+ typename Check37, typename Check38, typename Check39, typename Check40,
2163
+ typename Check41, typename Check42, typename Action0, typename Action1,
2164
+ typename Action2, typename Action3, typename Action4, typename Action5,
2165
+ typename Action6, typename Action7, typename Action8, typename Action9,
2166
+ typename Action10, typename Action11, typename Action12, typename Action13,
2167
+ typename Action14, typename Action15, typename Action16, typename Action17,
2168
+ typename Action18, typename Action19, typename Action20, typename Action21,
2169
+ typename Action22, typename Action23, typename Action24, typename Action25,
2170
+ typename Action26, typename Action27, typename Action28, typename Action29,
2171
+ typename Action30, typename Action31, typename Action32, typename Action33,
2172
+ typename Action34, typename Action35, typename Action36, typename Action37,
2173
+ typename Action38, typename Action39, typename Action40, typename Action41,
2174
+ typename Action42>
2175
+ auto IfList(
2176
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2177
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2178
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2179
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2180
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2181
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2182
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2183
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2184
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2185
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2186
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2187
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2188
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2189
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
2190
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
2191
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
2192
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
2193
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
2194
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
2195
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
2196
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
2197
+ Action40 action40, Action41 action41, Action42 action42) {
2198
+ if (check0(input)) return action0(action_arg);
2199
+ if (check1(input)) return action1(action_arg);
2200
+ if (check2(input)) return action2(action_arg);
2201
+ if (check3(input)) return action3(action_arg);
2202
+ if (check4(input)) return action4(action_arg);
2203
+ if (check5(input)) return action5(action_arg);
2204
+ if (check6(input)) return action6(action_arg);
2205
+ if (check7(input)) return action7(action_arg);
2206
+ if (check8(input)) return action8(action_arg);
2207
+ if (check9(input)) return action9(action_arg);
2208
+ if (check10(input)) return action10(action_arg);
2209
+ if (check11(input)) return action11(action_arg);
2210
+ if (check12(input)) return action12(action_arg);
2211
+ if (check13(input)) return action13(action_arg);
2212
+ if (check14(input)) return action14(action_arg);
2213
+ if (check15(input)) return action15(action_arg);
2214
+ if (check16(input)) return action16(action_arg);
2215
+ if (check17(input)) return action17(action_arg);
2216
+ if (check18(input)) return action18(action_arg);
2217
+ if (check19(input)) return action19(action_arg);
2218
+ if (check20(input)) return action20(action_arg);
2219
+ if (check21(input)) return action21(action_arg);
2220
+ if (check22(input)) return action22(action_arg);
2221
+ if (check23(input)) return action23(action_arg);
2222
+ if (check24(input)) return action24(action_arg);
2223
+ if (check25(input)) return action25(action_arg);
2224
+ if (check26(input)) return action26(action_arg);
2225
+ if (check27(input)) return action27(action_arg);
2226
+ if (check28(input)) return action28(action_arg);
2227
+ if (check29(input)) return action29(action_arg);
2228
+ if (check30(input)) return action30(action_arg);
2229
+ if (check31(input)) return action31(action_arg);
2230
+ if (check32(input)) return action32(action_arg);
2231
+ if (check33(input)) return action33(action_arg);
2232
+ if (check34(input)) return action34(action_arg);
2233
+ if (check35(input)) return action35(action_arg);
2234
+ if (check36(input)) return action36(action_arg);
2235
+ if (check37(input)) return action37(action_arg);
2236
+ if (check38(input)) return action38(action_arg);
2237
+ if (check39(input)) return action39(action_arg);
2238
+ if (check40(input)) return action40(action_arg);
2239
+ if (check41(input)) return action41(action_arg);
2240
+ if (check42(input)) return action42(action_arg);
2241
+ return action_fail(action_arg);
2242
+ }
2243
+
2244
+ template <
2245
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2246
+ typename Check1, typename Check2, typename Check3, typename Check4,
2247
+ typename Check5, typename Check6, typename Check7, typename Check8,
2248
+ typename Check9, typename Check10, typename Check11, typename Check12,
2249
+ typename Check13, typename Check14, typename Check15, typename Check16,
2250
+ typename Check17, typename Check18, typename Check19, typename Check20,
2251
+ typename Check21, typename Check22, typename Check23, typename Check24,
2252
+ typename Check25, typename Check26, typename Check27, typename Check28,
2253
+ typename Check29, typename Check30, typename Check31, typename Check32,
2254
+ typename Check33, typename Check34, typename Check35, typename Check36,
2255
+ typename Check37, typename Check38, typename Check39, typename Check40,
2256
+ typename Check41, typename Check42, typename Check43, typename Action0,
2257
+ typename Action1, typename Action2, typename Action3, typename Action4,
2258
+ typename Action5, typename Action6, typename Action7, typename Action8,
2259
+ typename Action9, typename Action10, typename Action11, typename Action12,
2260
+ typename Action13, typename Action14, typename Action15, typename Action16,
2261
+ typename Action17, typename Action18, typename Action19, typename Action20,
2262
+ typename Action21, typename Action22, typename Action23, typename Action24,
2263
+ typename Action25, typename Action26, typename Action27, typename Action28,
2264
+ typename Action29, typename Action30, typename Action31, typename Action32,
2265
+ typename Action33, typename Action34, typename Action35, typename Action36,
2266
+ typename Action37, typename Action38, typename Action39, typename Action40,
2267
+ typename Action41, typename Action42, typename Action43>
2268
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2269
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2270
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2271
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2272
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2273
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2274
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2275
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2276
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2277
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2278
+ Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2279
+ Check40 check40, Check41 check41, Check42 check42, Check43 check43,
2280
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2281
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2282
+ Action8 action8, Action9 action9, Action10 action10,
2283
+ Action11 action11, Action12 action12, Action13 action13,
2284
+ Action14 action14, Action15 action15, Action16 action16,
2285
+ Action17 action17, Action18 action18, Action19 action19,
2286
+ Action20 action20, Action21 action21, Action22 action22,
2287
+ Action23 action23, Action24 action24, Action25 action25,
2288
+ Action26 action26, Action27 action27, Action28 action28,
2289
+ Action29 action29, Action30 action30, Action31 action31,
2290
+ Action32 action32, Action33 action33, Action34 action34,
2291
+ Action35 action35, Action36 action36, Action37 action37,
2292
+ Action38 action38, Action39 action39, Action40 action40,
2293
+ Action41 action41, Action42 action42, Action43 action43) {
2294
+ if (check0(input)) return action0(action_arg);
2295
+ if (check1(input)) return action1(action_arg);
2296
+ if (check2(input)) return action2(action_arg);
2297
+ if (check3(input)) return action3(action_arg);
2298
+ if (check4(input)) return action4(action_arg);
2299
+ if (check5(input)) return action5(action_arg);
2300
+ if (check6(input)) return action6(action_arg);
2301
+ if (check7(input)) return action7(action_arg);
2302
+ if (check8(input)) return action8(action_arg);
2303
+ if (check9(input)) return action9(action_arg);
2304
+ if (check10(input)) return action10(action_arg);
2305
+ if (check11(input)) return action11(action_arg);
2306
+ if (check12(input)) return action12(action_arg);
2307
+ if (check13(input)) return action13(action_arg);
2308
+ if (check14(input)) return action14(action_arg);
2309
+ if (check15(input)) return action15(action_arg);
2310
+ if (check16(input)) return action16(action_arg);
2311
+ if (check17(input)) return action17(action_arg);
2312
+ if (check18(input)) return action18(action_arg);
2313
+ if (check19(input)) return action19(action_arg);
2314
+ if (check20(input)) return action20(action_arg);
2315
+ if (check21(input)) return action21(action_arg);
2316
+ if (check22(input)) return action22(action_arg);
2317
+ if (check23(input)) return action23(action_arg);
2318
+ if (check24(input)) return action24(action_arg);
2319
+ if (check25(input)) return action25(action_arg);
2320
+ if (check26(input)) return action26(action_arg);
2321
+ if (check27(input)) return action27(action_arg);
2322
+ if (check28(input)) return action28(action_arg);
2323
+ if (check29(input)) return action29(action_arg);
2324
+ if (check30(input)) return action30(action_arg);
2325
+ if (check31(input)) return action31(action_arg);
2326
+ if (check32(input)) return action32(action_arg);
2327
+ if (check33(input)) return action33(action_arg);
2328
+ if (check34(input)) return action34(action_arg);
2329
+ if (check35(input)) return action35(action_arg);
2330
+ if (check36(input)) return action36(action_arg);
2331
+ if (check37(input)) return action37(action_arg);
2332
+ if (check38(input)) return action38(action_arg);
2333
+ if (check39(input)) return action39(action_arg);
2334
+ if (check40(input)) return action40(action_arg);
2335
+ if (check41(input)) return action41(action_arg);
2336
+ if (check42(input)) return action42(action_arg);
2337
+ if (check43(input)) return action43(action_arg);
2338
+ return action_fail(action_arg);
2339
+ }
2340
+
2341
+ template <
2342
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2343
+ typename Check1, typename Check2, typename Check3, typename Check4,
2344
+ typename Check5, typename Check6, typename Check7, typename Check8,
2345
+ typename Check9, typename Check10, typename Check11, typename Check12,
2346
+ typename Check13, typename Check14, typename Check15, typename Check16,
2347
+ typename Check17, typename Check18, typename Check19, typename Check20,
2348
+ typename Check21, typename Check22, typename Check23, typename Check24,
2349
+ typename Check25, typename Check26, typename Check27, typename Check28,
2350
+ typename Check29, typename Check30, typename Check31, typename Check32,
2351
+ typename Check33, typename Check34, typename Check35, typename Check36,
2352
+ typename Check37, typename Check38, typename Check39, typename Check40,
2353
+ typename Check41, typename Check42, typename Check43, typename Check44,
2354
+ typename Action0, typename Action1, typename Action2, typename Action3,
2355
+ typename Action4, typename Action5, typename Action6, typename Action7,
2356
+ typename Action8, typename Action9, typename Action10, typename Action11,
2357
+ typename Action12, typename Action13, typename Action14, typename Action15,
2358
+ typename Action16, typename Action17, typename Action18, typename Action19,
2359
+ typename Action20, typename Action21, typename Action22, typename Action23,
2360
+ typename Action24, typename Action25, typename Action26, typename Action27,
2361
+ typename Action28, typename Action29, typename Action30, typename Action31,
2362
+ typename Action32, typename Action33, typename Action34, typename Action35,
2363
+ typename Action36, typename Action37, typename Action38, typename Action39,
2364
+ typename Action40, typename Action41, typename Action42, typename Action43,
2365
+ typename Action44>
2366
+ auto IfList(
2367
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2368
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2369
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2370
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2371
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2372
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2373
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2374
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2375
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2376
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2377
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2378
+ Check43 check43, Check44 check44, Action0 action0, Action1 action1,
2379
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2380
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2381
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2382
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2383
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2384
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2385
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2386
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2387
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2388
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
2389
+ Action42 action42, Action43 action43, Action44 action44) {
2390
+ if (check0(input)) return action0(action_arg);
2391
+ if (check1(input)) return action1(action_arg);
2392
+ if (check2(input)) return action2(action_arg);
2393
+ if (check3(input)) return action3(action_arg);
2394
+ if (check4(input)) return action4(action_arg);
2395
+ if (check5(input)) return action5(action_arg);
2396
+ if (check6(input)) return action6(action_arg);
2397
+ if (check7(input)) return action7(action_arg);
2398
+ if (check8(input)) return action8(action_arg);
2399
+ if (check9(input)) return action9(action_arg);
2400
+ if (check10(input)) return action10(action_arg);
2401
+ if (check11(input)) return action11(action_arg);
2402
+ if (check12(input)) return action12(action_arg);
2403
+ if (check13(input)) return action13(action_arg);
2404
+ if (check14(input)) return action14(action_arg);
2405
+ if (check15(input)) return action15(action_arg);
2406
+ if (check16(input)) return action16(action_arg);
2407
+ if (check17(input)) return action17(action_arg);
2408
+ if (check18(input)) return action18(action_arg);
2409
+ if (check19(input)) return action19(action_arg);
2410
+ if (check20(input)) return action20(action_arg);
2411
+ if (check21(input)) return action21(action_arg);
2412
+ if (check22(input)) return action22(action_arg);
2413
+ if (check23(input)) return action23(action_arg);
2414
+ if (check24(input)) return action24(action_arg);
2415
+ if (check25(input)) return action25(action_arg);
2416
+ if (check26(input)) return action26(action_arg);
2417
+ if (check27(input)) return action27(action_arg);
2418
+ if (check28(input)) return action28(action_arg);
2419
+ if (check29(input)) return action29(action_arg);
2420
+ if (check30(input)) return action30(action_arg);
2421
+ if (check31(input)) return action31(action_arg);
2422
+ if (check32(input)) return action32(action_arg);
2423
+ if (check33(input)) return action33(action_arg);
2424
+ if (check34(input)) return action34(action_arg);
2425
+ if (check35(input)) return action35(action_arg);
2426
+ if (check36(input)) return action36(action_arg);
2427
+ if (check37(input)) return action37(action_arg);
2428
+ if (check38(input)) return action38(action_arg);
2429
+ if (check39(input)) return action39(action_arg);
2430
+ if (check40(input)) return action40(action_arg);
2431
+ if (check41(input)) return action41(action_arg);
2432
+ if (check42(input)) return action42(action_arg);
2433
+ if (check43(input)) return action43(action_arg);
2434
+ if (check44(input)) return action44(action_arg);
2435
+ return action_fail(action_arg);
2436
+ }
2437
+
2438
+ template <
2439
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2440
+ typename Check1, typename Check2, typename Check3, typename Check4,
2441
+ typename Check5, typename Check6, typename Check7, typename Check8,
2442
+ typename Check9, typename Check10, typename Check11, typename Check12,
2443
+ typename Check13, typename Check14, typename Check15, typename Check16,
2444
+ typename Check17, typename Check18, typename Check19, typename Check20,
2445
+ typename Check21, typename Check22, typename Check23, typename Check24,
2446
+ typename Check25, typename Check26, typename Check27, typename Check28,
2447
+ typename Check29, typename Check30, typename Check31, typename Check32,
2448
+ typename Check33, typename Check34, typename Check35, typename Check36,
2449
+ typename Check37, typename Check38, typename Check39, typename Check40,
2450
+ typename Check41, typename Check42, typename Check43, typename Check44,
2451
+ typename Check45, typename Action0, typename Action1, typename Action2,
2452
+ typename Action3, typename Action4, typename Action5, typename Action6,
2453
+ typename Action7, typename Action8, typename Action9, typename Action10,
2454
+ typename Action11, typename Action12, typename Action13, typename Action14,
2455
+ typename Action15, typename Action16, typename Action17, typename Action18,
2456
+ typename Action19, typename Action20, typename Action21, typename Action22,
2457
+ typename Action23, typename Action24, typename Action25, typename Action26,
2458
+ typename Action27, typename Action28, typename Action29, typename Action30,
2459
+ typename Action31, typename Action32, typename Action33, typename Action34,
2460
+ typename Action35, typename Action36, typename Action37, typename Action38,
2461
+ typename Action39, typename Action40, typename Action41, typename Action42,
2462
+ typename Action43, typename Action44, typename Action45>
2463
+ auto IfList(CheckArg input, ActionArg action_arg, ActionFail action_fail,
2464
+ Check0 check0, Check1 check1, Check2 check2, Check3 check3,
2465
+ Check4 check4, Check5 check5, Check6 check6, Check7 check7,
2466
+ Check8 check8, Check9 check9, Check10 check10, Check11 check11,
2467
+ Check12 check12, Check13 check13, Check14 check14, Check15 check15,
2468
+ Check16 check16, Check17 check17, Check18 check18, Check19 check19,
2469
+ Check20 check20, Check21 check21, Check22 check22, Check23 check23,
2470
+ Check24 check24, Check25 check25, Check26 check26, Check27 check27,
2471
+ Check28 check28, Check29 check29, Check30 check30, Check31 check31,
2472
+ Check32 check32, Check33 check33, Check34 check34, Check35 check35,
2473
+ Check36 check36, Check37 check37, Check38 check38, Check39 check39,
2474
+ Check40 check40, Check41 check41, Check42 check42, Check43 check43,
2475
+ Check44 check44, Check45 check45, Action0 action0, Action1 action1,
2476
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2477
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2478
+ Action10 action10, Action11 action11, Action12 action12,
2479
+ Action13 action13, Action14 action14, Action15 action15,
2480
+ Action16 action16, Action17 action17, Action18 action18,
2481
+ Action19 action19, Action20 action20, Action21 action21,
2482
+ Action22 action22, Action23 action23, Action24 action24,
2483
+ Action25 action25, Action26 action26, Action27 action27,
2484
+ Action28 action28, Action29 action29, Action30 action30,
2485
+ Action31 action31, Action32 action32, Action33 action33,
2486
+ Action34 action34, Action35 action35, Action36 action36,
2487
+ Action37 action37, Action38 action38, Action39 action39,
2488
+ Action40 action40, Action41 action41, Action42 action42,
2489
+ Action43 action43, Action44 action44, Action45 action45) {
2490
+ if (check0(input)) return action0(action_arg);
2491
+ if (check1(input)) return action1(action_arg);
2492
+ if (check2(input)) return action2(action_arg);
2493
+ if (check3(input)) return action3(action_arg);
2494
+ if (check4(input)) return action4(action_arg);
2495
+ if (check5(input)) return action5(action_arg);
2496
+ if (check6(input)) return action6(action_arg);
2497
+ if (check7(input)) return action7(action_arg);
2498
+ if (check8(input)) return action8(action_arg);
2499
+ if (check9(input)) return action9(action_arg);
2500
+ if (check10(input)) return action10(action_arg);
2501
+ if (check11(input)) return action11(action_arg);
2502
+ if (check12(input)) return action12(action_arg);
2503
+ if (check13(input)) return action13(action_arg);
2504
+ if (check14(input)) return action14(action_arg);
2505
+ if (check15(input)) return action15(action_arg);
2506
+ if (check16(input)) return action16(action_arg);
2507
+ if (check17(input)) return action17(action_arg);
2508
+ if (check18(input)) return action18(action_arg);
2509
+ if (check19(input)) return action19(action_arg);
2510
+ if (check20(input)) return action20(action_arg);
2511
+ if (check21(input)) return action21(action_arg);
2512
+ if (check22(input)) return action22(action_arg);
2513
+ if (check23(input)) return action23(action_arg);
2514
+ if (check24(input)) return action24(action_arg);
2515
+ if (check25(input)) return action25(action_arg);
2516
+ if (check26(input)) return action26(action_arg);
2517
+ if (check27(input)) return action27(action_arg);
2518
+ if (check28(input)) return action28(action_arg);
2519
+ if (check29(input)) return action29(action_arg);
2520
+ if (check30(input)) return action30(action_arg);
2521
+ if (check31(input)) return action31(action_arg);
2522
+ if (check32(input)) return action32(action_arg);
2523
+ if (check33(input)) return action33(action_arg);
2524
+ if (check34(input)) return action34(action_arg);
2525
+ if (check35(input)) return action35(action_arg);
2526
+ if (check36(input)) return action36(action_arg);
2527
+ if (check37(input)) return action37(action_arg);
2528
+ if (check38(input)) return action38(action_arg);
2529
+ if (check39(input)) return action39(action_arg);
2530
+ if (check40(input)) return action40(action_arg);
2531
+ if (check41(input)) return action41(action_arg);
2532
+ if (check42(input)) return action42(action_arg);
2533
+ if (check43(input)) return action43(action_arg);
2534
+ if (check44(input)) return action44(action_arg);
2535
+ if (check45(input)) return action45(action_arg);
2536
+ return action_fail(action_arg);
2537
+ }
2538
+
2539
+ template <
2540
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2541
+ typename Check1, typename Check2, typename Check3, typename Check4,
2542
+ typename Check5, typename Check6, typename Check7, typename Check8,
2543
+ typename Check9, typename Check10, typename Check11, typename Check12,
2544
+ typename Check13, typename Check14, typename Check15, typename Check16,
2545
+ typename Check17, typename Check18, typename Check19, typename Check20,
2546
+ typename Check21, typename Check22, typename Check23, typename Check24,
2547
+ typename Check25, typename Check26, typename Check27, typename Check28,
2548
+ typename Check29, typename Check30, typename Check31, typename Check32,
2549
+ typename Check33, typename Check34, typename Check35, typename Check36,
2550
+ typename Check37, typename Check38, typename Check39, typename Check40,
2551
+ typename Check41, typename Check42, typename Check43, typename Check44,
2552
+ typename Check45, typename Check46, typename Action0, typename Action1,
2553
+ typename Action2, typename Action3, typename Action4, typename Action5,
2554
+ typename Action6, typename Action7, typename Action8, typename Action9,
2555
+ typename Action10, typename Action11, typename Action12, typename Action13,
2556
+ typename Action14, typename Action15, typename Action16, typename Action17,
2557
+ typename Action18, typename Action19, typename Action20, typename Action21,
2558
+ typename Action22, typename Action23, typename Action24, typename Action25,
2559
+ typename Action26, typename Action27, typename Action28, typename Action29,
2560
+ typename Action30, typename Action31, typename Action32, typename Action33,
2561
+ typename Action34, typename Action35, typename Action36, typename Action37,
2562
+ typename Action38, typename Action39, typename Action40, typename Action41,
2563
+ typename Action42, typename Action43, typename Action44, typename Action45,
2564
+ typename Action46>
2565
+ auto IfList(
2566
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2567
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2568
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2569
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2570
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2571
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2572
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2573
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2574
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2575
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2576
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2577
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2578
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2579
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2580
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
2581
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
2582
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
2583
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
2584
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
2585
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
2586
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
2587
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
2588
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
2589
+ Action44 action44, Action45 action45, Action46 action46) {
2590
+ if (check0(input)) return action0(action_arg);
2591
+ if (check1(input)) return action1(action_arg);
2592
+ if (check2(input)) return action2(action_arg);
2593
+ if (check3(input)) return action3(action_arg);
2594
+ if (check4(input)) return action4(action_arg);
2595
+ if (check5(input)) return action5(action_arg);
2596
+ if (check6(input)) return action6(action_arg);
2597
+ if (check7(input)) return action7(action_arg);
2598
+ if (check8(input)) return action8(action_arg);
2599
+ if (check9(input)) return action9(action_arg);
2600
+ if (check10(input)) return action10(action_arg);
2601
+ if (check11(input)) return action11(action_arg);
2602
+ if (check12(input)) return action12(action_arg);
2603
+ if (check13(input)) return action13(action_arg);
2604
+ if (check14(input)) return action14(action_arg);
2605
+ if (check15(input)) return action15(action_arg);
2606
+ if (check16(input)) return action16(action_arg);
2607
+ if (check17(input)) return action17(action_arg);
2608
+ if (check18(input)) return action18(action_arg);
2609
+ if (check19(input)) return action19(action_arg);
2610
+ if (check20(input)) return action20(action_arg);
2611
+ if (check21(input)) return action21(action_arg);
2612
+ if (check22(input)) return action22(action_arg);
2613
+ if (check23(input)) return action23(action_arg);
2614
+ if (check24(input)) return action24(action_arg);
2615
+ if (check25(input)) return action25(action_arg);
2616
+ if (check26(input)) return action26(action_arg);
2617
+ if (check27(input)) return action27(action_arg);
2618
+ if (check28(input)) return action28(action_arg);
2619
+ if (check29(input)) return action29(action_arg);
2620
+ if (check30(input)) return action30(action_arg);
2621
+ if (check31(input)) return action31(action_arg);
2622
+ if (check32(input)) return action32(action_arg);
2623
+ if (check33(input)) return action33(action_arg);
2624
+ if (check34(input)) return action34(action_arg);
2625
+ if (check35(input)) return action35(action_arg);
2626
+ if (check36(input)) return action36(action_arg);
2627
+ if (check37(input)) return action37(action_arg);
2628
+ if (check38(input)) return action38(action_arg);
2629
+ if (check39(input)) return action39(action_arg);
2630
+ if (check40(input)) return action40(action_arg);
2631
+ if (check41(input)) return action41(action_arg);
2632
+ if (check42(input)) return action42(action_arg);
2633
+ if (check43(input)) return action43(action_arg);
2634
+ if (check44(input)) return action44(action_arg);
2635
+ if (check45(input)) return action45(action_arg);
2636
+ if (check46(input)) return action46(action_arg);
2637
+ return action_fail(action_arg);
2638
+ }
2639
+
2640
+ template <
2641
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2642
+ typename Check1, typename Check2, typename Check3, typename Check4,
2643
+ typename Check5, typename Check6, typename Check7, typename Check8,
2644
+ typename Check9, typename Check10, typename Check11, typename Check12,
2645
+ typename Check13, typename Check14, typename Check15, typename Check16,
2646
+ typename Check17, typename Check18, typename Check19, typename Check20,
2647
+ typename Check21, typename Check22, typename Check23, typename Check24,
2648
+ typename Check25, typename Check26, typename Check27, typename Check28,
2649
+ typename Check29, typename Check30, typename Check31, typename Check32,
2650
+ typename Check33, typename Check34, typename Check35, typename Check36,
2651
+ typename Check37, typename Check38, typename Check39, typename Check40,
2652
+ typename Check41, typename Check42, typename Check43, typename Check44,
2653
+ typename Check45, typename Check46, typename Check47, typename Action0,
2654
+ typename Action1, typename Action2, typename Action3, typename Action4,
2655
+ typename Action5, typename Action6, typename Action7, typename Action8,
2656
+ typename Action9, typename Action10, typename Action11, typename Action12,
2657
+ typename Action13, typename Action14, typename Action15, typename Action16,
2658
+ typename Action17, typename Action18, typename Action19, typename Action20,
2659
+ typename Action21, typename Action22, typename Action23, typename Action24,
2660
+ typename Action25, typename Action26, typename Action27, typename Action28,
2661
+ typename Action29, typename Action30, typename Action31, typename Action32,
2662
+ typename Action33, typename Action34, typename Action35, typename Action36,
2663
+ typename Action37, typename Action38, typename Action39, typename Action40,
2664
+ typename Action41, typename Action42, typename Action43, typename Action44,
2665
+ typename Action45, typename Action46, typename Action47>
2666
+ auto IfList(
2667
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2668
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2669
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2670
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2671
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2672
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2673
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2674
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2675
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2676
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2677
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2678
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2679
+ Check47 check47, Action0 action0, Action1 action1, Action2 action2,
2680
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
2681
+ Action7 action7, Action8 action8, Action9 action9, Action10 action10,
2682
+ Action11 action11, Action12 action12, Action13 action13, Action14 action14,
2683
+ Action15 action15, Action16 action16, Action17 action17, Action18 action18,
2684
+ Action19 action19, Action20 action20, Action21 action21, Action22 action22,
2685
+ Action23 action23, Action24 action24, Action25 action25, Action26 action26,
2686
+ Action27 action27, Action28 action28, Action29 action29, Action30 action30,
2687
+ Action31 action31, Action32 action32, Action33 action33, Action34 action34,
2688
+ Action35 action35, Action36 action36, Action37 action37, Action38 action38,
2689
+ Action39 action39, Action40 action40, Action41 action41, Action42 action42,
2690
+ Action43 action43, Action44 action44, Action45 action45, Action46 action46,
2691
+ Action47 action47) {
2692
+ if (check0(input)) return action0(action_arg);
2693
+ if (check1(input)) return action1(action_arg);
2694
+ if (check2(input)) return action2(action_arg);
2695
+ if (check3(input)) return action3(action_arg);
2696
+ if (check4(input)) return action4(action_arg);
2697
+ if (check5(input)) return action5(action_arg);
2698
+ if (check6(input)) return action6(action_arg);
2699
+ if (check7(input)) return action7(action_arg);
2700
+ if (check8(input)) return action8(action_arg);
2701
+ if (check9(input)) return action9(action_arg);
2702
+ if (check10(input)) return action10(action_arg);
2703
+ if (check11(input)) return action11(action_arg);
2704
+ if (check12(input)) return action12(action_arg);
2705
+ if (check13(input)) return action13(action_arg);
2706
+ if (check14(input)) return action14(action_arg);
2707
+ if (check15(input)) return action15(action_arg);
2708
+ if (check16(input)) return action16(action_arg);
2709
+ if (check17(input)) return action17(action_arg);
2710
+ if (check18(input)) return action18(action_arg);
2711
+ if (check19(input)) return action19(action_arg);
2712
+ if (check20(input)) return action20(action_arg);
2713
+ if (check21(input)) return action21(action_arg);
2714
+ if (check22(input)) return action22(action_arg);
2715
+ if (check23(input)) return action23(action_arg);
2716
+ if (check24(input)) return action24(action_arg);
2717
+ if (check25(input)) return action25(action_arg);
2718
+ if (check26(input)) return action26(action_arg);
2719
+ if (check27(input)) return action27(action_arg);
2720
+ if (check28(input)) return action28(action_arg);
2721
+ if (check29(input)) return action29(action_arg);
2722
+ if (check30(input)) return action30(action_arg);
2723
+ if (check31(input)) return action31(action_arg);
2724
+ if (check32(input)) return action32(action_arg);
2725
+ if (check33(input)) return action33(action_arg);
2726
+ if (check34(input)) return action34(action_arg);
2727
+ if (check35(input)) return action35(action_arg);
2728
+ if (check36(input)) return action36(action_arg);
2729
+ if (check37(input)) return action37(action_arg);
2730
+ if (check38(input)) return action38(action_arg);
2731
+ if (check39(input)) return action39(action_arg);
2732
+ if (check40(input)) return action40(action_arg);
2733
+ if (check41(input)) return action41(action_arg);
2734
+ if (check42(input)) return action42(action_arg);
2735
+ if (check43(input)) return action43(action_arg);
2736
+ if (check44(input)) return action44(action_arg);
2737
+ if (check45(input)) return action45(action_arg);
2738
+ if (check46(input)) return action46(action_arg);
2739
+ if (check47(input)) return action47(action_arg);
2740
+ return action_fail(action_arg);
2741
+ }
2742
+
2743
+ template <
2744
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2745
+ typename Check1, typename Check2, typename Check3, typename Check4,
2746
+ typename Check5, typename Check6, typename Check7, typename Check8,
2747
+ typename Check9, typename Check10, typename Check11, typename Check12,
2748
+ typename Check13, typename Check14, typename Check15, typename Check16,
2749
+ typename Check17, typename Check18, typename Check19, typename Check20,
2750
+ typename Check21, typename Check22, typename Check23, typename Check24,
2751
+ typename Check25, typename Check26, typename Check27, typename Check28,
2752
+ typename Check29, typename Check30, typename Check31, typename Check32,
2753
+ typename Check33, typename Check34, typename Check35, typename Check36,
2754
+ typename Check37, typename Check38, typename Check39, typename Check40,
2755
+ typename Check41, typename Check42, typename Check43, typename Check44,
2756
+ typename Check45, typename Check46, typename Check47, typename Check48,
2757
+ typename Action0, typename Action1, typename Action2, typename Action3,
2758
+ typename Action4, typename Action5, typename Action6, typename Action7,
2759
+ typename Action8, typename Action9, typename Action10, typename Action11,
2760
+ typename Action12, typename Action13, typename Action14, typename Action15,
2761
+ typename Action16, typename Action17, typename Action18, typename Action19,
2762
+ typename Action20, typename Action21, typename Action22, typename Action23,
2763
+ typename Action24, typename Action25, typename Action26, typename Action27,
2764
+ typename Action28, typename Action29, typename Action30, typename Action31,
2765
+ typename Action32, typename Action33, typename Action34, typename Action35,
2766
+ typename Action36, typename Action37, typename Action38, typename Action39,
2767
+ typename Action40, typename Action41, typename Action42, typename Action43,
2768
+ typename Action44, typename Action45, typename Action46, typename Action47,
2769
+ typename Action48>
2770
+ auto IfList(
2771
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2772
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2773
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2774
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2775
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2776
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2777
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2778
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2779
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2780
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2781
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2782
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2783
+ Check47 check47, Check48 check48, Action0 action0, Action1 action1,
2784
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
2785
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
2786
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
2787
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
2788
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
2789
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
2790
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
2791
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
2792
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
2793
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
2794
+ Action42 action42, Action43 action43, Action44 action44, Action45 action45,
2795
+ Action46 action46, Action47 action47, Action48 action48) {
2796
+ if (check0(input)) return action0(action_arg);
2797
+ if (check1(input)) return action1(action_arg);
2798
+ if (check2(input)) return action2(action_arg);
2799
+ if (check3(input)) return action3(action_arg);
2800
+ if (check4(input)) return action4(action_arg);
2801
+ if (check5(input)) return action5(action_arg);
2802
+ if (check6(input)) return action6(action_arg);
2803
+ if (check7(input)) return action7(action_arg);
2804
+ if (check8(input)) return action8(action_arg);
2805
+ if (check9(input)) return action9(action_arg);
2806
+ if (check10(input)) return action10(action_arg);
2807
+ if (check11(input)) return action11(action_arg);
2808
+ if (check12(input)) return action12(action_arg);
2809
+ if (check13(input)) return action13(action_arg);
2810
+ if (check14(input)) return action14(action_arg);
2811
+ if (check15(input)) return action15(action_arg);
2812
+ if (check16(input)) return action16(action_arg);
2813
+ if (check17(input)) return action17(action_arg);
2814
+ if (check18(input)) return action18(action_arg);
2815
+ if (check19(input)) return action19(action_arg);
2816
+ if (check20(input)) return action20(action_arg);
2817
+ if (check21(input)) return action21(action_arg);
2818
+ if (check22(input)) return action22(action_arg);
2819
+ if (check23(input)) return action23(action_arg);
2820
+ if (check24(input)) return action24(action_arg);
2821
+ if (check25(input)) return action25(action_arg);
2822
+ if (check26(input)) return action26(action_arg);
2823
+ if (check27(input)) return action27(action_arg);
2824
+ if (check28(input)) return action28(action_arg);
2825
+ if (check29(input)) return action29(action_arg);
2826
+ if (check30(input)) return action30(action_arg);
2827
+ if (check31(input)) return action31(action_arg);
2828
+ if (check32(input)) return action32(action_arg);
2829
+ if (check33(input)) return action33(action_arg);
2830
+ if (check34(input)) return action34(action_arg);
2831
+ if (check35(input)) return action35(action_arg);
2832
+ if (check36(input)) return action36(action_arg);
2833
+ if (check37(input)) return action37(action_arg);
2834
+ if (check38(input)) return action38(action_arg);
2835
+ if (check39(input)) return action39(action_arg);
2836
+ if (check40(input)) return action40(action_arg);
2837
+ if (check41(input)) return action41(action_arg);
2838
+ if (check42(input)) return action42(action_arg);
2839
+ if (check43(input)) return action43(action_arg);
2840
+ if (check44(input)) return action44(action_arg);
2841
+ if (check45(input)) return action45(action_arg);
2842
+ if (check46(input)) return action46(action_arg);
2843
+ if (check47(input)) return action47(action_arg);
2844
+ if (check48(input)) return action48(action_arg);
2845
+ return action_fail(action_arg);
2846
+ }
2847
+
2848
+ template <
2849
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2850
+ typename Check1, typename Check2, typename Check3, typename Check4,
2851
+ typename Check5, typename Check6, typename Check7, typename Check8,
2852
+ typename Check9, typename Check10, typename Check11, typename Check12,
2853
+ typename Check13, typename Check14, typename Check15, typename Check16,
2854
+ typename Check17, typename Check18, typename Check19, typename Check20,
2855
+ typename Check21, typename Check22, typename Check23, typename Check24,
2856
+ typename Check25, typename Check26, typename Check27, typename Check28,
2857
+ typename Check29, typename Check30, typename Check31, typename Check32,
2858
+ typename Check33, typename Check34, typename Check35, typename Check36,
2859
+ typename Check37, typename Check38, typename Check39, typename Check40,
2860
+ typename Check41, typename Check42, typename Check43, typename Check44,
2861
+ typename Check45, typename Check46, typename Check47, typename Check48,
2862
+ typename Check49, typename Action0, typename Action1, typename Action2,
2863
+ typename Action3, typename Action4, typename Action5, typename Action6,
2864
+ typename Action7, typename Action8, typename Action9, typename Action10,
2865
+ typename Action11, typename Action12, typename Action13, typename Action14,
2866
+ typename Action15, typename Action16, typename Action17, typename Action18,
2867
+ typename Action19, typename Action20, typename Action21, typename Action22,
2868
+ typename Action23, typename Action24, typename Action25, typename Action26,
2869
+ typename Action27, typename Action28, typename Action29, typename Action30,
2870
+ typename Action31, typename Action32, typename Action33, typename Action34,
2871
+ typename Action35, typename Action36, typename Action37, typename Action38,
2872
+ typename Action39, typename Action40, typename Action41, typename Action42,
2873
+ typename Action43, typename Action44, typename Action45, typename Action46,
2874
+ typename Action47, typename Action48, typename Action49>
2875
+ auto IfList(
2876
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2877
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2878
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2879
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2880
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2881
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2882
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2883
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2884
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2885
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2886
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2887
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2888
+ Check47 check47, Check48 check48, Check49 check49, Action0 action0,
2889
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
2890
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
2891
+ Action9 action9, Action10 action10, Action11 action11, Action12 action12,
2892
+ Action13 action13, Action14 action14, Action15 action15, Action16 action16,
2893
+ Action17 action17, Action18 action18, Action19 action19, Action20 action20,
2894
+ Action21 action21, Action22 action22, Action23 action23, Action24 action24,
2895
+ Action25 action25, Action26 action26, Action27 action27, Action28 action28,
2896
+ Action29 action29, Action30 action30, Action31 action31, Action32 action32,
2897
+ Action33 action33, Action34 action34, Action35 action35, Action36 action36,
2898
+ Action37 action37, Action38 action38, Action39 action39, Action40 action40,
2899
+ Action41 action41, Action42 action42, Action43 action43, Action44 action44,
2900
+ Action45 action45, Action46 action46, Action47 action47, Action48 action48,
2901
+ Action49 action49) {
2902
+ if (check0(input)) return action0(action_arg);
2903
+ if (check1(input)) return action1(action_arg);
2904
+ if (check2(input)) return action2(action_arg);
2905
+ if (check3(input)) return action3(action_arg);
2906
+ if (check4(input)) return action4(action_arg);
2907
+ if (check5(input)) return action5(action_arg);
2908
+ if (check6(input)) return action6(action_arg);
2909
+ if (check7(input)) return action7(action_arg);
2910
+ if (check8(input)) return action8(action_arg);
2911
+ if (check9(input)) return action9(action_arg);
2912
+ if (check10(input)) return action10(action_arg);
2913
+ if (check11(input)) return action11(action_arg);
2914
+ if (check12(input)) return action12(action_arg);
2915
+ if (check13(input)) return action13(action_arg);
2916
+ if (check14(input)) return action14(action_arg);
2917
+ if (check15(input)) return action15(action_arg);
2918
+ if (check16(input)) return action16(action_arg);
2919
+ if (check17(input)) return action17(action_arg);
2920
+ if (check18(input)) return action18(action_arg);
2921
+ if (check19(input)) return action19(action_arg);
2922
+ if (check20(input)) return action20(action_arg);
2923
+ if (check21(input)) return action21(action_arg);
2924
+ if (check22(input)) return action22(action_arg);
2925
+ if (check23(input)) return action23(action_arg);
2926
+ if (check24(input)) return action24(action_arg);
2927
+ if (check25(input)) return action25(action_arg);
2928
+ if (check26(input)) return action26(action_arg);
2929
+ if (check27(input)) return action27(action_arg);
2930
+ if (check28(input)) return action28(action_arg);
2931
+ if (check29(input)) return action29(action_arg);
2932
+ if (check30(input)) return action30(action_arg);
2933
+ if (check31(input)) return action31(action_arg);
2934
+ if (check32(input)) return action32(action_arg);
2935
+ if (check33(input)) return action33(action_arg);
2936
+ if (check34(input)) return action34(action_arg);
2937
+ if (check35(input)) return action35(action_arg);
2938
+ if (check36(input)) return action36(action_arg);
2939
+ if (check37(input)) return action37(action_arg);
2940
+ if (check38(input)) return action38(action_arg);
2941
+ if (check39(input)) return action39(action_arg);
2942
+ if (check40(input)) return action40(action_arg);
2943
+ if (check41(input)) return action41(action_arg);
2944
+ if (check42(input)) return action42(action_arg);
2945
+ if (check43(input)) return action43(action_arg);
2946
+ if (check44(input)) return action44(action_arg);
2947
+ if (check45(input)) return action45(action_arg);
2948
+ if (check46(input)) return action46(action_arg);
2949
+ if (check47(input)) return action47(action_arg);
2950
+ if (check48(input)) return action48(action_arg);
2951
+ if (check49(input)) return action49(action_arg);
2952
+ return action_fail(action_arg);
2953
+ }
2954
+
2955
+ template <
2956
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
2957
+ typename Check1, typename Check2, typename Check3, typename Check4,
2958
+ typename Check5, typename Check6, typename Check7, typename Check8,
2959
+ typename Check9, typename Check10, typename Check11, typename Check12,
2960
+ typename Check13, typename Check14, typename Check15, typename Check16,
2961
+ typename Check17, typename Check18, typename Check19, typename Check20,
2962
+ typename Check21, typename Check22, typename Check23, typename Check24,
2963
+ typename Check25, typename Check26, typename Check27, typename Check28,
2964
+ typename Check29, typename Check30, typename Check31, typename Check32,
2965
+ typename Check33, typename Check34, typename Check35, typename Check36,
2966
+ typename Check37, typename Check38, typename Check39, typename Check40,
2967
+ typename Check41, typename Check42, typename Check43, typename Check44,
2968
+ typename Check45, typename Check46, typename Check47, typename Check48,
2969
+ typename Check49, typename Check50, typename Action0, typename Action1,
2970
+ typename Action2, typename Action3, typename Action4, typename Action5,
2971
+ typename Action6, typename Action7, typename Action8, typename Action9,
2972
+ typename Action10, typename Action11, typename Action12, typename Action13,
2973
+ typename Action14, typename Action15, typename Action16, typename Action17,
2974
+ typename Action18, typename Action19, typename Action20, typename Action21,
2975
+ typename Action22, typename Action23, typename Action24, typename Action25,
2976
+ typename Action26, typename Action27, typename Action28, typename Action29,
2977
+ typename Action30, typename Action31, typename Action32, typename Action33,
2978
+ typename Action34, typename Action35, typename Action36, typename Action37,
2979
+ typename Action38, typename Action39, typename Action40, typename Action41,
2980
+ typename Action42, typename Action43, typename Action44, typename Action45,
2981
+ typename Action46, typename Action47, typename Action48, typename Action49,
2982
+ typename Action50>
2983
+ auto IfList(
2984
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
2985
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
2986
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
2987
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
2988
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
2989
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
2990
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
2991
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
2992
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
2993
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
2994
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
2995
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
2996
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
2997
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
2998
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
2999
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3000
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3001
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3002
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3003
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3004
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3005
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3006
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3007
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3008
+ Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3009
+ Action48 action48, Action49 action49, Action50 action50) {
3010
+ if (check0(input)) return action0(action_arg);
3011
+ if (check1(input)) return action1(action_arg);
3012
+ if (check2(input)) return action2(action_arg);
3013
+ if (check3(input)) return action3(action_arg);
3014
+ if (check4(input)) return action4(action_arg);
3015
+ if (check5(input)) return action5(action_arg);
3016
+ if (check6(input)) return action6(action_arg);
3017
+ if (check7(input)) return action7(action_arg);
3018
+ if (check8(input)) return action8(action_arg);
3019
+ if (check9(input)) return action9(action_arg);
3020
+ if (check10(input)) return action10(action_arg);
3021
+ if (check11(input)) return action11(action_arg);
3022
+ if (check12(input)) return action12(action_arg);
3023
+ if (check13(input)) return action13(action_arg);
3024
+ if (check14(input)) return action14(action_arg);
3025
+ if (check15(input)) return action15(action_arg);
3026
+ if (check16(input)) return action16(action_arg);
3027
+ if (check17(input)) return action17(action_arg);
3028
+ if (check18(input)) return action18(action_arg);
3029
+ if (check19(input)) return action19(action_arg);
3030
+ if (check20(input)) return action20(action_arg);
3031
+ if (check21(input)) return action21(action_arg);
3032
+ if (check22(input)) return action22(action_arg);
3033
+ if (check23(input)) return action23(action_arg);
3034
+ if (check24(input)) return action24(action_arg);
3035
+ if (check25(input)) return action25(action_arg);
3036
+ if (check26(input)) return action26(action_arg);
3037
+ if (check27(input)) return action27(action_arg);
3038
+ if (check28(input)) return action28(action_arg);
3039
+ if (check29(input)) return action29(action_arg);
3040
+ if (check30(input)) return action30(action_arg);
3041
+ if (check31(input)) return action31(action_arg);
3042
+ if (check32(input)) return action32(action_arg);
3043
+ if (check33(input)) return action33(action_arg);
3044
+ if (check34(input)) return action34(action_arg);
3045
+ if (check35(input)) return action35(action_arg);
3046
+ if (check36(input)) return action36(action_arg);
3047
+ if (check37(input)) return action37(action_arg);
3048
+ if (check38(input)) return action38(action_arg);
3049
+ if (check39(input)) return action39(action_arg);
3050
+ if (check40(input)) return action40(action_arg);
3051
+ if (check41(input)) return action41(action_arg);
3052
+ if (check42(input)) return action42(action_arg);
3053
+ if (check43(input)) return action43(action_arg);
3054
+ if (check44(input)) return action44(action_arg);
3055
+ if (check45(input)) return action45(action_arg);
3056
+ if (check46(input)) return action46(action_arg);
3057
+ if (check47(input)) return action47(action_arg);
3058
+ if (check48(input)) return action48(action_arg);
3059
+ if (check49(input)) return action49(action_arg);
3060
+ if (check50(input)) return action50(action_arg);
3061
+ return action_fail(action_arg);
3062
+ }
3063
+
3064
+ template <
3065
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3066
+ typename Check1, typename Check2, typename Check3, typename Check4,
3067
+ typename Check5, typename Check6, typename Check7, typename Check8,
3068
+ typename Check9, typename Check10, typename Check11, typename Check12,
3069
+ typename Check13, typename Check14, typename Check15, typename Check16,
3070
+ typename Check17, typename Check18, typename Check19, typename Check20,
3071
+ typename Check21, typename Check22, typename Check23, typename Check24,
3072
+ typename Check25, typename Check26, typename Check27, typename Check28,
3073
+ typename Check29, typename Check30, typename Check31, typename Check32,
3074
+ typename Check33, typename Check34, typename Check35, typename Check36,
3075
+ typename Check37, typename Check38, typename Check39, typename Check40,
3076
+ typename Check41, typename Check42, typename Check43, typename Check44,
3077
+ typename Check45, typename Check46, typename Check47, typename Check48,
3078
+ typename Check49, typename Check50, typename Check51, typename Action0,
3079
+ typename Action1, typename Action2, typename Action3, typename Action4,
3080
+ typename Action5, typename Action6, typename Action7, typename Action8,
3081
+ typename Action9, typename Action10, typename Action11, typename Action12,
3082
+ typename Action13, typename Action14, typename Action15, typename Action16,
3083
+ typename Action17, typename Action18, typename Action19, typename Action20,
3084
+ typename Action21, typename Action22, typename Action23, typename Action24,
3085
+ typename Action25, typename Action26, typename Action27, typename Action28,
3086
+ typename Action29, typename Action30, typename Action31, typename Action32,
3087
+ typename Action33, typename Action34, typename Action35, typename Action36,
3088
+ typename Action37, typename Action38, typename Action39, typename Action40,
3089
+ typename Action41, typename Action42, typename Action43, typename Action44,
3090
+ typename Action45, typename Action46, typename Action47, typename Action48,
3091
+ typename Action49, typename Action50, typename Action51>
3092
+ auto IfList(
3093
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3094
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3095
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3096
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3097
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3098
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3099
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3100
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3101
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3102
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3103
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3104
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3105
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3106
+ Check51 check51, Action0 action0, Action1 action1, Action2 action2,
3107
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
3108
+ Action7 action7, Action8 action8, Action9 action9, Action10 action10,
3109
+ Action11 action11, Action12 action12, Action13 action13, Action14 action14,
3110
+ Action15 action15, Action16 action16, Action17 action17, Action18 action18,
3111
+ Action19 action19, Action20 action20, Action21 action21, Action22 action22,
3112
+ Action23 action23, Action24 action24, Action25 action25, Action26 action26,
3113
+ Action27 action27, Action28 action28, Action29 action29, Action30 action30,
3114
+ Action31 action31, Action32 action32, Action33 action33, Action34 action34,
3115
+ Action35 action35, Action36 action36, Action37 action37, Action38 action38,
3116
+ Action39 action39, Action40 action40, Action41 action41, Action42 action42,
3117
+ Action43 action43, Action44 action44, Action45 action45, Action46 action46,
3118
+ Action47 action47, Action48 action48, Action49 action49, Action50 action50,
3119
+ Action51 action51) {
3120
+ if (check0(input)) return action0(action_arg);
3121
+ if (check1(input)) return action1(action_arg);
3122
+ if (check2(input)) return action2(action_arg);
3123
+ if (check3(input)) return action3(action_arg);
3124
+ if (check4(input)) return action4(action_arg);
3125
+ if (check5(input)) return action5(action_arg);
3126
+ if (check6(input)) return action6(action_arg);
3127
+ if (check7(input)) return action7(action_arg);
3128
+ if (check8(input)) return action8(action_arg);
3129
+ if (check9(input)) return action9(action_arg);
3130
+ if (check10(input)) return action10(action_arg);
3131
+ if (check11(input)) return action11(action_arg);
3132
+ if (check12(input)) return action12(action_arg);
3133
+ if (check13(input)) return action13(action_arg);
3134
+ if (check14(input)) return action14(action_arg);
3135
+ if (check15(input)) return action15(action_arg);
3136
+ if (check16(input)) return action16(action_arg);
3137
+ if (check17(input)) return action17(action_arg);
3138
+ if (check18(input)) return action18(action_arg);
3139
+ if (check19(input)) return action19(action_arg);
3140
+ if (check20(input)) return action20(action_arg);
3141
+ if (check21(input)) return action21(action_arg);
3142
+ if (check22(input)) return action22(action_arg);
3143
+ if (check23(input)) return action23(action_arg);
3144
+ if (check24(input)) return action24(action_arg);
3145
+ if (check25(input)) return action25(action_arg);
3146
+ if (check26(input)) return action26(action_arg);
3147
+ if (check27(input)) return action27(action_arg);
3148
+ if (check28(input)) return action28(action_arg);
3149
+ if (check29(input)) return action29(action_arg);
3150
+ if (check30(input)) return action30(action_arg);
3151
+ if (check31(input)) return action31(action_arg);
3152
+ if (check32(input)) return action32(action_arg);
3153
+ if (check33(input)) return action33(action_arg);
3154
+ if (check34(input)) return action34(action_arg);
3155
+ if (check35(input)) return action35(action_arg);
3156
+ if (check36(input)) return action36(action_arg);
3157
+ if (check37(input)) return action37(action_arg);
3158
+ if (check38(input)) return action38(action_arg);
3159
+ if (check39(input)) return action39(action_arg);
3160
+ if (check40(input)) return action40(action_arg);
3161
+ if (check41(input)) return action41(action_arg);
3162
+ if (check42(input)) return action42(action_arg);
3163
+ if (check43(input)) return action43(action_arg);
3164
+ if (check44(input)) return action44(action_arg);
3165
+ if (check45(input)) return action45(action_arg);
3166
+ if (check46(input)) return action46(action_arg);
3167
+ if (check47(input)) return action47(action_arg);
3168
+ if (check48(input)) return action48(action_arg);
3169
+ if (check49(input)) return action49(action_arg);
3170
+ if (check50(input)) return action50(action_arg);
3171
+ if (check51(input)) return action51(action_arg);
3172
+ return action_fail(action_arg);
3173
+ }
3174
+
3175
+ template <
3176
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3177
+ typename Check1, typename Check2, typename Check3, typename Check4,
3178
+ typename Check5, typename Check6, typename Check7, typename Check8,
3179
+ typename Check9, typename Check10, typename Check11, typename Check12,
3180
+ typename Check13, typename Check14, typename Check15, typename Check16,
3181
+ typename Check17, typename Check18, typename Check19, typename Check20,
3182
+ typename Check21, typename Check22, typename Check23, typename Check24,
3183
+ typename Check25, typename Check26, typename Check27, typename Check28,
3184
+ typename Check29, typename Check30, typename Check31, typename Check32,
3185
+ typename Check33, typename Check34, typename Check35, typename Check36,
3186
+ typename Check37, typename Check38, typename Check39, typename Check40,
3187
+ typename Check41, typename Check42, typename Check43, typename Check44,
3188
+ typename Check45, typename Check46, typename Check47, typename Check48,
3189
+ typename Check49, typename Check50, typename Check51, typename Check52,
3190
+ typename Action0, typename Action1, typename Action2, typename Action3,
3191
+ typename Action4, typename Action5, typename Action6, typename Action7,
3192
+ typename Action8, typename Action9, typename Action10, typename Action11,
3193
+ typename Action12, typename Action13, typename Action14, typename Action15,
3194
+ typename Action16, typename Action17, typename Action18, typename Action19,
3195
+ typename Action20, typename Action21, typename Action22, typename Action23,
3196
+ typename Action24, typename Action25, typename Action26, typename Action27,
3197
+ typename Action28, typename Action29, typename Action30, typename Action31,
3198
+ typename Action32, typename Action33, typename Action34, typename Action35,
3199
+ typename Action36, typename Action37, typename Action38, typename Action39,
3200
+ typename Action40, typename Action41, typename Action42, typename Action43,
3201
+ typename Action44, typename Action45, typename Action46, typename Action47,
3202
+ typename Action48, typename Action49, typename Action50, typename Action51,
3203
+ typename Action52>
3204
+ auto IfList(
3205
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3206
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3207
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3208
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3209
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3210
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3211
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3212
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3213
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3214
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3215
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3216
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3217
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3218
+ Check51 check51, Check52 check52, Action0 action0, Action1 action1,
3219
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
3220
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
3221
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
3222
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
3223
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
3224
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
3225
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
3226
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
3227
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
3228
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
3229
+ Action42 action42, Action43 action43, Action44 action44, Action45 action45,
3230
+ Action46 action46, Action47 action47, Action48 action48, Action49 action49,
3231
+ Action50 action50, Action51 action51, Action52 action52) {
3232
+ if (check0(input)) return action0(action_arg);
3233
+ if (check1(input)) return action1(action_arg);
3234
+ if (check2(input)) return action2(action_arg);
3235
+ if (check3(input)) return action3(action_arg);
3236
+ if (check4(input)) return action4(action_arg);
3237
+ if (check5(input)) return action5(action_arg);
3238
+ if (check6(input)) return action6(action_arg);
3239
+ if (check7(input)) return action7(action_arg);
3240
+ if (check8(input)) return action8(action_arg);
3241
+ if (check9(input)) return action9(action_arg);
3242
+ if (check10(input)) return action10(action_arg);
3243
+ if (check11(input)) return action11(action_arg);
3244
+ if (check12(input)) return action12(action_arg);
3245
+ if (check13(input)) return action13(action_arg);
3246
+ if (check14(input)) return action14(action_arg);
3247
+ if (check15(input)) return action15(action_arg);
3248
+ if (check16(input)) return action16(action_arg);
3249
+ if (check17(input)) return action17(action_arg);
3250
+ if (check18(input)) return action18(action_arg);
3251
+ if (check19(input)) return action19(action_arg);
3252
+ if (check20(input)) return action20(action_arg);
3253
+ if (check21(input)) return action21(action_arg);
3254
+ if (check22(input)) return action22(action_arg);
3255
+ if (check23(input)) return action23(action_arg);
3256
+ if (check24(input)) return action24(action_arg);
3257
+ if (check25(input)) return action25(action_arg);
3258
+ if (check26(input)) return action26(action_arg);
3259
+ if (check27(input)) return action27(action_arg);
3260
+ if (check28(input)) return action28(action_arg);
3261
+ if (check29(input)) return action29(action_arg);
3262
+ if (check30(input)) return action30(action_arg);
3263
+ if (check31(input)) return action31(action_arg);
3264
+ if (check32(input)) return action32(action_arg);
3265
+ if (check33(input)) return action33(action_arg);
3266
+ if (check34(input)) return action34(action_arg);
3267
+ if (check35(input)) return action35(action_arg);
3268
+ if (check36(input)) return action36(action_arg);
3269
+ if (check37(input)) return action37(action_arg);
3270
+ if (check38(input)) return action38(action_arg);
3271
+ if (check39(input)) return action39(action_arg);
3272
+ if (check40(input)) return action40(action_arg);
3273
+ if (check41(input)) return action41(action_arg);
3274
+ if (check42(input)) return action42(action_arg);
3275
+ if (check43(input)) return action43(action_arg);
3276
+ if (check44(input)) return action44(action_arg);
3277
+ if (check45(input)) return action45(action_arg);
3278
+ if (check46(input)) return action46(action_arg);
3279
+ if (check47(input)) return action47(action_arg);
3280
+ if (check48(input)) return action48(action_arg);
3281
+ if (check49(input)) return action49(action_arg);
3282
+ if (check50(input)) return action50(action_arg);
3283
+ if (check51(input)) return action51(action_arg);
3284
+ if (check52(input)) return action52(action_arg);
3285
+ return action_fail(action_arg);
3286
+ }
3287
+
3288
+ template <
3289
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3290
+ typename Check1, typename Check2, typename Check3, typename Check4,
3291
+ typename Check5, typename Check6, typename Check7, typename Check8,
3292
+ typename Check9, typename Check10, typename Check11, typename Check12,
3293
+ typename Check13, typename Check14, typename Check15, typename Check16,
3294
+ typename Check17, typename Check18, typename Check19, typename Check20,
3295
+ typename Check21, typename Check22, typename Check23, typename Check24,
3296
+ typename Check25, typename Check26, typename Check27, typename Check28,
3297
+ typename Check29, typename Check30, typename Check31, typename Check32,
3298
+ typename Check33, typename Check34, typename Check35, typename Check36,
3299
+ typename Check37, typename Check38, typename Check39, typename Check40,
3300
+ typename Check41, typename Check42, typename Check43, typename Check44,
3301
+ typename Check45, typename Check46, typename Check47, typename Check48,
3302
+ typename Check49, typename Check50, typename Check51, typename Check52,
3303
+ typename Check53, typename Action0, typename Action1, typename Action2,
3304
+ typename Action3, typename Action4, typename Action5, typename Action6,
3305
+ typename Action7, typename Action8, typename Action9, typename Action10,
3306
+ typename Action11, typename Action12, typename Action13, typename Action14,
3307
+ typename Action15, typename Action16, typename Action17, typename Action18,
3308
+ typename Action19, typename Action20, typename Action21, typename Action22,
3309
+ typename Action23, typename Action24, typename Action25, typename Action26,
3310
+ typename Action27, typename Action28, typename Action29, typename Action30,
3311
+ typename Action31, typename Action32, typename Action33, typename Action34,
3312
+ typename Action35, typename Action36, typename Action37, typename Action38,
3313
+ typename Action39, typename Action40, typename Action41, typename Action42,
3314
+ typename Action43, typename Action44, typename Action45, typename Action46,
3315
+ typename Action47, typename Action48, typename Action49, typename Action50,
3316
+ typename Action51, typename Action52, typename Action53>
3317
+ auto IfList(
3318
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3319
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3320
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3321
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3322
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3323
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3324
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3325
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3326
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3327
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3328
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3329
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3330
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3331
+ Check51 check51, Check52 check52, Check53 check53, Action0 action0,
3332
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
3333
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
3334
+ Action9 action9, Action10 action10, Action11 action11, Action12 action12,
3335
+ Action13 action13, Action14 action14, Action15 action15, Action16 action16,
3336
+ Action17 action17, Action18 action18, Action19 action19, Action20 action20,
3337
+ Action21 action21, Action22 action22, Action23 action23, Action24 action24,
3338
+ Action25 action25, Action26 action26, Action27 action27, Action28 action28,
3339
+ Action29 action29, Action30 action30, Action31 action31, Action32 action32,
3340
+ Action33 action33, Action34 action34, Action35 action35, Action36 action36,
3341
+ Action37 action37, Action38 action38, Action39 action39, Action40 action40,
3342
+ Action41 action41, Action42 action42, Action43 action43, Action44 action44,
3343
+ Action45 action45, Action46 action46, Action47 action47, Action48 action48,
3344
+ Action49 action49, Action50 action50, Action51 action51, Action52 action52,
3345
+ Action53 action53) {
3346
+ if (check0(input)) return action0(action_arg);
3347
+ if (check1(input)) return action1(action_arg);
3348
+ if (check2(input)) return action2(action_arg);
3349
+ if (check3(input)) return action3(action_arg);
3350
+ if (check4(input)) return action4(action_arg);
3351
+ if (check5(input)) return action5(action_arg);
3352
+ if (check6(input)) return action6(action_arg);
3353
+ if (check7(input)) return action7(action_arg);
3354
+ if (check8(input)) return action8(action_arg);
3355
+ if (check9(input)) return action9(action_arg);
3356
+ if (check10(input)) return action10(action_arg);
3357
+ if (check11(input)) return action11(action_arg);
3358
+ if (check12(input)) return action12(action_arg);
3359
+ if (check13(input)) return action13(action_arg);
3360
+ if (check14(input)) return action14(action_arg);
3361
+ if (check15(input)) return action15(action_arg);
3362
+ if (check16(input)) return action16(action_arg);
3363
+ if (check17(input)) return action17(action_arg);
3364
+ if (check18(input)) return action18(action_arg);
3365
+ if (check19(input)) return action19(action_arg);
3366
+ if (check20(input)) return action20(action_arg);
3367
+ if (check21(input)) return action21(action_arg);
3368
+ if (check22(input)) return action22(action_arg);
3369
+ if (check23(input)) return action23(action_arg);
3370
+ if (check24(input)) return action24(action_arg);
3371
+ if (check25(input)) return action25(action_arg);
3372
+ if (check26(input)) return action26(action_arg);
3373
+ if (check27(input)) return action27(action_arg);
3374
+ if (check28(input)) return action28(action_arg);
3375
+ if (check29(input)) return action29(action_arg);
3376
+ if (check30(input)) return action30(action_arg);
3377
+ if (check31(input)) return action31(action_arg);
3378
+ if (check32(input)) return action32(action_arg);
3379
+ if (check33(input)) return action33(action_arg);
3380
+ if (check34(input)) return action34(action_arg);
3381
+ if (check35(input)) return action35(action_arg);
3382
+ if (check36(input)) return action36(action_arg);
3383
+ if (check37(input)) return action37(action_arg);
3384
+ if (check38(input)) return action38(action_arg);
3385
+ if (check39(input)) return action39(action_arg);
3386
+ if (check40(input)) return action40(action_arg);
3387
+ if (check41(input)) return action41(action_arg);
3388
+ if (check42(input)) return action42(action_arg);
3389
+ if (check43(input)) return action43(action_arg);
3390
+ if (check44(input)) return action44(action_arg);
3391
+ if (check45(input)) return action45(action_arg);
3392
+ if (check46(input)) return action46(action_arg);
3393
+ if (check47(input)) return action47(action_arg);
3394
+ if (check48(input)) return action48(action_arg);
3395
+ if (check49(input)) return action49(action_arg);
3396
+ if (check50(input)) return action50(action_arg);
3397
+ if (check51(input)) return action51(action_arg);
3398
+ if (check52(input)) return action52(action_arg);
3399
+ if (check53(input)) return action53(action_arg);
3400
+ return action_fail(action_arg);
3401
+ }
3402
+
3403
+ template <
3404
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3405
+ typename Check1, typename Check2, typename Check3, typename Check4,
3406
+ typename Check5, typename Check6, typename Check7, typename Check8,
3407
+ typename Check9, typename Check10, typename Check11, typename Check12,
3408
+ typename Check13, typename Check14, typename Check15, typename Check16,
3409
+ typename Check17, typename Check18, typename Check19, typename Check20,
3410
+ typename Check21, typename Check22, typename Check23, typename Check24,
3411
+ typename Check25, typename Check26, typename Check27, typename Check28,
3412
+ typename Check29, typename Check30, typename Check31, typename Check32,
3413
+ typename Check33, typename Check34, typename Check35, typename Check36,
3414
+ typename Check37, typename Check38, typename Check39, typename Check40,
3415
+ typename Check41, typename Check42, typename Check43, typename Check44,
3416
+ typename Check45, typename Check46, typename Check47, typename Check48,
3417
+ typename Check49, typename Check50, typename Check51, typename Check52,
3418
+ typename Check53, typename Check54, typename Action0, typename Action1,
3419
+ typename Action2, typename Action3, typename Action4, typename Action5,
3420
+ typename Action6, typename Action7, typename Action8, typename Action9,
3421
+ typename Action10, typename Action11, typename Action12, typename Action13,
3422
+ typename Action14, typename Action15, typename Action16, typename Action17,
3423
+ typename Action18, typename Action19, typename Action20, typename Action21,
3424
+ typename Action22, typename Action23, typename Action24, typename Action25,
3425
+ typename Action26, typename Action27, typename Action28, typename Action29,
3426
+ typename Action30, typename Action31, typename Action32, typename Action33,
3427
+ typename Action34, typename Action35, typename Action36, typename Action37,
3428
+ typename Action38, typename Action39, typename Action40, typename Action41,
3429
+ typename Action42, typename Action43, typename Action44, typename Action45,
3430
+ typename Action46, typename Action47, typename Action48, typename Action49,
3431
+ typename Action50, typename Action51, typename Action52, typename Action53,
3432
+ typename Action54>
3433
+ auto IfList(
3434
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3435
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3436
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3437
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3438
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3439
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3440
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3441
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3442
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3443
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3444
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3445
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3446
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3447
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3448
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
3449
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
3450
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3451
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3452
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3453
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3454
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3455
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3456
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3457
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3458
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3459
+ Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3460
+ Action48 action48, Action49 action49, Action50 action50, Action51 action51,
3461
+ Action52 action52, Action53 action53, Action54 action54) {
3462
+ if (check0(input)) return action0(action_arg);
3463
+ if (check1(input)) return action1(action_arg);
3464
+ if (check2(input)) return action2(action_arg);
3465
+ if (check3(input)) return action3(action_arg);
3466
+ if (check4(input)) return action4(action_arg);
3467
+ if (check5(input)) return action5(action_arg);
3468
+ if (check6(input)) return action6(action_arg);
3469
+ if (check7(input)) return action7(action_arg);
3470
+ if (check8(input)) return action8(action_arg);
3471
+ if (check9(input)) return action9(action_arg);
3472
+ if (check10(input)) return action10(action_arg);
3473
+ if (check11(input)) return action11(action_arg);
3474
+ if (check12(input)) return action12(action_arg);
3475
+ if (check13(input)) return action13(action_arg);
3476
+ if (check14(input)) return action14(action_arg);
3477
+ if (check15(input)) return action15(action_arg);
3478
+ if (check16(input)) return action16(action_arg);
3479
+ if (check17(input)) return action17(action_arg);
3480
+ if (check18(input)) return action18(action_arg);
3481
+ if (check19(input)) return action19(action_arg);
3482
+ if (check20(input)) return action20(action_arg);
3483
+ if (check21(input)) return action21(action_arg);
3484
+ if (check22(input)) return action22(action_arg);
3485
+ if (check23(input)) return action23(action_arg);
3486
+ if (check24(input)) return action24(action_arg);
3487
+ if (check25(input)) return action25(action_arg);
3488
+ if (check26(input)) return action26(action_arg);
3489
+ if (check27(input)) return action27(action_arg);
3490
+ if (check28(input)) return action28(action_arg);
3491
+ if (check29(input)) return action29(action_arg);
3492
+ if (check30(input)) return action30(action_arg);
3493
+ if (check31(input)) return action31(action_arg);
3494
+ if (check32(input)) return action32(action_arg);
3495
+ if (check33(input)) return action33(action_arg);
3496
+ if (check34(input)) return action34(action_arg);
3497
+ if (check35(input)) return action35(action_arg);
3498
+ if (check36(input)) return action36(action_arg);
3499
+ if (check37(input)) return action37(action_arg);
3500
+ if (check38(input)) return action38(action_arg);
3501
+ if (check39(input)) return action39(action_arg);
3502
+ if (check40(input)) return action40(action_arg);
3503
+ if (check41(input)) return action41(action_arg);
3504
+ if (check42(input)) return action42(action_arg);
3505
+ if (check43(input)) return action43(action_arg);
3506
+ if (check44(input)) return action44(action_arg);
3507
+ if (check45(input)) return action45(action_arg);
3508
+ if (check46(input)) return action46(action_arg);
3509
+ if (check47(input)) return action47(action_arg);
3510
+ if (check48(input)) return action48(action_arg);
3511
+ if (check49(input)) return action49(action_arg);
3512
+ if (check50(input)) return action50(action_arg);
3513
+ if (check51(input)) return action51(action_arg);
3514
+ if (check52(input)) return action52(action_arg);
3515
+ if (check53(input)) return action53(action_arg);
3516
+ if (check54(input)) return action54(action_arg);
3517
+ return action_fail(action_arg);
3518
+ }
3519
+
3520
+ template <
3521
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3522
+ typename Check1, typename Check2, typename Check3, typename Check4,
3523
+ typename Check5, typename Check6, typename Check7, typename Check8,
3524
+ typename Check9, typename Check10, typename Check11, typename Check12,
3525
+ typename Check13, typename Check14, typename Check15, typename Check16,
3526
+ typename Check17, typename Check18, typename Check19, typename Check20,
3527
+ typename Check21, typename Check22, typename Check23, typename Check24,
3528
+ typename Check25, typename Check26, typename Check27, typename Check28,
3529
+ typename Check29, typename Check30, typename Check31, typename Check32,
3530
+ typename Check33, typename Check34, typename Check35, typename Check36,
3531
+ typename Check37, typename Check38, typename Check39, typename Check40,
3532
+ typename Check41, typename Check42, typename Check43, typename Check44,
3533
+ typename Check45, typename Check46, typename Check47, typename Check48,
3534
+ typename Check49, typename Check50, typename Check51, typename Check52,
3535
+ typename Check53, typename Check54, typename Check55, typename Action0,
3536
+ typename Action1, typename Action2, typename Action3, typename Action4,
3537
+ typename Action5, typename Action6, typename Action7, typename Action8,
3538
+ typename Action9, typename Action10, typename Action11, typename Action12,
3539
+ typename Action13, typename Action14, typename Action15, typename Action16,
3540
+ typename Action17, typename Action18, typename Action19, typename Action20,
3541
+ typename Action21, typename Action22, typename Action23, typename Action24,
3542
+ typename Action25, typename Action26, typename Action27, typename Action28,
3543
+ typename Action29, typename Action30, typename Action31, typename Action32,
3544
+ typename Action33, typename Action34, typename Action35, typename Action36,
3545
+ typename Action37, typename Action38, typename Action39, typename Action40,
3546
+ typename Action41, typename Action42, typename Action43, typename Action44,
3547
+ typename Action45, typename Action46, typename Action47, typename Action48,
3548
+ typename Action49, typename Action50, typename Action51, typename Action52,
3549
+ typename Action53, typename Action54, typename Action55>
3550
+ auto IfList(
3551
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3552
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3553
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3554
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3555
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3556
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3557
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3558
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3559
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3560
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3561
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3562
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3563
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3564
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3565
+ Check55 check55, Action0 action0, Action1 action1, Action2 action2,
3566
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
3567
+ Action7 action7, Action8 action8, Action9 action9, Action10 action10,
3568
+ Action11 action11, Action12 action12, Action13 action13, Action14 action14,
3569
+ Action15 action15, Action16 action16, Action17 action17, Action18 action18,
3570
+ Action19 action19, Action20 action20, Action21 action21, Action22 action22,
3571
+ Action23 action23, Action24 action24, Action25 action25, Action26 action26,
3572
+ Action27 action27, Action28 action28, Action29 action29, Action30 action30,
3573
+ Action31 action31, Action32 action32, Action33 action33, Action34 action34,
3574
+ Action35 action35, Action36 action36, Action37 action37, Action38 action38,
3575
+ Action39 action39, Action40 action40, Action41 action41, Action42 action42,
3576
+ Action43 action43, Action44 action44, Action45 action45, Action46 action46,
3577
+ Action47 action47, Action48 action48, Action49 action49, Action50 action50,
3578
+ Action51 action51, Action52 action52, Action53 action53, Action54 action54,
3579
+ Action55 action55) {
3580
+ if (check0(input)) return action0(action_arg);
3581
+ if (check1(input)) return action1(action_arg);
3582
+ if (check2(input)) return action2(action_arg);
3583
+ if (check3(input)) return action3(action_arg);
3584
+ if (check4(input)) return action4(action_arg);
3585
+ if (check5(input)) return action5(action_arg);
3586
+ if (check6(input)) return action6(action_arg);
3587
+ if (check7(input)) return action7(action_arg);
3588
+ if (check8(input)) return action8(action_arg);
3589
+ if (check9(input)) return action9(action_arg);
3590
+ if (check10(input)) return action10(action_arg);
3591
+ if (check11(input)) return action11(action_arg);
3592
+ if (check12(input)) return action12(action_arg);
3593
+ if (check13(input)) return action13(action_arg);
3594
+ if (check14(input)) return action14(action_arg);
3595
+ if (check15(input)) return action15(action_arg);
3596
+ if (check16(input)) return action16(action_arg);
3597
+ if (check17(input)) return action17(action_arg);
3598
+ if (check18(input)) return action18(action_arg);
3599
+ if (check19(input)) return action19(action_arg);
3600
+ if (check20(input)) return action20(action_arg);
3601
+ if (check21(input)) return action21(action_arg);
3602
+ if (check22(input)) return action22(action_arg);
3603
+ if (check23(input)) return action23(action_arg);
3604
+ if (check24(input)) return action24(action_arg);
3605
+ if (check25(input)) return action25(action_arg);
3606
+ if (check26(input)) return action26(action_arg);
3607
+ if (check27(input)) return action27(action_arg);
3608
+ if (check28(input)) return action28(action_arg);
3609
+ if (check29(input)) return action29(action_arg);
3610
+ if (check30(input)) return action30(action_arg);
3611
+ if (check31(input)) return action31(action_arg);
3612
+ if (check32(input)) return action32(action_arg);
3613
+ if (check33(input)) return action33(action_arg);
3614
+ if (check34(input)) return action34(action_arg);
3615
+ if (check35(input)) return action35(action_arg);
3616
+ if (check36(input)) return action36(action_arg);
3617
+ if (check37(input)) return action37(action_arg);
3618
+ if (check38(input)) return action38(action_arg);
3619
+ if (check39(input)) return action39(action_arg);
3620
+ if (check40(input)) return action40(action_arg);
3621
+ if (check41(input)) return action41(action_arg);
3622
+ if (check42(input)) return action42(action_arg);
3623
+ if (check43(input)) return action43(action_arg);
3624
+ if (check44(input)) return action44(action_arg);
3625
+ if (check45(input)) return action45(action_arg);
3626
+ if (check46(input)) return action46(action_arg);
3627
+ if (check47(input)) return action47(action_arg);
3628
+ if (check48(input)) return action48(action_arg);
3629
+ if (check49(input)) return action49(action_arg);
3630
+ if (check50(input)) return action50(action_arg);
3631
+ if (check51(input)) return action51(action_arg);
3632
+ if (check52(input)) return action52(action_arg);
3633
+ if (check53(input)) return action53(action_arg);
3634
+ if (check54(input)) return action54(action_arg);
3635
+ if (check55(input)) return action55(action_arg);
3636
+ return action_fail(action_arg);
3637
+ }
3638
+
3639
+ template <
3640
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3641
+ typename Check1, typename Check2, typename Check3, typename Check4,
3642
+ typename Check5, typename Check6, typename Check7, typename Check8,
3643
+ typename Check9, typename Check10, typename Check11, typename Check12,
3644
+ typename Check13, typename Check14, typename Check15, typename Check16,
3645
+ typename Check17, typename Check18, typename Check19, typename Check20,
3646
+ typename Check21, typename Check22, typename Check23, typename Check24,
3647
+ typename Check25, typename Check26, typename Check27, typename Check28,
3648
+ typename Check29, typename Check30, typename Check31, typename Check32,
3649
+ typename Check33, typename Check34, typename Check35, typename Check36,
3650
+ typename Check37, typename Check38, typename Check39, typename Check40,
3651
+ typename Check41, typename Check42, typename Check43, typename Check44,
3652
+ typename Check45, typename Check46, typename Check47, typename Check48,
3653
+ typename Check49, typename Check50, typename Check51, typename Check52,
3654
+ typename Check53, typename Check54, typename Check55, typename Check56,
3655
+ typename Action0, typename Action1, typename Action2, typename Action3,
3656
+ typename Action4, typename Action5, typename Action6, typename Action7,
3657
+ typename Action8, typename Action9, typename Action10, typename Action11,
3658
+ typename Action12, typename Action13, typename Action14, typename Action15,
3659
+ typename Action16, typename Action17, typename Action18, typename Action19,
3660
+ typename Action20, typename Action21, typename Action22, typename Action23,
3661
+ typename Action24, typename Action25, typename Action26, typename Action27,
3662
+ typename Action28, typename Action29, typename Action30, typename Action31,
3663
+ typename Action32, typename Action33, typename Action34, typename Action35,
3664
+ typename Action36, typename Action37, typename Action38, typename Action39,
3665
+ typename Action40, typename Action41, typename Action42, typename Action43,
3666
+ typename Action44, typename Action45, typename Action46, typename Action47,
3667
+ typename Action48, typename Action49, typename Action50, typename Action51,
3668
+ typename Action52, typename Action53, typename Action54, typename Action55,
3669
+ typename Action56>
3670
+ auto IfList(
3671
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3672
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3673
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3674
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3675
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3676
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3677
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3678
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3679
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3680
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3681
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3682
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3683
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3684
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3685
+ Check55 check55, Check56 check56, Action0 action0, Action1 action1,
3686
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
3687
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
3688
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
3689
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
3690
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
3691
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
3692
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
3693
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
3694
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
3695
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
3696
+ Action42 action42, Action43 action43, Action44 action44, Action45 action45,
3697
+ Action46 action46, Action47 action47, Action48 action48, Action49 action49,
3698
+ Action50 action50, Action51 action51, Action52 action52, Action53 action53,
3699
+ Action54 action54, Action55 action55, Action56 action56) {
3700
+ if (check0(input)) return action0(action_arg);
3701
+ if (check1(input)) return action1(action_arg);
3702
+ if (check2(input)) return action2(action_arg);
3703
+ if (check3(input)) return action3(action_arg);
3704
+ if (check4(input)) return action4(action_arg);
3705
+ if (check5(input)) return action5(action_arg);
3706
+ if (check6(input)) return action6(action_arg);
3707
+ if (check7(input)) return action7(action_arg);
3708
+ if (check8(input)) return action8(action_arg);
3709
+ if (check9(input)) return action9(action_arg);
3710
+ if (check10(input)) return action10(action_arg);
3711
+ if (check11(input)) return action11(action_arg);
3712
+ if (check12(input)) return action12(action_arg);
3713
+ if (check13(input)) return action13(action_arg);
3714
+ if (check14(input)) return action14(action_arg);
3715
+ if (check15(input)) return action15(action_arg);
3716
+ if (check16(input)) return action16(action_arg);
3717
+ if (check17(input)) return action17(action_arg);
3718
+ if (check18(input)) return action18(action_arg);
3719
+ if (check19(input)) return action19(action_arg);
3720
+ if (check20(input)) return action20(action_arg);
3721
+ if (check21(input)) return action21(action_arg);
3722
+ if (check22(input)) return action22(action_arg);
3723
+ if (check23(input)) return action23(action_arg);
3724
+ if (check24(input)) return action24(action_arg);
3725
+ if (check25(input)) return action25(action_arg);
3726
+ if (check26(input)) return action26(action_arg);
3727
+ if (check27(input)) return action27(action_arg);
3728
+ if (check28(input)) return action28(action_arg);
3729
+ if (check29(input)) return action29(action_arg);
3730
+ if (check30(input)) return action30(action_arg);
3731
+ if (check31(input)) return action31(action_arg);
3732
+ if (check32(input)) return action32(action_arg);
3733
+ if (check33(input)) return action33(action_arg);
3734
+ if (check34(input)) return action34(action_arg);
3735
+ if (check35(input)) return action35(action_arg);
3736
+ if (check36(input)) return action36(action_arg);
3737
+ if (check37(input)) return action37(action_arg);
3738
+ if (check38(input)) return action38(action_arg);
3739
+ if (check39(input)) return action39(action_arg);
3740
+ if (check40(input)) return action40(action_arg);
3741
+ if (check41(input)) return action41(action_arg);
3742
+ if (check42(input)) return action42(action_arg);
3743
+ if (check43(input)) return action43(action_arg);
3744
+ if (check44(input)) return action44(action_arg);
3745
+ if (check45(input)) return action45(action_arg);
3746
+ if (check46(input)) return action46(action_arg);
3747
+ if (check47(input)) return action47(action_arg);
3748
+ if (check48(input)) return action48(action_arg);
3749
+ if (check49(input)) return action49(action_arg);
3750
+ if (check50(input)) return action50(action_arg);
3751
+ if (check51(input)) return action51(action_arg);
3752
+ if (check52(input)) return action52(action_arg);
3753
+ if (check53(input)) return action53(action_arg);
3754
+ if (check54(input)) return action54(action_arg);
3755
+ if (check55(input)) return action55(action_arg);
3756
+ if (check56(input)) return action56(action_arg);
3757
+ return action_fail(action_arg);
3758
+ }
3759
+
3760
+ template <
3761
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3762
+ typename Check1, typename Check2, typename Check3, typename Check4,
3763
+ typename Check5, typename Check6, typename Check7, typename Check8,
3764
+ typename Check9, typename Check10, typename Check11, typename Check12,
3765
+ typename Check13, typename Check14, typename Check15, typename Check16,
3766
+ typename Check17, typename Check18, typename Check19, typename Check20,
3767
+ typename Check21, typename Check22, typename Check23, typename Check24,
3768
+ typename Check25, typename Check26, typename Check27, typename Check28,
3769
+ typename Check29, typename Check30, typename Check31, typename Check32,
3770
+ typename Check33, typename Check34, typename Check35, typename Check36,
3771
+ typename Check37, typename Check38, typename Check39, typename Check40,
3772
+ typename Check41, typename Check42, typename Check43, typename Check44,
3773
+ typename Check45, typename Check46, typename Check47, typename Check48,
3774
+ typename Check49, typename Check50, typename Check51, typename Check52,
3775
+ typename Check53, typename Check54, typename Check55, typename Check56,
3776
+ typename Check57, typename Action0, typename Action1, typename Action2,
3777
+ typename Action3, typename Action4, typename Action5, typename Action6,
3778
+ typename Action7, typename Action8, typename Action9, typename Action10,
3779
+ typename Action11, typename Action12, typename Action13, typename Action14,
3780
+ typename Action15, typename Action16, typename Action17, typename Action18,
3781
+ typename Action19, typename Action20, typename Action21, typename Action22,
3782
+ typename Action23, typename Action24, typename Action25, typename Action26,
3783
+ typename Action27, typename Action28, typename Action29, typename Action30,
3784
+ typename Action31, typename Action32, typename Action33, typename Action34,
3785
+ typename Action35, typename Action36, typename Action37, typename Action38,
3786
+ typename Action39, typename Action40, typename Action41, typename Action42,
3787
+ typename Action43, typename Action44, typename Action45, typename Action46,
3788
+ typename Action47, typename Action48, typename Action49, typename Action50,
3789
+ typename Action51, typename Action52, typename Action53, typename Action54,
3790
+ typename Action55, typename Action56, typename Action57>
3791
+ auto IfList(
3792
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3793
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3794
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3795
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3796
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3797
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3798
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3799
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3800
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3801
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3802
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3803
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3804
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3805
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3806
+ Check55 check55, Check56 check56, Check57 check57, Action0 action0,
3807
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
3808
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
3809
+ Action9 action9, Action10 action10, Action11 action11, Action12 action12,
3810
+ Action13 action13, Action14 action14, Action15 action15, Action16 action16,
3811
+ Action17 action17, Action18 action18, Action19 action19, Action20 action20,
3812
+ Action21 action21, Action22 action22, Action23 action23, Action24 action24,
3813
+ Action25 action25, Action26 action26, Action27 action27, Action28 action28,
3814
+ Action29 action29, Action30 action30, Action31 action31, Action32 action32,
3815
+ Action33 action33, Action34 action34, Action35 action35, Action36 action36,
3816
+ Action37 action37, Action38 action38, Action39 action39, Action40 action40,
3817
+ Action41 action41, Action42 action42, Action43 action43, Action44 action44,
3818
+ Action45 action45, Action46 action46, Action47 action47, Action48 action48,
3819
+ Action49 action49, Action50 action50, Action51 action51, Action52 action52,
3820
+ Action53 action53, Action54 action54, Action55 action55, Action56 action56,
3821
+ Action57 action57) {
3822
+ if (check0(input)) return action0(action_arg);
3823
+ if (check1(input)) return action1(action_arg);
3824
+ if (check2(input)) return action2(action_arg);
3825
+ if (check3(input)) return action3(action_arg);
3826
+ if (check4(input)) return action4(action_arg);
3827
+ if (check5(input)) return action5(action_arg);
3828
+ if (check6(input)) return action6(action_arg);
3829
+ if (check7(input)) return action7(action_arg);
3830
+ if (check8(input)) return action8(action_arg);
3831
+ if (check9(input)) return action9(action_arg);
3832
+ if (check10(input)) return action10(action_arg);
3833
+ if (check11(input)) return action11(action_arg);
3834
+ if (check12(input)) return action12(action_arg);
3835
+ if (check13(input)) return action13(action_arg);
3836
+ if (check14(input)) return action14(action_arg);
3837
+ if (check15(input)) return action15(action_arg);
3838
+ if (check16(input)) return action16(action_arg);
3839
+ if (check17(input)) return action17(action_arg);
3840
+ if (check18(input)) return action18(action_arg);
3841
+ if (check19(input)) return action19(action_arg);
3842
+ if (check20(input)) return action20(action_arg);
3843
+ if (check21(input)) return action21(action_arg);
3844
+ if (check22(input)) return action22(action_arg);
3845
+ if (check23(input)) return action23(action_arg);
3846
+ if (check24(input)) return action24(action_arg);
3847
+ if (check25(input)) return action25(action_arg);
3848
+ if (check26(input)) return action26(action_arg);
3849
+ if (check27(input)) return action27(action_arg);
3850
+ if (check28(input)) return action28(action_arg);
3851
+ if (check29(input)) return action29(action_arg);
3852
+ if (check30(input)) return action30(action_arg);
3853
+ if (check31(input)) return action31(action_arg);
3854
+ if (check32(input)) return action32(action_arg);
3855
+ if (check33(input)) return action33(action_arg);
3856
+ if (check34(input)) return action34(action_arg);
3857
+ if (check35(input)) return action35(action_arg);
3858
+ if (check36(input)) return action36(action_arg);
3859
+ if (check37(input)) return action37(action_arg);
3860
+ if (check38(input)) return action38(action_arg);
3861
+ if (check39(input)) return action39(action_arg);
3862
+ if (check40(input)) return action40(action_arg);
3863
+ if (check41(input)) return action41(action_arg);
3864
+ if (check42(input)) return action42(action_arg);
3865
+ if (check43(input)) return action43(action_arg);
3866
+ if (check44(input)) return action44(action_arg);
3867
+ if (check45(input)) return action45(action_arg);
3868
+ if (check46(input)) return action46(action_arg);
3869
+ if (check47(input)) return action47(action_arg);
3870
+ if (check48(input)) return action48(action_arg);
3871
+ if (check49(input)) return action49(action_arg);
3872
+ if (check50(input)) return action50(action_arg);
3873
+ if (check51(input)) return action51(action_arg);
3874
+ if (check52(input)) return action52(action_arg);
3875
+ if (check53(input)) return action53(action_arg);
3876
+ if (check54(input)) return action54(action_arg);
3877
+ if (check55(input)) return action55(action_arg);
3878
+ if (check56(input)) return action56(action_arg);
3879
+ if (check57(input)) return action57(action_arg);
3880
+ return action_fail(action_arg);
3881
+ }
3882
+
3883
+ template <
3884
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
3885
+ typename Check1, typename Check2, typename Check3, typename Check4,
3886
+ typename Check5, typename Check6, typename Check7, typename Check8,
3887
+ typename Check9, typename Check10, typename Check11, typename Check12,
3888
+ typename Check13, typename Check14, typename Check15, typename Check16,
3889
+ typename Check17, typename Check18, typename Check19, typename Check20,
3890
+ typename Check21, typename Check22, typename Check23, typename Check24,
3891
+ typename Check25, typename Check26, typename Check27, typename Check28,
3892
+ typename Check29, typename Check30, typename Check31, typename Check32,
3893
+ typename Check33, typename Check34, typename Check35, typename Check36,
3894
+ typename Check37, typename Check38, typename Check39, typename Check40,
3895
+ typename Check41, typename Check42, typename Check43, typename Check44,
3896
+ typename Check45, typename Check46, typename Check47, typename Check48,
3897
+ typename Check49, typename Check50, typename Check51, typename Check52,
3898
+ typename Check53, typename Check54, typename Check55, typename Check56,
3899
+ typename Check57, typename Check58, typename Action0, typename Action1,
3900
+ typename Action2, typename Action3, typename Action4, typename Action5,
3901
+ typename Action6, typename Action7, typename Action8, typename Action9,
3902
+ typename Action10, typename Action11, typename Action12, typename Action13,
3903
+ typename Action14, typename Action15, typename Action16, typename Action17,
3904
+ typename Action18, typename Action19, typename Action20, typename Action21,
3905
+ typename Action22, typename Action23, typename Action24, typename Action25,
3906
+ typename Action26, typename Action27, typename Action28, typename Action29,
3907
+ typename Action30, typename Action31, typename Action32, typename Action33,
3908
+ typename Action34, typename Action35, typename Action36, typename Action37,
3909
+ typename Action38, typename Action39, typename Action40, typename Action41,
3910
+ typename Action42, typename Action43, typename Action44, typename Action45,
3911
+ typename Action46, typename Action47, typename Action48, typename Action49,
3912
+ typename Action50, typename Action51, typename Action52, typename Action53,
3913
+ typename Action54, typename Action55, typename Action56, typename Action57,
3914
+ typename Action58>
3915
+ auto IfList(
3916
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
3917
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
3918
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
3919
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
3920
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
3921
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
3922
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
3923
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
3924
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
3925
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
3926
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
3927
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
3928
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
3929
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
3930
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
3931
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
3932
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
3933
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
3934
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
3935
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
3936
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
3937
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
3938
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
3939
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
3940
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
3941
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
3942
+ Action44 action44, Action45 action45, Action46 action46, Action47 action47,
3943
+ Action48 action48, Action49 action49, Action50 action50, Action51 action51,
3944
+ Action52 action52, Action53 action53, Action54 action54, Action55 action55,
3945
+ Action56 action56, Action57 action57, Action58 action58) {
3946
+ if (check0(input)) return action0(action_arg);
3947
+ if (check1(input)) return action1(action_arg);
3948
+ if (check2(input)) return action2(action_arg);
3949
+ if (check3(input)) return action3(action_arg);
3950
+ if (check4(input)) return action4(action_arg);
3951
+ if (check5(input)) return action5(action_arg);
3952
+ if (check6(input)) return action6(action_arg);
3953
+ if (check7(input)) return action7(action_arg);
3954
+ if (check8(input)) return action8(action_arg);
3955
+ if (check9(input)) return action9(action_arg);
3956
+ if (check10(input)) return action10(action_arg);
3957
+ if (check11(input)) return action11(action_arg);
3958
+ if (check12(input)) return action12(action_arg);
3959
+ if (check13(input)) return action13(action_arg);
3960
+ if (check14(input)) return action14(action_arg);
3961
+ if (check15(input)) return action15(action_arg);
3962
+ if (check16(input)) return action16(action_arg);
3963
+ if (check17(input)) return action17(action_arg);
3964
+ if (check18(input)) return action18(action_arg);
3965
+ if (check19(input)) return action19(action_arg);
3966
+ if (check20(input)) return action20(action_arg);
3967
+ if (check21(input)) return action21(action_arg);
3968
+ if (check22(input)) return action22(action_arg);
3969
+ if (check23(input)) return action23(action_arg);
3970
+ if (check24(input)) return action24(action_arg);
3971
+ if (check25(input)) return action25(action_arg);
3972
+ if (check26(input)) return action26(action_arg);
3973
+ if (check27(input)) return action27(action_arg);
3974
+ if (check28(input)) return action28(action_arg);
3975
+ if (check29(input)) return action29(action_arg);
3976
+ if (check30(input)) return action30(action_arg);
3977
+ if (check31(input)) return action31(action_arg);
3978
+ if (check32(input)) return action32(action_arg);
3979
+ if (check33(input)) return action33(action_arg);
3980
+ if (check34(input)) return action34(action_arg);
3981
+ if (check35(input)) return action35(action_arg);
3982
+ if (check36(input)) return action36(action_arg);
3983
+ if (check37(input)) return action37(action_arg);
3984
+ if (check38(input)) return action38(action_arg);
3985
+ if (check39(input)) return action39(action_arg);
3986
+ if (check40(input)) return action40(action_arg);
3987
+ if (check41(input)) return action41(action_arg);
3988
+ if (check42(input)) return action42(action_arg);
3989
+ if (check43(input)) return action43(action_arg);
3990
+ if (check44(input)) return action44(action_arg);
3991
+ if (check45(input)) return action45(action_arg);
3992
+ if (check46(input)) return action46(action_arg);
3993
+ if (check47(input)) return action47(action_arg);
3994
+ if (check48(input)) return action48(action_arg);
3995
+ if (check49(input)) return action49(action_arg);
3996
+ if (check50(input)) return action50(action_arg);
3997
+ if (check51(input)) return action51(action_arg);
3998
+ if (check52(input)) return action52(action_arg);
3999
+ if (check53(input)) return action53(action_arg);
4000
+ if (check54(input)) return action54(action_arg);
4001
+ if (check55(input)) return action55(action_arg);
4002
+ if (check56(input)) return action56(action_arg);
4003
+ if (check57(input)) return action57(action_arg);
4004
+ if (check58(input)) return action58(action_arg);
4005
+ return action_fail(action_arg);
4006
+ }
4007
+
4008
+ template <
4009
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4010
+ typename Check1, typename Check2, typename Check3, typename Check4,
4011
+ typename Check5, typename Check6, typename Check7, typename Check8,
4012
+ typename Check9, typename Check10, typename Check11, typename Check12,
4013
+ typename Check13, typename Check14, typename Check15, typename Check16,
4014
+ typename Check17, typename Check18, typename Check19, typename Check20,
4015
+ typename Check21, typename Check22, typename Check23, typename Check24,
4016
+ typename Check25, typename Check26, typename Check27, typename Check28,
4017
+ typename Check29, typename Check30, typename Check31, typename Check32,
4018
+ typename Check33, typename Check34, typename Check35, typename Check36,
4019
+ typename Check37, typename Check38, typename Check39, typename Check40,
4020
+ typename Check41, typename Check42, typename Check43, typename Check44,
4021
+ typename Check45, typename Check46, typename Check47, typename Check48,
4022
+ typename Check49, typename Check50, typename Check51, typename Check52,
4023
+ typename Check53, typename Check54, typename Check55, typename Check56,
4024
+ typename Check57, typename Check58, typename Check59, typename Action0,
4025
+ typename Action1, typename Action2, typename Action3, typename Action4,
4026
+ typename Action5, typename Action6, typename Action7, typename Action8,
4027
+ typename Action9, typename Action10, typename Action11, typename Action12,
4028
+ typename Action13, typename Action14, typename Action15, typename Action16,
4029
+ typename Action17, typename Action18, typename Action19, typename Action20,
4030
+ typename Action21, typename Action22, typename Action23, typename Action24,
4031
+ typename Action25, typename Action26, typename Action27, typename Action28,
4032
+ typename Action29, typename Action30, typename Action31, typename Action32,
4033
+ typename Action33, typename Action34, typename Action35, typename Action36,
4034
+ typename Action37, typename Action38, typename Action39, typename Action40,
4035
+ typename Action41, typename Action42, typename Action43, typename Action44,
4036
+ typename Action45, typename Action46, typename Action47, typename Action48,
4037
+ typename Action49, typename Action50, typename Action51, typename Action52,
4038
+ typename Action53, typename Action54, typename Action55, typename Action56,
4039
+ typename Action57, typename Action58, typename Action59>
4040
+ auto IfList(
4041
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4042
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4043
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4044
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4045
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4046
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4047
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4048
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4049
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4050
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4051
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4052
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4053
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4054
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4055
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4056
+ Check59 check59, Action0 action0, Action1 action1, Action2 action2,
4057
+ Action3 action3, Action4 action4, Action5 action5, Action6 action6,
4058
+ Action7 action7, Action8 action8, Action9 action9, Action10 action10,
4059
+ Action11 action11, Action12 action12, Action13 action13, Action14 action14,
4060
+ Action15 action15, Action16 action16, Action17 action17, Action18 action18,
4061
+ Action19 action19, Action20 action20, Action21 action21, Action22 action22,
4062
+ Action23 action23, Action24 action24, Action25 action25, Action26 action26,
4063
+ Action27 action27, Action28 action28, Action29 action29, Action30 action30,
4064
+ Action31 action31, Action32 action32, Action33 action33, Action34 action34,
4065
+ Action35 action35, Action36 action36, Action37 action37, Action38 action38,
4066
+ Action39 action39, Action40 action40, Action41 action41, Action42 action42,
4067
+ Action43 action43, Action44 action44, Action45 action45, Action46 action46,
4068
+ Action47 action47, Action48 action48, Action49 action49, Action50 action50,
4069
+ Action51 action51, Action52 action52, Action53 action53, Action54 action54,
4070
+ Action55 action55, Action56 action56, Action57 action57, Action58 action58,
4071
+ Action59 action59) {
4072
+ if (check0(input)) return action0(action_arg);
4073
+ if (check1(input)) return action1(action_arg);
4074
+ if (check2(input)) return action2(action_arg);
4075
+ if (check3(input)) return action3(action_arg);
4076
+ if (check4(input)) return action4(action_arg);
4077
+ if (check5(input)) return action5(action_arg);
4078
+ if (check6(input)) return action6(action_arg);
4079
+ if (check7(input)) return action7(action_arg);
4080
+ if (check8(input)) return action8(action_arg);
4081
+ if (check9(input)) return action9(action_arg);
4082
+ if (check10(input)) return action10(action_arg);
4083
+ if (check11(input)) return action11(action_arg);
4084
+ if (check12(input)) return action12(action_arg);
4085
+ if (check13(input)) return action13(action_arg);
4086
+ if (check14(input)) return action14(action_arg);
4087
+ if (check15(input)) return action15(action_arg);
4088
+ if (check16(input)) return action16(action_arg);
4089
+ if (check17(input)) return action17(action_arg);
4090
+ if (check18(input)) return action18(action_arg);
4091
+ if (check19(input)) return action19(action_arg);
4092
+ if (check20(input)) return action20(action_arg);
4093
+ if (check21(input)) return action21(action_arg);
4094
+ if (check22(input)) return action22(action_arg);
4095
+ if (check23(input)) return action23(action_arg);
4096
+ if (check24(input)) return action24(action_arg);
4097
+ if (check25(input)) return action25(action_arg);
4098
+ if (check26(input)) return action26(action_arg);
4099
+ if (check27(input)) return action27(action_arg);
4100
+ if (check28(input)) return action28(action_arg);
4101
+ if (check29(input)) return action29(action_arg);
4102
+ if (check30(input)) return action30(action_arg);
4103
+ if (check31(input)) return action31(action_arg);
4104
+ if (check32(input)) return action32(action_arg);
4105
+ if (check33(input)) return action33(action_arg);
4106
+ if (check34(input)) return action34(action_arg);
4107
+ if (check35(input)) return action35(action_arg);
4108
+ if (check36(input)) return action36(action_arg);
4109
+ if (check37(input)) return action37(action_arg);
4110
+ if (check38(input)) return action38(action_arg);
4111
+ if (check39(input)) return action39(action_arg);
4112
+ if (check40(input)) return action40(action_arg);
4113
+ if (check41(input)) return action41(action_arg);
4114
+ if (check42(input)) return action42(action_arg);
4115
+ if (check43(input)) return action43(action_arg);
4116
+ if (check44(input)) return action44(action_arg);
4117
+ if (check45(input)) return action45(action_arg);
4118
+ if (check46(input)) return action46(action_arg);
4119
+ if (check47(input)) return action47(action_arg);
4120
+ if (check48(input)) return action48(action_arg);
4121
+ if (check49(input)) return action49(action_arg);
4122
+ if (check50(input)) return action50(action_arg);
4123
+ if (check51(input)) return action51(action_arg);
4124
+ if (check52(input)) return action52(action_arg);
4125
+ if (check53(input)) return action53(action_arg);
4126
+ if (check54(input)) return action54(action_arg);
4127
+ if (check55(input)) return action55(action_arg);
4128
+ if (check56(input)) return action56(action_arg);
4129
+ if (check57(input)) return action57(action_arg);
4130
+ if (check58(input)) return action58(action_arg);
4131
+ if (check59(input)) return action59(action_arg);
4132
+ return action_fail(action_arg);
4133
+ }
4134
+
4135
+ template <
4136
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4137
+ typename Check1, typename Check2, typename Check3, typename Check4,
4138
+ typename Check5, typename Check6, typename Check7, typename Check8,
4139
+ typename Check9, typename Check10, typename Check11, typename Check12,
4140
+ typename Check13, typename Check14, typename Check15, typename Check16,
4141
+ typename Check17, typename Check18, typename Check19, typename Check20,
4142
+ typename Check21, typename Check22, typename Check23, typename Check24,
4143
+ typename Check25, typename Check26, typename Check27, typename Check28,
4144
+ typename Check29, typename Check30, typename Check31, typename Check32,
4145
+ typename Check33, typename Check34, typename Check35, typename Check36,
4146
+ typename Check37, typename Check38, typename Check39, typename Check40,
4147
+ typename Check41, typename Check42, typename Check43, typename Check44,
4148
+ typename Check45, typename Check46, typename Check47, typename Check48,
4149
+ typename Check49, typename Check50, typename Check51, typename Check52,
4150
+ typename Check53, typename Check54, typename Check55, typename Check56,
4151
+ typename Check57, typename Check58, typename Check59, typename Check60,
4152
+ typename Action0, typename Action1, typename Action2, typename Action3,
4153
+ typename Action4, typename Action5, typename Action6, typename Action7,
4154
+ typename Action8, typename Action9, typename Action10, typename Action11,
4155
+ typename Action12, typename Action13, typename Action14, typename Action15,
4156
+ typename Action16, typename Action17, typename Action18, typename Action19,
4157
+ typename Action20, typename Action21, typename Action22, typename Action23,
4158
+ typename Action24, typename Action25, typename Action26, typename Action27,
4159
+ typename Action28, typename Action29, typename Action30, typename Action31,
4160
+ typename Action32, typename Action33, typename Action34, typename Action35,
4161
+ typename Action36, typename Action37, typename Action38, typename Action39,
4162
+ typename Action40, typename Action41, typename Action42, typename Action43,
4163
+ typename Action44, typename Action45, typename Action46, typename Action47,
4164
+ typename Action48, typename Action49, typename Action50, typename Action51,
4165
+ typename Action52, typename Action53, typename Action54, typename Action55,
4166
+ typename Action56, typename Action57, typename Action58, typename Action59,
4167
+ typename Action60>
4168
+ auto IfList(
4169
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4170
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4171
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4172
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4173
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4174
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4175
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4176
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4177
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4178
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4179
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4180
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4181
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4182
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4183
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4184
+ Check59 check59, Check60 check60, Action0 action0, Action1 action1,
4185
+ Action2 action2, Action3 action3, Action4 action4, Action5 action5,
4186
+ Action6 action6, Action7 action7, Action8 action8, Action9 action9,
4187
+ Action10 action10, Action11 action11, Action12 action12, Action13 action13,
4188
+ Action14 action14, Action15 action15, Action16 action16, Action17 action17,
4189
+ Action18 action18, Action19 action19, Action20 action20, Action21 action21,
4190
+ Action22 action22, Action23 action23, Action24 action24, Action25 action25,
4191
+ Action26 action26, Action27 action27, Action28 action28, Action29 action29,
4192
+ Action30 action30, Action31 action31, Action32 action32, Action33 action33,
4193
+ Action34 action34, Action35 action35, Action36 action36, Action37 action37,
4194
+ Action38 action38, Action39 action39, Action40 action40, Action41 action41,
4195
+ Action42 action42, Action43 action43, Action44 action44, Action45 action45,
4196
+ Action46 action46, Action47 action47, Action48 action48, Action49 action49,
4197
+ Action50 action50, Action51 action51, Action52 action52, Action53 action53,
4198
+ Action54 action54, Action55 action55, Action56 action56, Action57 action57,
4199
+ Action58 action58, Action59 action59, Action60 action60) {
4200
+ if (check0(input)) return action0(action_arg);
4201
+ if (check1(input)) return action1(action_arg);
4202
+ if (check2(input)) return action2(action_arg);
4203
+ if (check3(input)) return action3(action_arg);
4204
+ if (check4(input)) return action4(action_arg);
4205
+ if (check5(input)) return action5(action_arg);
4206
+ if (check6(input)) return action6(action_arg);
4207
+ if (check7(input)) return action7(action_arg);
4208
+ if (check8(input)) return action8(action_arg);
4209
+ if (check9(input)) return action9(action_arg);
4210
+ if (check10(input)) return action10(action_arg);
4211
+ if (check11(input)) return action11(action_arg);
4212
+ if (check12(input)) return action12(action_arg);
4213
+ if (check13(input)) return action13(action_arg);
4214
+ if (check14(input)) return action14(action_arg);
4215
+ if (check15(input)) return action15(action_arg);
4216
+ if (check16(input)) return action16(action_arg);
4217
+ if (check17(input)) return action17(action_arg);
4218
+ if (check18(input)) return action18(action_arg);
4219
+ if (check19(input)) return action19(action_arg);
4220
+ if (check20(input)) return action20(action_arg);
4221
+ if (check21(input)) return action21(action_arg);
4222
+ if (check22(input)) return action22(action_arg);
4223
+ if (check23(input)) return action23(action_arg);
4224
+ if (check24(input)) return action24(action_arg);
4225
+ if (check25(input)) return action25(action_arg);
4226
+ if (check26(input)) return action26(action_arg);
4227
+ if (check27(input)) return action27(action_arg);
4228
+ if (check28(input)) return action28(action_arg);
4229
+ if (check29(input)) return action29(action_arg);
4230
+ if (check30(input)) return action30(action_arg);
4231
+ if (check31(input)) return action31(action_arg);
4232
+ if (check32(input)) return action32(action_arg);
4233
+ if (check33(input)) return action33(action_arg);
4234
+ if (check34(input)) return action34(action_arg);
4235
+ if (check35(input)) return action35(action_arg);
4236
+ if (check36(input)) return action36(action_arg);
4237
+ if (check37(input)) return action37(action_arg);
4238
+ if (check38(input)) return action38(action_arg);
4239
+ if (check39(input)) return action39(action_arg);
4240
+ if (check40(input)) return action40(action_arg);
4241
+ if (check41(input)) return action41(action_arg);
4242
+ if (check42(input)) return action42(action_arg);
4243
+ if (check43(input)) return action43(action_arg);
4244
+ if (check44(input)) return action44(action_arg);
4245
+ if (check45(input)) return action45(action_arg);
4246
+ if (check46(input)) return action46(action_arg);
4247
+ if (check47(input)) return action47(action_arg);
4248
+ if (check48(input)) return action48(action_arg);
4249
+ if (check49(input)) return action49(action_arg);
4250
+ if (check50(input)) return action50(action_arg);
4251
+ if (check51(input)) return action51(action_arg);
4252
+ if (check52(input)) return action52(action_arg);
4253
+ if (check53(input)) return action53(action_arg);
4254
+ if (check54(input)) return action54(action_arg);
4255
+ if (check55(input)) return action55(action_arg);
4256
+ if (check56(input)) return action56(action_arg);
4257
+ if (check57(input)) return action57(action_arg);
4258
+ if (check58(input)) return action58(action_arg);
4259
+ if (check59(input)) return action59(action_arg);
4260
+ if (check60(input)) return action60(action_arg);
4261
+ return action_fail(action_arg);
4262
+ }
4263
+
4264
+ template <
4265
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4266
+ typename Check1, typename Check2, typename Check3, typename Check4,
4267
+ typename Check5, typename Check6, typename Check7, typename Check8,
4268
+ typename Check9, typename Check10, typename Check11, typename Check12,
4269
+ typename Check13, typename Check14, typename Check15, typename Check16,
4270
+ typename Check17, typename Check18, typename Check19, typename Check20,
4271
+ typename Check21, typename Check22, typename Check23, typename Check24,
4272
+ typename Check25, typename Check26, typename Check27, typename Check28,
4273
+ typename Check29, typename Check30, typename Check31, typename Check32,
4274
+ typename Check33, typename Check34, typename Check35, typename Check36,
4275
+ typename Check37, typename Check38, typename Check39, typename Check40,
4276
+ typename Check41, typename Check42, typename Check43, typename Check44,
4277
+ typename Check45, typename Check46, typename Check47, typename Check48,
4278
+ typename Check49, typename Check50, typename Check51, typename Check52,
4279
+ typename Check53, typename Check54, typename Check55, typename Check56,
4280
+ typename Check57, typename Check58, typename Check59, typename Check60,
4281
+ typename Check61, typename Action0, typename Action1, typename Action2,
4282
+ typename Action3, typename Action4, typename Action5, typename Action6,
4283
+ typename Action7, typename Action8, typename Action9, typename Action10,
4284
+ typename Action11, typename Action12, typename Action13, typename Action14,
4285
+ typename Action15, typename Action16, typename Action17, typename Action18,
4286
+ typename Action19, typename Action20, typename Action21, typename Action22,
4287
+ typename Action23, typename Action24, typename Action25, typename Action26,
4288
+ typename Action27, typename Action28, typename Action29, typename Action30,
4289
+ typename Action31, typename Action32, typename Action33, typename Action34,
4290
+ typename Action35, typename Action36, typename Action37, typename Action38,
4291
+ typename Action39, typename Action40, typename Action41, typename Action42,
4292
+ typename Action43, typename Action44, typename Action45, typename Action46,
4293
+ typename Action47, typename Action48, typename Action49, typename Action50,
4294
+ typename Action51, typename Action52, typename Action53, typename Action54,
4295
+ typename Action55, typename Action56, typename Action57, typename Action58,
4296
+ typename Action59, typename Action60, typename Action61>
4297
+ auto IfList(
4298
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4299
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4300
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4301
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4302
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4303
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4304
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4305
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4306
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4307
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4308
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4309
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4310
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4311
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4312
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4313
+ Check59 check59, Check60 check60, Check61 check61, Action0 action0,
4314
+ Action1 action1, Action2 action2, Action3 action3, Action4 action4,
4315
+ Action5 action5, Action6 action6, Action7 action7, Action8 action8,
4316
+ Action9 action9, Action10 action10, Action11 action11, Action12 action12,
4317
+ Action13 action13, Action14 action14, Action15 action15, Action16 action16,
4318
+ Action17 action17, Action18 action18, Action19 action19, Action20 action20,
4319
+ Action21 action21, Action22 action22, Action23 action23, Action24 action24,
4320
+ Action25 action25, Action26 action26, Action27 action27, Action28 action28,
4321
+ Action29 action29, Action30 action30, Action31 action31, Action32 action32,
4322
+ Action33 action33, Action34 action34, Action35 action35, Action36 action36,
4323
+ Action37 action37, Action38 action38, Action39 action39, Action40 action40,
4324
+ Action41 action41, Action42 action42, Action43 action43, Action44 action44,
4325
+ Action45 action45, Action46 action46, Action47 action47, Action48 action48,
4326
+ Action49 action49, Action50 action50, Action51 action51, Action52 action52,
4327
+ Action53 action53, Action54 action54, Action55 action55, Action56 action56,
4328
+ Action57 action57, Action58 action58, Action59 action59, Action60 action60,
4329
+ Action61 action61) {
4330
+ if (check0(input)) return action0(action_arg);
4331
+ if (check1(input)) return action1(action_arg);
4332
+ if (check2(input)) return action2(action_arg);
4333
+ if (check3(input)) return action3(action_arg);
4334
+ if (check4(input)) return action4(action_arg);
4335
+ if (check5(input)) return action5(action_arg);
4336
+ if (check6(input)) return action6(action_arg);
4337
+ if (check7(input)) return action7(action_arg);
4338
+ if (check8(input)) return action8(action_arg);
4339
+ if (check9(input)) return action9(action_arg);
4340
+ if (check10(input)) return action10(action_arg);
4341
+ if (check11(input)) return action11(action_arg);
4342
+ if (check12(input)) return action12(action_arg);
4343
+ if (check13(input)) return action13(action_arg);
4344
+ if (check14(input)) return action14(action_arg);
4345
+ if (check15(input)) return action15(action_arg);
4346
+ if (check16(input)) return action16(action_arg);
4347
+ if (check17(input)) return action17(action_arg);
4348
+ if (check18(input)) return action18(action_arg);
4349
+ if (check19(input)) return action19(action_arg);
4350
+ if (check20(input)) return action20(action_arg);
4351
+ if (check21(input)) return action21(action_arg);
4352
+ if (check22(input)) return action22(action_arg);
4353
+ if (check23(input)) return action23(action_arg);
4354
+ if (check24(input)) return action24(action_arg);
4355
+ if (check25(input)) return action25(action_arg);
4356
+ if (check26(input)) return action26(action_arg);
4357
+ if (check27(input)) return action27(action_arg);
4358
+ if (check28(input)) return action28(action_arg);
4359
+ if (check29(input)) return action29(action_arg);
4360
+ if (check30(input)) return action30(action_arg);
4361
+ if (check31(input)) return action31(action_arg);
4362
+ if (check32(input)) return action32(action_arg);
4363
+ if (check33(input)) return action33(action_arg);
4364
+ if (check34(input)) return action34(action_arg);
4365
+ if (check35(input)) return action35(action_arg);
4366
+ if (check36(input)) return action36(action_arg);
4367
+ if (check37(input)) return action37(action_arg);
4368
+ if (check38(input)) return action38(action_arg);
4369
+ if (check39(input)) return action39(action_arg);
4370
+ if (check40(input)) return action40(action_arg);
4371
+ if (check41(input)) return action41(action_arg);
4372
+ if (check42(input)) return action42(action_arg);
4373
+ if (check43(input)) return action43(action_arg);
4374
+ if (check44(input)) return action44(action_arg);
4375
+ if (check45(input)) return action45(action_arg);
4376
+ if (check46(input)) return action46(action_arg);
4377
+ if (check47(input)) return action47(action_arg);
4378
+ if (check48(input)) return action48(action_arg);
4379
+ if (check49(input)) return action49(action_arg);
4380
+ if (check50(input)) return action50(action_arg);
4381
+ if (check51(input)) return action51(action_arg);
4382
+ if (check52(input)) return action52(action_arg);
4383
+ if (check53(input)) return action53(action_arg);
4384
+ if (check54(input)) return action54(action_arg);
4385
+ if (check55(input)) return action55(action_arg);
4386
+ if (check56(input)) return action56(action_arg);
4387
+ if (check57(input)) return action57(action_arg);
4388
+ if (check58(input)) return action58(action_arg);
4389
+ if (check59(input)) return action59(action_arg);
4390
+ if (check60(input)) return action60(action_arg);
4391
+ if (check61(input)) return action61(action_arg);
4392
+ return action_fail(action_arg);
4393
+ }
4394
+
4395
+ template <
4396
+ typename CheckArg, typename ActionArg, typename ActionFail, typename Check0,
4397
+ typename Check1, typename Check2, typename Check3, typename Check4,
4398
+ typename Check5, typename Check6, typename Check7, typename Check8,
4399
+ typename Check9, typename Check10, typename Check11, typename Check12,
4400
+ typename Check13, typename Check14, typename Check15, typename Check16,
4401
+ typename Check17, typename Check18, typename Check19, typename Check20,
4402
+ typename Check21, typename Check22, typename Check23, typename Check24,
4403
+ typename Check25, typename Check26, typename Check27, typename Check28,
4404
+ typename Check29, typename Check30, typename Check31, typename Check32,
4405
+ typename Check33, typename Check34, typename Check35, typename Check36,
4406
+ typename Check37, typename Check38, typename Check39, typename Check40,
4407
+ typename Check41, typename Check42, typename Check43, typename Check44,
4408
+ typename Check45, typename Check46, typename Check47, typename Check48,
4409
+ typename Check49, typename Check50, typename Check51, typename Check52,
4410
+ typename Check53, typename Check54, typename Check55, typename Check56,
4411
+ typename Check57, typename Check58, typename Check59, typename Check60,
4412
+ typename Check61, typename Check62, typename Action0, typename Action1,
4413
+ typename Action2, typename Action3, typename Action4, typename Action5,
4414
+ typename Action6, typename Action7, typename Action8, typename Action9,
4415
+ typename Action10, typename Action11, typename Action12, typename Action13,
4416
+ typename Action14, typename Action15, typename Action16, typename Action17,
4417
+ typename Action18, typename Action19, typename Action20, typename Action21,
4418
+ typename Action22, typename Action23, typename Action24, typename Action25,
4419
+ typename Action26, typename Action27, typename Action28, typename Action29,
4420
+ typename Action30, typename Action31, typename Action32, typename Action33,
4421
+ typename Action34, typename Action35, typename Action36, typename Action37,
4422
+ typename Action38, typename Action39, typename Action40, typename Action41,
4423
+ typename Action42, typename Action43, typename Action44, typename Action45,
4424
+ typename Action46, typename Action47, typename Action48, typename Action49,
4425
+ typename Action50, typename Action51, typename Action52, typename Action53,
4426
+ typename Action54, typename Action55, typename Action56, typename Action57,
4427
+ typename Action58, typename Action59, typename Action60, typename Action61,
4428
+ typename Action62>
4429
+ auto IfList(
4430
+ CheckArg input, ActionArg action_arg, ActionFail action_fail, Check0 check0,
4431
+ Check1 check1, Check2 check2, Check3 check3, Check4 check4, Check5 check5,
4432
+ Check6 check6, Check7 check7, Check8 check8, Check9 check9, Check10 check10,
4433
+ Check11 check11, Check12 check12, Check13 check13, Check14 check14,
4434
+ Check15 check15, Check16 check16, Check17 check17, Check18 check18,
4435
+ Check19 check19, Check20 check20, Check21 check21, Check22 check22,
4436
+ Check23 check23, Check24 check24, Check25 check25, Check26 check26,
4437
+ Check27 check27, Check28 check28, Check29 check29, Check30 check30,
4438
+ Check31 check31, Check32 check32, Check33 check33, Check34 check34,
4439
+ Check35 check35, Check36 check36, Check37 check37, Check38 check38,
4440
+ Check39 check39, Check40 check40, Check41 check41, Check42 check42,
4441
+ Check43 check43, Check44 check44, Check45 check45, Check46 check46,
4442
+ Check47 check47, Check48 check48, Check49 check49, Check50 check50,
4443
+ Check51 check51, Check52 check52, Check53 check53, Check54 check54,
4444
+ Check55 check55, Check56 check56, Check57 check57, Check58 check58,
4445
+ Check59 check59, Check60 check60, Check61 check61, Check62 check62,
4446
+ Action0 action0, Action1 action1, Action2 action2, Action3 action3,
4447
+ Action4 action4, Action5 action5, Action6 action6, Action7 action7,
4448
+ Action8 action8, Action9 action9, Action10 action10, Action11 action11,
4449
+ Action12 action12, Action13 action13, Action14 action14, Action15 action15,
4450
+ Action16 action16, Action17 action17, Action18 action18, Action19 action19,
4451
+ Action20 action20, Action21 action21, Action22 action22, Action23 action23,
4452
+ Action24 action24, Action25 action25, Action26 action26, Action27 action27,
4453
+ Action28 action28, Action29 action29, Action30 action30, Action31 action31,
4454
+ Action32 action32, Action33 action33, Action34 action34, Action35 action35,
4455
+ Action36 action36, Action37 action37, Action38 action38, Action39 action39,
4456
+ Action40 action40, Action41 action41, Action42 action42, Action43 action43,
4457
+ Action44 action44, Action45 action45, Action46 action46, Action47 action47,
4458
+ Action48 action48, Action49 action49, Action50 action50, Action51 action51,
4459
+ Action52 action52, Action53 action53, Action54 action54, Action55 action55,
4460
+ Action56 action56, Action57 action57, Action58 action58, Action59 action59,
4461
+ Action60 action60, Action61 action61, Action62 action62) {
4462
+ if (check0(input)) return action0(action_arg);
4463
+ if (check1(input)) return action1(action_arg);
4464
+ if (check2(input)) return action2(action_arg);
4465
+ if (check3(input)) return action3(action_arg);
4466
+ if (check4(input)) return action4(action_arg);
4467
+ if (check5(input)) return action5(action_arg);
4468
+ if (check6(input)) return action6(action_arg);
4469
+ if (check7(input)) return action7(action_arg);
4470
+ if (check8(input)) return action8(action_arg);
4471
+ if (check9(input)) return action9(action_arg);
4472
+ if (check10(input)) return action10(action_arg);
4473
+ if (check11(input)) return action11(action_arg);
4474
+ if (check12(input)) return action12(action_arg);
4475
+ if (check13(input)) return action13(action_arg);
4476
+ if (check14(input)) return action14(action_arg);
4477
+ if (check15(input)) return action15(action_arg);
4478
+ if (check16(input)) return action16(action_arg);
4479
+ if (check17(input)) return action17(action_arg);
4480
+ if (check18(input)) return action18(action_arg);
4481
+ if (check19(input)) return action19(action_arg);
4482
+ if (check20(input)) return action20(action_arg);
4483
+ if (check21(input)) return action21(action_arg);
4484
+ if (check22(input)) return action22(action_arg);
4485
+ if (check23(input)) return action23(action_arg);
4486
+ if (check24(input)) return action24(action_arg);
4487
+ if (check25(input)) return action25(action_arg);
4488
+ if (check26(input)) return action26(action_arg);
4489
+ if (check27(input)) return action27(action_arg);
4490
+ if (check28(input)) return action28(action_arg);
4491
+ if (check29(input)) return action29(action_arg);
4492
+ if (check30(input)) return action30(action_arg);
4493
+ if (check31(input)) return action31(action_arg);
4494
+ if (check32(input)) return action32(action_arg);
4495
+ if (check33(input)) return action33(action_arg);
4496
+ if (check34(input)) return action34(action_arg);
4497
+ if (check35(input)) return action35(action_arg);
4498
+ if (check36(input)) return action36(action_arg);
4499
+ if (check37(input)) return action37(action_arg);
4500
+ if (check38(input)) return action38(action_arg);
4501
+ if (check39(input)) return action39(action_arg);
4502
+ if (check40(input)) return action40(action_arg);
4503
+ if (check41(input)) return action41(action_arg);
4504
+ if (check42(input)) return action42(action_arg);
4505
+ if (check43(input)) return action43(action_arg);
4506
+ if (check44(input)) return action44(action_arg);
4507
+ if (check45(input)) return action45(action_arg);
4508
+ if (check46(input)) return action46(action_arg);
4509
+ if (check47(input)) return action47(action_arg);
4510
+ if (check48(input)) return action48(action_arg);
4511
+ if (check49(input)) return action49(action_arg);
4512
+ if (check50(input)) return action50(action_arg);
4513
+ if (check51(input)) return action51(action_arg);
4514
+ if (check52(input)) return action52(action_arg);
4515
+ if (check53(input)) return action53(action_arg);
4516
+ if (check54(input)) return action54(action_arg);
4517
+ if (check55(input)) return action55(action_arg);
4518
+ if (check56(input)) return action56(action_arg);
4519
+ if (check57(input)) return action57(action_arg);
4520
+ if (check58(input)) return action58(action_arg);
4521
+ if (check59(input)) return action59(action_arg);
4522
+ if (check60(input)) return action60(action_arg);
4523
+ if (check61(input)) return action61(action_arg);
4524
+ if (check62(input)) return action62(action_arg);
4525
+ return action_fail(action_arg);
4526
+ }
4527
+
4528
+ } // namespace grpc_core
4529
+
4530
+ #endif // GRPC_SRC_CORE_UTIL_IF_LIST_H