diff --git a/BUILD b/BUILD
index b4b10b5..793c1c7 100644
--- a/BUILD
+++ b/BUILD
@@ -179,6 +179,7 @@
     "src/core/lib/iomgr/endpoint.h",
     "src/core/lib/iomgr/endpoint_pair.h",
     "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+    "src/core/lib/iomgr/ev_poll_posix.h",
     "src/core/lib/iomgr/ev_posix.h",
     "src/core/lib/iomgr/exec_ctx.h",
     "src/core/lib/iomgr/executor.h",
@@ -285,8 +286,9 @@
     "src/core/ext/client_config/subchannel_call_holder.h",
     "src/core/ext/client_config/subchannel_index.h",
     "src/core/ext/client_config/uri_parser.h",
+    "third_party/objective_c/Cronet/cronet_c_for_grpc.h",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
-    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h",
     "src/core/ext/census/aggregation.h",
     "src/core/ext/census/census_interface.h",
     "src/core/ext/census/census_rpc_stats.h",
@@ -312,6 +314,7 @@
     "src/core/lib/iomgr/endpoint_pair_posix.c",
     "src/core/lib/iomgr/endpoint_pair_windows.c",
     "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+    "src/core/lib/iomgr/ev_poll_posix.c",
     "src/core/lib/iomgr/ev_posix.c",
     "src/core/lib/iomgr/exec_ctx.c",
     "src/core/lib/iomgr/executor.c",
@@ -439,8 +442,11 @@
     "src/core/ext/client_config/uri_parser.c",
     "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
     "src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+    "src/core/ext/transport/cronet/client/secure/cronet_channel_create.c",
+    "src/core/ext/transport/cronet/transport/cronet_api_dummy.c",
+    "src/core/ext/transport/cronet/transport/cronet_transport.c",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
-    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
     "src/core/ext/lb_policy/round_robin/round_robin.c",
     "src/core/ext/resolver/dns/native/dns_resolver.c",
@@ -463,6 +469,7 @@
     "include/grpc/grpc.h",
     "include/grpc/status.h",
     "include/grpc/impl/codegen/byte_buffer.h",
+    "include/grpc/impl/codegen/byte_buffer_reader.h",
     "include/grpc/impl/codegen/compression_types.h",
     "include/grpc/impl/codegen/connectivity_state.h",
     "include/grpc/impl/codegen/grpc_types.h",
@@ -482,6 +489,7 @@
     "include/grpc/impl/codegen/sync_posix.h",
     "include/grpc/impl/codegen/sync_win32.h",
     "include/grpc/impl/codegen/time.h",
+    "include/grpc/grpc_cronet.h",
     "include/grpc/grpc_security.h",
     "include/grpc/grpc_security_constants.h",
     "include/grpc/census.h",
@@ -524,6 +532,7 @@
     "src/core/lib/iomgr/endpoint.h",
     "src/core/lib/iomgr/endpoint_pair.h",
     "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+    "src/core/lib/iomgr/ev_poll_posix.h",
     "src/core/lib/iomgr/ev_posix.h",
     "src/core/lib/iomgr/exec_ctx.h",
     "src/core/lib/iomgr/executor.h",
@@ -617,7 +626,7 @@
     "src/core/ext/client_config/subchannel_index.h",
     "src/core/ext/client_config/uri_parser.h",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
-    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h",
     "src/core/ext/census/aggregation.h",
     "src/core/ext/census/census_interface.h",
     "src/core/ext/census/census_rpc_stats.h",
@@ -644,6 +653,7 @@
     "src/core/lib/iomgr/endpoint_pair_posix.c",
     "src/core/lib/iomgr/endpoint_pair_windows.c",
     "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+    "src/core/lib/iomgr/ev_poll_posix.c",
     "src/core/lib/iomgr/ev_posix.c",
     "src/core/lib/iomgr/exec_ctx.c",
     "src/core/lib/iomgr/executor.c",
@@ -753,7 +763,7 @@
     "src/core/ext/resolver/dns/native/dns_resolver.c",
     "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
-    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
     "src/core/ext/lb_policy/round_robin/round_robin.c",
     "src/core/ext/census/context.c",
@@ -774,6 +784,7 @@
     "include/grpc/grpc.h",
     "include/grpc/status.h",
     "include/grpc/impl/codegen/byte_buffer.h",
+    "include/grpc/impl/codegen/byte_buffer_reader.h",
     "include/grpc/impl/codegen/compression_types.h",
     "include/grpc/impl/codegen/connectivity_state.h",
     "include/grpc/impl/codegen/grpc_types.h",
@@ -890,6 +901,8 @@
     "include/grpc++/impl/rpc_service_method.h",
     "include/grpc++/impl/serialization_traits.h",
     "include/grpc++/impl/server_builder_option.h",
+    "include/grpc++/impl/server_builder_plugin.h",
+    "include/grpc++/impl/server_initializer.h",
     "include/grpc++/impl/service_type.h",
     "include/grpc++/impl/sync.h",
     "include/grpc++/impl/sync_cxx11.h",
@@ -946,6 +959,7 @@
     "include/grpc++/impl/codegen/sync_stream.h",
     "include/grpc++/impl/codegen/time.h",
     "include/grpc/impl/codegen/byte_buffer.h",
+    "include/grpc/impl/codegen/byte_buffer_reader.h",
     "include/grpc/impl/codegen/compression_types.h",
     "include/grpc/impl/codegen/connectivity_state.h",
     "include/grpc/impl/codegen/grpc_types.h",
@@ -1035,6 +1049,8 @@
     "include/grpc++/impl/rpc_service_method.h",
     "include/grpc++/impl/serialization_traits.h",
     "include/grpc++/impl/server_builder_option.h",
+    "include/grpc++/impl/server_builder_plugin.h",
+    "include/grpc++/impl/server_initializer.h",
     "include/grpc++/impl/service_type.h",
     "include/grpc++/impl/sync.h",
     "include/grpc++/impl/sync_cxx11.h",
@@ -1091,6 +1107,7 @@
     "include/grpc++/impl/codegen/sync_stream.h",
     "include/grpc++/impl/codegen/time.h",
     "include/grpc/impl/codegen/byte_buffer.h",
+    "include/grpc/impl/codegen/byte_buffer_reader.h",
     "include/grpc/impl/codegen/compression_types.h",
     "include/grpc/impl/codegen/connectivity_state.h",
     "include/grpc/impl/codegen/grpc_types.h",
@@ -1329,6 +1346,7 @@
     "src/core/lib/iomgr/endpoint_pair_posix.c",
     "src/core/lib/iomgr/endpoint_pair_windows.c",
     "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+    "src/core/lib/iomgr/ev_poll_posix.c",
     "src/core/lib/iomgr/ev_posix.c",
     "src/core/lib/iomgr/exec_ctx.c",
     "src/core/lib/iomgr/executor.c",
@@ -1456,8 +1474,11 @@
     "src/core/ext/client_config/uri_parser.c",
     "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
     "src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+    "src/core/ext/transport/cronet/client/secure/cronet_channel_create.c",
+    "src/core/ext/transport/cronet/transport/cronet_api_dummy.c",
+    "src/core/ext/transport/cronet/transport/cronet_transport.c",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
-    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
     "src/core/ext/lb_policy/round_robin/round_robin.c",
     "src/core/ext/resolver/dns/native/dns_resolver.c",
@@ -1480,6 +1501,7 @@
     "include/grpc/grpc.h",
     "include/grpc/status.h",
     "include/grpc/impl/codegen/byte_buffer.h",
+    "include/grpc/impl/codegen/byte_buffer_reader.h",
     "include/grpc/impl/codegen/compression_types.h",
     "include/grpc/impl/codegen/connectivity_state.h",
     "include/grpc/impl/codegen/grpc_types.h",
@@ -1499,6 +1521,7 @@
     "include/grpc/impl/codegen/sync_posix.h",
     "include/grpc/impl/codegen/sync_win32.h",
     "include/grpc/impl/codegen/time.h",
+    "include/grpc/grpc_cronet.h",
     "include/grpc/grpc_security.h",
     "include/grpc/grpc_security_constants.h",
     "include/grpc/census.h",
@@ -1520,6 +1543,7 @@
     "src/core/lib/iomgr/endpoint.h",
     "src/core/lib/iomgr/endpoint_pair.h",
     "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+    "src/core/lib/iomgr/ev_poll_posix.h",
     "src/core/lib/iomgr/ev_posix.h",
     "src/core/lib/iomgr/exec_ctx.h",
     "src/core/lib/iomgr/executor.h",
@@ -1626,8 +1650,9 @@
     "src/core/ext/client_config/subchannel_call_holder.h",
     "src/core/ext/client_config/subchannel_index.h",
     "src/core/ext/client_config/uri_parser.h",
+    "third_party/objective_c/Cronet/cronet_c_for_grpc.h",
     "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
-    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+    "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h",
     "src/core/ext/census/aggregation.h",
     "src/core/ext/census/census_interface.h",
     "src/core/ext/census/census_rpc_stats.h",
diff --git a/Makefile b/Makefile
index 922e0b0..42cedf5 100644
--- a/Makefile
+++ b/Makefile
@@ -187,8 +187,8 @@
 CXX_ubsan = clang++
 LD_ubsan = clang
 LDXX_ubsan = clang++
-CPPFLAGS_ubsan = -O1 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer -Wno-unused-command-line-argument
-LDFLAGS_ubsan = -fsanitize=undefined
+CPPFLAGS_ubsan = -O0 -fsanitize-coverage=edge -fsanitize=undefined,unsigned-integer-overflow -fno-omit-frame-pointer -Wno-unused-command-line-argument -Wvarargs
+LDFLAGS_ubsan = -fsanitize=undefined,unsigned-integer-overflow
 DEFINES_ubsan = NDEBUG
 DEFINES_ubsan += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=1.5
 
@@ -319,12 +319,19 @@
 HAS_WORKING_SHADOW = $(shell $(CHECK_SHADOW_WORKS_CMD) 2> /dev/null && echo true || echo false)
 ifeq ($(HAS_WORKING_SHADOW),true)
 W_SHADOW=-Wshadow
+NO_W_SHADOW=-Wno-shadow
 endif
-
-CHECK_NO_SHIFT_NEGATIVE_VALUE_CMD = $(CC) -std=c99 -Werror -Wno-shift-negative-value -o $(TMPOUT) -c test/build/empty.c
-HAS_NO_SHIFT_NEGATIVE_VALUE = $(shell $(CHECK_NO_SHIFT_NEGATIVE_VALUE_CMD) 2> /dev/null && echo true || echo false)
-ifeq ($(HAS_NO_SHIFT_NEGATIVE_VALUE),true)
+CHECK_EXTRA_SEMI_WORKS_CMD = $(CC) -std=c99 -Werror -Wextra-semi -o $(TMPOUT) -c test/build/extra-semi.c
+HAS_WORKING_EXTRA_SEMI = $(shell $(CHECK_EXTRA_SEMI_WORKS_CMD) 2> /dev/null && echo true || echo false)
+ifeq ($(HAS_WORKING_EXTRA_SEMI),true)
+W_EXTRA_SEMI=-Wextra-semi
+NO_W_EXTRA_SEMI=-Wno-extra-semi
+endif
+CHECK_NO_SHIFT_NEGATIVE_VALUE_WORKS_CMD = $(CC) -std=c99 -Werror -Wno-shift-negative-value -o $(TMPOUT) -c test/build/no-shift-negative-value.c
+HAS_WORKING_NO_SHIFT_NEGATIVE_VALUE = $(shell $(CHECK_NO_SHIFT_NEGATIVE_VALUE_WORKS_CMD) 2> /dev/null && echo true || echo false)
+ifeq ($(HAS_WORKING_NO_SHIFT_NEGATIVE_VALUE),true)
 W_NO_SHIFT_NEGATIVE_VALUE=-Wno-shift-negative-value
+NO_W_NO_SHIFT_NEGATIVE_VALUE=-Wshift-negative-value
 endif
 
 # The HOST compiler settings are used to compile the protoc plugins.
@@ -341,7 +348,7 @@
 DEFINES += $(EXTRA_DEFINES)
 endif
 
-CFLAGS += -std=c99 -Wsign-conversion -Wconversion $(W_SHADOW)
+CFLAGS += -std=c99 -Wsign-conversion -Wconversion $(W_SHADOW) $(W_EXTRA_SEMI)
 ifeq ($(HAS_CXX11),true)
 CXXFLAGS += -std=c++11
 else
@@ -407,7 +414,7 @@
 Q = @
 endif
 
-VERSION = 0.14.0-dev
+VERSION = 0.15.0-dev
 
 CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
 CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@@ -472,7 +479,7 @@
 
 OPENSSL_ALPN_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/openssl-alpn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
 OPENSSL_NPN_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/openssl-npn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
-BORINGSSL_COMPILE_CHECK_CMD = $(CC) $(CPPFLAGS) -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -o $(TMPOUT) test/build/boringssl.c $(LDFLAGS)
+BORINGSSL_COMPILE_CHECK_CMD = $(CC) $(CPPFLAGS) -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI) -o $(TMPOUT) test/build/boringssl.c $(LDFLAGS)
 ZLIB_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/zlib.c -lz $(LDFLAGS)
 PROTOBUF_CHECK_CMD = $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $(TMPOUT) test/build/protobuf.cc -lprotobuf $(LDFLAGS)
 
@@ -1035,6 +1042,7 @@
 reconnect_interop_server: $(BINDIR)/$(CONFIG)/reconnect_interop_server
 secure_auth_context_test: $(BINDIR)/$(CONFIG)/secure_auth_context_test
 secure_sync_unary_ping_pong_test: $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test
+server_builder_plugin_test: $(BINDIR)/$(CONFIG)/server_builder_plugin_test
 server_crash_test: $(BINDIR)/$(CONFIG)/server_crash_test
 server_crash_test_client: $(BINDIR)/$(CONFIG)/server_crash_test_client
 shutdown_test: $(BINDIR)/$(CONFIG)/shutdown_test
@@ -1089,6 +1097,7 @@
 head_of_line_blocking_bad_client_test: $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test
 headers_bad_client_test: $(BINDIR)/$(CONFIG)/headers_bad_client_test
 initial_settings_frame_bad_client_test: $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test
+large_metadata_bad_client_test: $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test
 server_registered_method_bad_client_test: $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test
 simple_request_bad_client_test: $(BINDIR)/$(CONFIG)/simple_request_bad_client_test
 unknown_frame_bad_client_test: $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test
@@ -1318,6 +1327,7 @@
   $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test \
   $(BINDIR)/$(CONFIG)/headers_bad_client_test \
   $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test \
+  $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test \
   $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test \
   $(BINDIR)/$(CONFIG)/simple_request_bad_client_test \
   $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test \
@@ -1401,6 +1411,7 @@
   $(BINDIR)/$(CONFIG)/reconnect_interop_server \
   $(BINDIR)/$(CONFIG)/secure_auth_context_test \
   $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test \
+  $(BINDIR)/$(CONFIG)/server_builder_plugin_test \
   $(BINDIR)/$(CONFIG)/server_crash_test \
   $(BINDIR)/$(CONFIG)/server_crash_test_client \
   $(BINDIR)/$(CONFIG)/shutdown_test \
@@ -1656,6 +1667,8 @@
 	$(Q) $(BINDIR)/$(CONFIG)/headers_bad_client_test || ( echo test headers_bad_client_test failed ; exit 1 )
 	$(E) "[RUN]     Testing initial_settings_frame_bad_client_test"
 	$(Q) $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test || ( echo test initial_settings_frame_bad_client_test failed ; exit 1 )
+	$(E) "[RUN]     Testing large_metadata_bad_client_test"
+	$(Q) $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test || ( echo test large_metadata_bad_client_test failed ; exit 1 )
 	$(E) "[RUN]     Testing server_registered_method_bad_client_test"
 	$(Q) $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test || ( echo test server_registered_method_bad_client_test failed ; exit 1 )
 	$(E) "[RUN]     Testing simple_request_bad_client_test"
@@ -1732,6 +1745,8 @@
 	$(Q) $(BINDIR)/$(CONFIG)/secure_auth_context_test || ( echo test secure_auth_context_test failed ; exit 1 )
 	$(E) "[RUN]     Testing secure_sync_unary_ping_pong_test"
 	$(Q) $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test || ( echo test secure_sync_unary_ping_pong_test failed ; exit 1 )
+	$(E) "[RUN]     Testing server_builder_plugin_test"
+	$(Q) $(BINDIR)/$(CONFIG)/server_builder_plugin_test || ( echo test server_builder_plugin_test failed ; exit 1 )
 	$(E) "[RUN]     Testing server_crash_test"
 	$(Q) $(BINDIR)/$(CONFIG)/server_crash_test || ( echo test server_crash_test failed ; exit 1 )
 	$(E) "[RUN]     Testing shutdown_test"
@@ -1870,15 +1885,15 @@
 	$(Q) echo "$(GRPCXX_UNSECURE_PC_FILE)" | tr , '\n' >$@
 
 ifeq ($(NO_PROTOC),true)
-$(GENDIR)/src/proto/grpc/lb/v0/load_balancer.pb.cc: protoc_dep_error
-$(GENDIR)/src/proto/grpc/lb/v0/load_balancer.grpc.pb.cc: protoc_dep_error
+$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: protoc_dep_error
+$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: protoc_dep_error
 else
-$(GENDIR)/src/proto/grpc/lb/v0/load_balancer.pb.cc: src/proto/grpc/lb/v0/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) 
+$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) 
 	$(E) "[PROTOC]  Generating protobuf CC file from $<"
 	$(Q) mkdir -p `dirname $@`
 	$(Q) $(PROTOC) --cpp_out=$(GENDIR) $<
 
-$(GENDIR)/src/proto/grpc/lb/v0/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v0/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) 
+$(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc: src/proto/grpc/lb/v1/load_balancer.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS) 
 	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
 	$(Q) mkdir -p `dirname $@`
 	$(Q) $(PROTOC) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/grpc_cpp_plugin $<
@@ -2496,6 +2511,7 @@
     src/core/lib/iomgr/endpoint_pair_posix.c \
     src/core/lib/iomgr/endpoint_pair_windows.c \
     src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+    src/core/lib/iomgr/ev_poll_posix.c \
     src/core/lib/iomgr/ev_posix.c \
     src/core/lib/iomgr/exec_ctx.c \
     src/core/lib/iomgr/executor.c \
@@ -2623,8 +2639,11 @@
     src/core/ext/client_config/uri_parser.c \
     src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
     src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+    src/core/ext/transport/cronet/client/secure/cronet_channel_create.c \
+    src/core/ext/transport/cronet/transport/cronet_api_dummy.c \
+    src/core/ext/transport/cronet/transport/cronet_transport.c \
     src/core/ext/lb_policy/grpclb/load_balancer_api.c \
-    src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
+    src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \
     third_party/nanopb/pb_common.c \
     third_party/nanopb/pb_decode.c \
     third_party/nanopb/pb_encode.c \
@@ -2650,6 +2669,7 @@
     include/grpc/grpc.h \
     include/grpc/status.h \
     include/grpc/impl/codegen/byte_buffer.h \
+    include/grpc/impl/codegen/byte_buffer_reader.h \
     include/grpc/impl/codegen/compression_types.h \
     include/grpc/impl/codegen/connectivity_state.h \
     include/grpc/impl/codegen/grpc_types.h \
@@ -2669,6 +2689,7 @@
     include/grpc/impl/codegen/sync_posix.h \
     include/grpc/impl/codegen/sync_win32.h \
     include/grpc/impl/codegen/time.h \
+    include/grpc/grpc_cronet.h \
     include/grpc/grpc_security.h \
     include/grpc/grpc_security_constants.h \
     include/grpc/census.h \
@@ -2837,6 +2858,7 @@
     src/core/lib/iomgr/endpoint_pair_posix.c \
     src/core/lib/iomgr/endpoint_pair_windows.c \
     src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+    src/core/lib/iomgr/ev_poll_posix.c \
     src/core/lib/iomgr/ev_posix.c \
     src/core/lib/iomgr/exec_ctx.c \
     src/core/lib/iomgr/executor.c \
@@ -2946,7 +2968,7 @@
     src/core/ext/resolver/dns/native/dns_resolver.c \
     src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
     src/core/ext/lb_policy/grpclb/load_balancer_api.c \
-    src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
+    src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \
     third_party/nanopb/pb_common.c \
     third_party/nanopb/pb_decode.c \
     third_party/nanopb/pb_encode.c \
@@ -2970,6 +2992,7 @@
     include/grpc/grpc.h \
     include/grpc/status.h \
     include/grpc/impl/codegen/byte_buffer.h \
+    include/grpc/impl/codegen/byte_buffer_reader.h \
     include/grpc/impl/codegen/compression_types.h \
     include/grpc/impl/codegen/connectivity_state.h \
     include/grpc/impl/codegen/grpc_types.h \
@@ -3200,6 +3223,8 @@
     include/grpc++/impl/rpc_service_method.h \
     include/grpc++/impl/serialization_traits.h \
     include/grpc++/impl/server_builder_option.h \
+    include/grpc++/impl/server_builder_plugin.h \
+    include/grpc++/impl/server_initializer.h \
     include/grpc++/impl/service_type.h \
     include/grpc++/impl/sync.h \
     include/grpc++/impl/sync_cxx11.h \
@@ -3256,6 +3281,7 @@
     include/grpc++/impl/codegen/sync_stream.h \
     include/grpc++/impl/codegen/time.h \
     include/grpc/impl/codegen/byte_buffer.h \
+    include/grpc/impl/codegen/byte_buffer_reader.h \
     include/grpc/impl/codegen/compression_types.h \
     include/grpc/impl/codegen/connectivity_state.h \
     include/grpc/impl/codegen/grpc_types.h \
@@ -3503,6 +3529,8 @@
     include/grpc++/impl/rpc_service_method.h \
     include/grpc++/impl/serialization_traits.h \
     include/grpc++/impl/server_builder_option.h \
+    include/grpc++/impl/server_builder_plugin.h \
+    include/grpc++/impl/server_initializer.h \
     include/grpc++/impl/service_type.h \
     include/grpc++/impl/sync.h \
     include/grpc++/impl/sync_cxx11.h \
@@ -3559,6 +3587,7 @@
     include/grpc++/impl/codegen/sync_stream.h \
     include/grpc++/impl/codegen/time.h \
     include/grpc/impl/codegen/byte_buffer.h \
+    include/grpc/impl/codegen/byte_buffer_reader.h \
     include/grpc/impl/codegen/compression_types.h \
     include/grpc/impl/codegen/connectivity_state.h \
     include/grpc/impl/codegen/grpc_types.h \
@@ -4322,7 +4351,7 @@
 LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC))))
 
 $(LIBBORINGSSL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl.a: $(ZLIB_DEP)  $(LIBBORINGSSL_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -4351,7 +4380,7 @@
 LIBBORINGSSL_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TEST_UTIL_SRC))))
 
 $(LIBBORINGSSL_TEST_UTIL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_TEST_UTIL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_TEST_UTIL_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4389,7 +4418,7 @@
 LIBBORINGSSL_AES_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AES_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_AES_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_AES_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4427,7 +4456,7 @@
 LIBBORINGSSL_ASN1_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ASN1_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_ASN1_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4465,7 +4494,7 @@
 LIBBORINGSSL_BASE64_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BASE64_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_BASE64_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4503,7 +4532,7 @@
 LIBBORINGSSL_BIO_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BIO_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_BIO_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4541,7 +4570,7 @@
 LIBBORINGSSL_BN_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BN_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_BN_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_BN_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4579,7 +4608,7 @@
 LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4617,7 +4646,7 @@
 LIBBORINGSSL_AEAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AEAD_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_AEAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4655,7 +4684,7 @@
 LIBBORINGSSL_CIPHER_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CIPHER_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_CIPHER_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4693,7 +4722,7 @@
 LIBBORINGSSL_CMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CMAC_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_CMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4731,7 +4760,7 @@
 LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_constant_time_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -4758,7 +4787,7 @@
 LIBBORINGSSL_ED25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ED25519_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_ED25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4796,7 +4825,7 @@
 LIBBORINGSSL_X25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X25519_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_X25519_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4834,7 +4863,7 @@
 LIBBORINGSSL_DH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DH_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_DH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_DH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4872,7 +4901,7 @@
 LIBBORINGSSL_DIGEST_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DIGEST_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_DIGEST_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4910,7 +4939,7 @@
 LIBBORINGSSL_DSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DSA_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_DSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_dsa_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_DSA_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -4937,7 +4966,7 @@
 LIBBORINGSSL_EC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EC_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_EC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_EC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -4975,7 +5004,7 @@
 LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC))))
 
 $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_example_mul_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5002,7 +5031,7 @@
 LIBBORINGSSL_ECDSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_ECDSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5040,7 +5069,7 @@
 LIBBORINGSSL_ERR_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ERR_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_ERR_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5078,7 +5107,7 @@
 LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5116,7 +5145,7 @@
 LIBBORINGSSL_EVP_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_EVP_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5154,7 +5183,7 @@
 LIBBORINGSSL_PBKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PBKDF_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_PBKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5192,7 +5221,7 @@
 LIBBORINGSSL_HKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HKDF_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_HKDF_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_hkdf_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_HKDF_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5219,7 +5248,7 @@
 LIBBORINGSSL_HMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HMAC_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_HMAC_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5257,7 +5286,7 @@
 LIBBORINGSSL_LHASH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_LHASH_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_LHASH_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_lhash_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_LHASH_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5284,7 +5313,7 @@
 LIBBORINGSSL_GCM_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_GCM_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_GCM_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_gcm_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_GCM_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5311,7 +5340,7 @@
 LIBBORINGSSL_PKCS12_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS12_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_PKCS12_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5349,7 +5378,7 @@
 LIBBORINGSSL_PKCS8_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS8_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_PKCS8_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5387,7 +5416,7 @@
 LIBBORINGSSL_POLY1305_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_POLY1305_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_POLY1305_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5425,7 +5454,7 @@
 LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_refcount_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5452,7 +5481,7 @@
 LIBBORINGSSL_RSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_RSA_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_RSA_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5490,7 +5519,7 @@
 LIBBORINGSSL_THREAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_THREAD_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_THREAD_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_thread_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_THREAD_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5517,7 +5546,7 @@
 LIBBORINGSSL_PKCS7_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS7_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_pkcs7_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_PKCS7_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5544,7 +5573,7 @@
 LIBBORINGSSL_X509_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X509_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_X509_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_X509_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -5582,7 +5611,7 @@
 LIBBORINGSSL_TAB_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TAB_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_TAB_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_tab_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_TAB_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5609,7 +5638,7 @@
 LIBBORINGSSL_V3NAME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_V3NAME_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_v3name_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_V3NAME_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5636,7 +5665,7 @@
 LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PQUEUE_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 $(LIBDIR)/$(CONFIG)/libboringssl_pqueue_test_lib.a: $(ZLIB_DEP)  $(LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS) 
 	$(E) "[AR]      Creating $@"
@@ -5663,7 +5692,7 @@
 LIBBORINGSSL_SSL_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SSL_TEST_LIB_SRC))))
 
 $(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
-$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+$(LIBBORINGSSL_SSL_TEST_LIB_OBJS): CFLAGS += -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
 
 ifeq ($(NO_PROTOBUF),true)
 
@@ -10742,7 +10771,7 @@
 
 
 GRPCLB_API_TEST_SRC = \
-    $(GENDIR)/src/proto/grpc/lb/v0/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v0/load_balancer.grpc.pb.cc \
+    $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \
     test/cpp/grpclb/grpclb_api_test.cc \
 
 GRPCLB_API_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPCLB_API_TEST_SRC))))
@@ -10774,7 +10803,7 @@
 
 endif
 
-$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v0/load_balancer.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a
+$(OBJDIR)/$(CONFIG)/src/proto/grpc/lb/v1/load_balancer.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a
 
 $(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a
 
@@ -10785,7 +10814,7 @@
 -include $(GRPCLB_API_TEST_OBJS:.o=.dep)
 endif
 endif
-$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v0/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v0/load_balancer.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/grpclb/grpclb_api_test.o: $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc
 
 
 HYBRID_END2END_TEST_SRC = \
@@ -11479,6 +11508,49 @@
 endif
 
 
+SERVER_BUILDER_PLUGIN_TEST_SRC = \
+    test/cpp/end2end/server_builder_plugin_test.cc \
+
+SERVER_BUILDER_PLUGIN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SERVER_BUILDER_PLUGIN_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/server_builder_plugin_test: openssl_dep_error
+
+else
+
+
+
+
+ifeq ($(NO_PROTOBUF),true)
+
+# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+.
+
+$(BINDIR)/$(CONFIG)/server_builder_plugin_test: protobuf_dep_error
+
+else
+
+$(BINDIR)/$(CONFIG)/server_builder_plugin_test: $(PROTOBUF_DEP) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+	$(E) "[LD]      Linking $@"
+	$(Q) mkdir -p `dirname $@`
+	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test
+
+endif
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/cpp/end2end/server_builder_plugin_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_server_builder_plugin_test: $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(SERVER_BUILDER_PLUGIN_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
 SERVER_CRASH_TEST_SRC = \
     test/cpp/end2end/server_crash_test.cc \
 
@@ -11978,7 +12050,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_AES_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_AES_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_AES_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_AES_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12005,7 +12077,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_ASN1_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_ASN1_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_ASN1_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_ASN1_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12032,7 +12104,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_BASE64_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_BASE64_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_BASE64_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_BASE64_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12059,7 +12131,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_BIO_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_BIO_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_BIO_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_BIO_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12086,7 +12158,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_BN_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_BN_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_BN_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_BN_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12113,7 +12185,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_BYTESTRING_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_BYTESTRING_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_BYTESTRING_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_BYTESTRING_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12140,7 +12212,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_AEAD_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_AEAD_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_AEAD_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_AEAD_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12167,7 +12239,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_CIPHER_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_CIPHER_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_CIPHER_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_CIPHER_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12194,7 +12266,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_CMAC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_CMAC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_CMAC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_CMAC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12221,7 +12293,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_CONSTANT_TIME_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12248,7 +12320,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_ED25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_ED25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_ED25519_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_ED25519_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12275,7 +12347,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_X25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_X25519_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_X25519_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_X25519_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12302,7 +12374,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_DH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_DH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_DH_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_DH_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12329,7 +12401,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_DIGEST_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_DIGEST_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_DIGEST_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_DIGEST_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12356,7 +12428,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_DSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_DSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_DSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_DSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12383,7 +12455,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_EC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_EC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_EC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_EC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12410,7 +12482,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_EXAMPLE_MUL_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_EXAMPLE_MUL_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_EXAMPLE_MUL_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_EXAMPLE_MUL_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12437,7 +12509,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_ECDSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_ECDSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_ECDSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_ECDSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12464,7 +12536,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_ERR_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_ERR_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_ERR_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_ERR_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12491,7 +12563,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_EVP_EXTRA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_EVP_EXTRA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_EVP_EXTRA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12518,7 +12590,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_EVP_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_EVP_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_EVP_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_EVP_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12545,7 +12617,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_PBKDF_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_PBKDF_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_PBKDF_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_PBKDF_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12572,7 +12644,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_HKDF_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_HKDF_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_HKDF_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_HKDF_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12599,7 +12671,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_HMAC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_HMAC_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_HMAC_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_HMAC_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12626,7 +12698,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_LHASH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_LHASH_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_LHASH_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_LHASH_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12653,7 +12725,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_GCM_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_GCM_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_GCM_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_GCM_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12680,7 +12752,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_PKCS12_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_PKCS12_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_PKCS12_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_PKCS12_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12707,7 +12779,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_PKCS8_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_PKCS8_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_PKCS8_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_PKCS8_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12734,7 +12806,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_POLY1305_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_POLY1305_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_POLY1305_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_POLY1305_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12761,7 +12833,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_REFCOUNT_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_REFCOUNT_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_REFCOUNT_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_REFCOUNT_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12788,7 +12860,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_RSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_RSA_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_RSA_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_RSA_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12815,7 +12887,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_THREAD_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_THREAD_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_THREAD_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_THREAD_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12842,7 +12914,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_PKCS7_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_PKCS7_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_PKCS7_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_PKCS7_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12869,7 +12941,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_X509_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_X509_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_X509_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_X509_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12896,7 +12968,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_TAB_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_TAB_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_TAB_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_TAB_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12923,7 +12995,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_V3NAME_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_V3NAME_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_V3NAME_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_V3NAME_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12950,7 +13022,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_PQUEUE_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_PQUEUE_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_PQUEUE_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_PQUEUE_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -12977,7 +13049,7 @@
 # boringssl needs an override to ensure that it does not include
 # system openssl headers regardless of other configuration
 # we do so here with a target specific variable assignment
-$(BORINGSSL_SSL_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+$(BORINGSSL_SSL_TEST_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
 $(BORINGSSL_SSL_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
 $(BORINGSSL_SSL_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 
@@ -13100,6 +13172,26 @@
 endif
 
 
+LARGE_METADATA_BAD_CLIENT_TEST_SRC = \
+    test/core/bad_client/tests/large_metadata.c \
+
+LARGE_METADATA_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LARGE_METADATA_BAD_CLIENT_TEST_SRC))))
+
+
+$(BINDIR)/$(CONFIG)/large_metadata_bad_client_test: $(LARGE_METADATA_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+	$(E) "[LD]      Linking $@"
+	$(Q) mkdir -p `dirname $@`
+	$(Q) $(LD) $(LDFLAGS) $(LARGE_METADATA_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test
+
+$(OBJDIR)/$(CONFIG)/test/core/bad_client/tests/large_metadata.o:  $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_large_metadata_bad_client_test: $(LARGE_METADATA_BAD_CLIENT_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_DEPS),true)
+-include $(LARGE_METADATA_BAD_CLIENT_TEST_OBJS:.o=.dep)
+endif
+
+
 SERVER_REGISTERED_METHOD_BAD_CLIENT_TEST_SRC = \
     test/core/bad_client/tests/server_registered_method.c \
 
@@ -14313,6 +14405,9 @@
 # otherwise parallel compilation will fail if a source is compiled first.
 src/core/ext/transport/chttp2/client/secure/secure_channel_create.c: $(OPENSSL_DEP)
 src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c: $(OPENSSL_DEP)
+src/core/ext/transport/cronet/client/secure/cronet_channel_create.c: $(OPENSSL_DEP)
+src/core/ext/transport/cronet/transport/cronet_api_dummy.c: $(OPENSSL_DEP)
+src/core/ext/transport/cronet/transport/cronet_transport.c: $(OPENSSL_DEP)
 src/core/lib/http/httpcli_security_connector.c: $(OPENSSL_DEP)
 src/core/lib/security/b64.c: $(OPENSSL_DEP)
 src/core/lib/security/client_auth_filter.c: $(OPENSSL_DEP)
diff --git a/binding.gyp b/binding.gyp
index 4314ab7..760bb24 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -582,6 +582,7 @@
         'src/core/lib/iomgr/endpoint_pair_posix.c',
         'src/core/lib/iomgr/endpoint_pair_windows.c',
         'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+        'src/core/lib/iomgr/ev_poll_posix.c',
         'src/core/lib/iomgr/ev_posix.c',
         'src/core/lib/iomgr/exec_ctx.c',
         'src/core/lib/iomgr/executor.c',
@@ -709,8 +710,11 @@
         'src/core/ext/client_config/uri_parser.c',
         'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
         'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+        'src/core/ext/transport/cronet/client/secure/cronet_channel_create.c',
+        'src/core/ext/transport/cronet/transport/cronet_api_dummy.c',
+        'src/core/ext/transport/cronet/transport/cronet_transport.c',
         'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
-        'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
+        'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c',
         'third_party/nanopb/pb_common.c',
         'third_party/nanopb/pb_decode.c',
         'third_party/nanopb/pb_encode.c',
diff --git a/build.yaml b/build.yaml
index 441752d..ac61612 100644
--- a/build.yaml
+++ b/build.yaml
@@ -7,7 +7,7 @@
   '#3': Use "-preN" suffixes to identify pre-release versions
   '#4': Per-language overrides are possible with (eg) ruby_version tag here
   '#5': See the expand_version.py for all the quirks here
-  version: 0.14.0-dev
+  version: 0.15.0-dev
 filegroups:
 - name: census
   public_headers:
@@ -166,6 +166,7 @@
   - src/core/lib/iomgr/endpoint.h
   - src/core/lib/iomgr/endpoint_pair.h
   - src/core/lib/iomgr/ev_poll_and_epoll_posix.h
+  - src/core/lib/iomgr/ev_poll_posix.h
   - src/core/lib/iomgr/ev_posix.h
   - src/core/lib/iomgr/exec_ctx.h
   - src/core/lib/iomgr/executor.h
@@ -240,6 +241,7 @@
   - src/core/lib/iomgr/endpoint_pair_posix.c
   - src/core/lib/iomgr/endpoint_pair_windows.c
   - src/core/lib/iomgr/ev_poll_and_epoll_posix.c
+  - src/core/lib/iomgr/ev_poll_posix.c
   - src/core/lib/iomgr/ev_posix.c
   - src/core/lib/iomgr/exec_ctx.c
   - src/core/lib/iomgr/executor.c
@@ -351,6 +353,7 @@
 - name: grpc_codegen
   public_headers:
   - include/grpc/impl/codegen/byte_buffer.h
+  - include/grpc/impl/codegen/byte_buffer_reader.h
   - include/grpc/impl/codegen/compression_types.h
   - include/grpc/impl/codegen/connectivity_state.h
   - include/grpc/impl/codegen/grpc_types.h
@@ -361,10 +364,10 @@
 - name: grpc_lb_policy_grpclb
   headers:
   - src/core/ext/lb_policy/grpclb/load_balancer_api.h
-  - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h
+  - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h
   src:
   - src/core/ext/lb_policy/grpclb/load_balancer_api.c
-  - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c
+  - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c
   uses:
   - grpc_base
   - grpc_client_config
@@ -399,6 +402,7 @@
   - grpc_client_config
 - name: grpc_secure
   public_headers:
+  - include/grpc/grpc_cronet.h
   - include/grpc/grpc_security.h
   - include/grpc/grpc_security_constants.h
   headers:
@@ -546,6 +550,16 @@
   - grpc_transport_chttp2
   - grpc_base
   - grpc_secure
+- name: grpc_transport_cronet_client_secure
+  headers:
+  - third_party/objective_c/Cronet/cronet_c_for_grpc.h
+  src:
+  - src/core/ext/transport/cronet/client/secure/cronet_channel_create.c
+  - src/core/ext/transport/cronet/transport/cronet_api_dummy.c
+  - src/core/ext/transport/cronet/transport/cronet_transport.c
+  filegroups:
+  - grpc_base
+  - grpc_transport_chttp2
 - name: nanopb
   headers:
   - third_party/nanopb/pb.h
@@ -590,6 +604,8 @@
   - include/grpc++/impl/rpc_service_method.h
   - include/grpc++/impl/serialization_traits.h
   - include/grpc++/impl/server_builder_option.h
+  - include/grpc++/impl/server_builder_plugin.h
+  - include/grpc++/impl/server_initializer.h
   - include/grpc++/impl/service_type.h
   - include/grpc++/impl/sync.h
   - include/grpc++/impl/sync_cxx11.h
@@ -733,6 +749,7 @@
   - grpc_transport_chttp2_client_secure
   - grpc_transport_chttp2_server_insecure
   - grpc_transport_chttp2_client_insecure
+  - grpc_transport_cronet_client_secure
   - grpc_lb_policy_grpclb
   - grpc_lb_policy_pick_first
   - grpc_lb_policy_round_robin
@@ -2642,7 +2659,7 @@
   build: test
   language: c++
   src:
-  - src/proto/grpc/lb/v0/load_balancer.proto
+  - src/proto/grpc/lb/v1/load_balancer.proto
   - test/cpp/grpclb/grpclb_api_test.cc
   deps:
   - grpc++_test_util
@@ -2914,6 +2931,19 @@
   - mac
   - linux
   - posix
+- name: server_builder_plugin_test
+  gtest: true
+  build: test
+  language: c++
+  src:
+  - test/cpp/end2end/server_builder_plugin_test.cc
+  deps:
+  - grpc++_test_util
+  - grpc_test_util
+  - grpc++
+  - grpc
+  - gpr_test_util
+  - gpr
 - name: server_crash_test
   gtest: true
   cpu_cost: 0.1
@@ -3239,19 +3269,21 @@
     timeout_multiplier: 5
   ubsan:
     CC: clang
-    CPPFLAGS: -O1 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer
-      -Wno-unused-command-line-argument
+    CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=undefined,unsigned-integer-overflow
+      -fno-omit-frame-pointer -Wno-unused-command-line-argument -Wvarargs
     CXX: clang++
     DEFINES: NDEBUG
     LD: clang
-    LDFLAGS: -fsanitize=undefined
+    LDFLAGS: -fsanitize=undefined,unsigned-integer-overflow
     LDXX: clang++
     compile_the_world: true
+    test_environ:
+      UBSAN_OPTIONS: print_stacktrace=1
     timeout_multiplier: 1.5
 defaults:
   boringssl:
     CFLAGS: -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas
-      -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare
+      -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
     CPPFLAGS: -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM
       -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
   global:
diff --git a/composer.json b/composer.json
index 97b1a5c..b77a59e 100644
--- a/composer.json
+++ b/composer.json
@@ -2,7 +2,7 @@
   "name": "grpc/grpc",
   "type": "library",
   "description": "gRPC library for PHP",
-  "version": "0.14.0",
+  "version": "0.15.0",
   "keywords": ["rpc"],
   "homepage": "http://grpc.io",
   "license": "BSD-3-Clause",
diff --git a/config.m4 b/config.m4
index 74f9ad2..6ed1887 100644
--- a/config.m4
+++ b/config.m4
@@ -101,6 +101,7 @@
     src/core/lib/iomgr/endpoint_pair_posix.c \
     src/core/lib/iomgr/endpoint_pair_windows.c \
     src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+    src/core/lib/iomgr/ev_poll_posix.c \
     src/core/lib/iomgr/ev_posix.c \
     src/core/lib/iomgr/exec_ctx.c \
     src/core/lib/iomgr/executor.c \
@@ -228,8 +229,11 @@
     src/core/ext/client_config/uri_parser.c \
     src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
     src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+    src/core/ext/transport/cronet/client/secure/cronet_channel_create.c \
+    src/core/ext/transport/cronet/transport/cronet_api_dummy.c \
+    src/core/ext/transport/cronet/transport/cronet_transport.c \
     src/core/ext/lb_policy/grpclb/load_balancer_api.c \
-    src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
+    src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \
     third_party/nanopb/pb_common.c \
     third_party/nanopb/pb_decode.c \
     third_party/nanopb/pb_encode.c \
@@ -555,7 +559,7 @@
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/census)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/client_config)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb)
-  PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0)
+  PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/pick_first)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/round_robin)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/resolver/dns/native)
@@ -566,6 +570,8 @@
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/insecure)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/secure)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/transport)
+  PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/cronet/client/secure)
+  PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/cronet/transport)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/compression)
   PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/debug)
diff --git a/examples/cpp/helloworld/Makefile b/examples/cpp/helloworld/Makefile
index 470b835..58a82db 100644
--- a/examples/cpp/helloworld/Makefile
+++ b/examples/cpp/helloworld/Makefile
@@ -41,7 +41,7 @@
 
 vpath %.proto $(PROTOS_PATH)
 
-all: system-check greeter_client greeter_server greeter_async_client greeter_async_server
+all: system-check greeter_client greeter_server greeter_async_client greeter_async_client2 greeter_async_server
 
 greeter_client: helloworld.pb.o helloworld.grpc.pb.o greeter_client.o
 	$(CXX) $^ $(LDFLAGS) -o $@
@@ -52,6 +52,9 @@
 greeter_async_client: helloworld.pb.o helloworld.grpc.pb.o greeter_async_client.o
 	$(CXX) $^ $(LDFLAGS) -o $@
 
+greeter_async_client2: helloworld.pb.o helloworld.grpc.pb.o greeter_async_client2.o
+	$(CXX) $^ $(LDFLAGS) -o $@
+
 greeter_async_server: helloworld.pb.o helloworld.grpc.pb.o greeter_async_server.o
 	$(CXX) $^ $(LDFLAGS) -o $@
 
@@ -64,7 +67,7 @@
 	$(PROTOC) -I $(PROTOS_PATH) --cpp_out=. $<
 
 clean:
-	rm -f *.o *.pb.cc *.pb.h greeter_client greeter_server greeter_async_client greeter_async_server
+	rm -f *.o *.pb.cc *.pb.h greeter_client greeter_server greeter_async_client greeter_async_client2 greeter_async_server
 
 
 # The following is to test your system and ensure a smoother experience.
diff --git a/examples/cpp/helloworld/greeter_async_client.cc b/examples/cpp/helloworld/greeter_async_client.cc
index 3501426..c1f5eb5 100644
--- a/examples/cpp/helloworld/greeter_async_client.cc
+++ b/examples/cpp/helloworld/greeter_async_client.cc
@@ -53,7 +53,7 @@
   explicit GreeterClient(std::shared_ptr<Channel> channel)
       : stub_(Greeter::NewStub(channel)) {}
 
-  // Assambles the client's payload, sends it and presents the response back
+  // Assembles the client's payload, sends it and presents the response back
   // from the server.
   std::string SayHello(const std::string& user) {
     // Data we are sending to the server.
@@ -74,9 +74,9 @@
     // Storage for the status of the RPC upon completion.
     Status status;
 
-    // stub_->AsyncSayHello() perform the RPC call, returning an instance we
-    // store in "rpc". Because we are using the asynchronous API, we need the
-    // hold on to the "rpc" instance in order to get updates on the ongoig RPC.
+    // stub_->AsyncSayHello() performs the RPC call, returning an instance we
+    // store in "rpc". Because we are using the asynchronous API, we need to
+    // hold on to the "rpc" instance in order to get updates on the ongoing RPC.
     std::unique_ptr<ClientAsyncResponseReader<HelloReply> > rpc(
         stub_->AsyncSayHello(&context, request, &cq));
 
diff --git a/examples/cpp/helloworld/greeter_async_client2.cc b/examples/cpp/helloworld/greeter_async_client2.cc
new file mode 100644
index 0000000..0902376
--- /dev/null
+++ b/examples/cpp/helloworld/greeter_async_client2.cc
@@ -0,0 +1,153 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <iostream>
+#include <memory>
+#include <string>
+
+#include <grpc++/grpc++.h>
+#include <thread>
+
+#include "helloworld.grpc.pb.h"
+
+using grpc::Channel;
+using grpc::ClientAsyncResponseReader;
+using grpc::ClientContext;
+using grpc::CompletionQueue;
+using grpc::Status;
+using helloworld::HelloRequest;
+using helloworld::HelloReply;
+using helloworld::Greeter;
+
+class GreeterClient {
+  public:
+    explicit GreeterClient(std::shared_ptr<Channel> channel)
+            : stub_(Greeter::NewStub(channel)) {}
+
+    // Assembles the client's payload and sends it to the server.
+    void SayHello(const std::string& user) {
+        // Data we are sending to the server.
+        HelloRequest request;
+        request.set_name(user);
+
+        // Call object to store rpc data
+        AsyncClientCall* call = new AsyncClientCall;
+
+        // stub_->AsyncSayHello() performs the RPC call, returning an instance to
+        // store in "call". Because we are using the asynchronous API, we need to
+        // hold on to the "call" instance in order to get updates on the ongoing RPC.
+        call->response_reader = stub_->AsyncSayHello(&call->context, request, &cq_);
+
+
+        // Request that, upon completion of the RPC, "reply" be updated with the
+        // server's response; "status" with the indication of whether the operation
+        // was successful. Tag the request with the memory address of the call object.
+        call->response_reader->Finish(&call->reply, &call->status, (void*)call);
+
+    }
+
+    // Loop while listening for completed responses.
+    // Prints out the response from the server.
+    void AsyncCompleteRpc() {
+        void* got_tag;
+        bool ok = false;
+
+        // Block until the next result is available in the completion queue "cq".
+        while (cq_.Next(&got_tag, &ok)) {
+            // The tag in this example is the memory location of the call object
+            AsyncClientCall* call = static_cast<AsyncClientCall*>(got_tag);
+
+            // Verify that the request was completed successfully. Note that "ok"
+            // corresponds solely to the request for updates introduced by Finish().
+            GPR_ASSERT(ok);
+
+            if (call->status.ok())
+                std::cout << "Greeter received: " << call->reply.message() << std::endl;
+            else
+                std::cout << "RPC failed" << std::endl;
+
+            // Once we're complete, deallocate the call object.
+            delete call;
+        }
+    }
+
+  private:
+
+    // struct for keeping state and data information
+    struct AsyncClientCall {
+        // Container for the data we expect from the server.
+        HelloReply reply;
+
+        // Context for the client. It could be used to convey extra information to
+        // the server and/or tweak certain RPC behaviors.
+        ClientContext context;
+
+        // Storage for the status of the RPC upon completion.
+        Status status;
+
+
+        std::unique_ptr<ClientAsyncResponseReader<HelloReply>> response_reader;
+    };
+
+    // Out of the passed in Channel comes the stub, stored here, our view of the
+    // server's exposed services.
+    std::unique_ptr<Greeter::Stub> stub_;
+
+    // The producer-consumer queue we use to communicate asynchronously with the
+    // gRPC runtime.
+    CompletionQueue cq_;
+};
+
+int main(int argc, char** argv) {
+
+
+    // Instantiate the client. It requires a channel, out of which the actual RPCs
+    // are created. This channel models a connection to an endpoint (in this case,
+    // localhost at port 50051). We indicate that the channel isn't authenticated
+    // (use of InsecureChannelCredentials()).
+    GreeterClient greeter(grpc::CreateChannel(
+            "localhost:50051", grpc::InsecureChannelCredentials()));
+
+    // Spawn reader thread that loops indefinitely
+    std::thread thread_ = std::thread(&GreeterClient::AsyncCompleteRpc, &greeter);
+
+    for (int i = 0; i < 100; i++) {
+        std::string user("world " + std::to_string(i));
+        greeter.SayHello(user);  // The actual RPC call!
+    }
+
+    std::cout << "Press control-c to quit" << std::endl << std::endl;
+    thread_.join();  //blocks forever
+
+    return 0;
+}
diff --git a/examples/node/README.md b/examples/node/README.md
index 2887883..59fb4a1 100644
--- a/examples/node/README.md
+++ b/examples/node/README.md
@@ -22,18 +22,24 @@
 TRY IT!
 -------
 
+There are two ways to generate the code needed to work with protocol buffers in Node.js - one approach uses [Protobuf.js](https://github.com/dcodeIO/ProtoBuf.js/) to dynamically generate the code at runtime, the other uses code statically generated using the protocol buffer compiler `protoc`. The examples behave identically, and either server can be used with either client.
+
  - Run the server
 
    ```sh
    $ # from this directory
-   $ node ./greeter_server.js &
+   $ node ./dynamic_codegen/greeter_server.js &
+   $ # OR
+   $ node ./static_codegen/greeter_server.js &
    ```
 
  - Run the client
 
    ```sh
    $ # from this directory
-   $ node ./greeter_client.js
+   $ node ./dynamic_codegen/greeter_client.js
+   $ # OR
+   $ node ./dynamic_codegen/greeter_client.js
    ```
 
 TUTORIAL
diff --git a/examples/node/dynamic_codegen/README.md b/examples/node/dynamic_codegen/README.md
new file mode 100644
index 0000000..1a6ec17
--- /dev/null
+++ b/examples/node/dynamic_codegen/README.md
@@ -0,0 +1 @@
+This is the dynamic code generation variant of the Node examples. Code in these examples is generated at runtime using Protobuf.js.
diff --git a/examples/node/greeter_client.js b/examples/node/dynamic_codegen/greeter_client.js
similarity index 96%
rename from examples/node/greeter_client.js
rename to examples/node/dynamic_codegen/greeter_client.js
index 2820acb..e24fb07 100644
--- a/examples/node/greeter_client.js
+++ b/examples/node/dynamic_codegen/greeter_client.js
@@ -31,7 +31,7 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+var PROTO_PATH = __dirname + '/../../protos/helloworld.proto';
 
 var grpc = require('grpc');
 var hello_proto = grpc.load(PROTO_PATH).helloworld;
diff --git a/examples/node/greeter_server.js b/examples/node/dynamic_codegen/greeter_server.js
similarity index 96%
rename from examples/node/greeter_server.js
rename to examples/node/dynamic_codegen/greeter_server.js
index e7ad51f..aa43e4c 100644
--- a/examples/node/greeter_server.js
+++ b/examples/node/dynamic_codegen/greeter_server.js
@@ -31,7 +31,7 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+var PROTO_PATH = __dirname + '/../../protos/helloworld.proto';
 
 var grpc = require('grpc');
 var hello_proto = grpc.load(PROTO_PATH).helloworld;
diff --git a/examples/node/route_guide/README.md b/examples/node/dynamic_codegen/route_guide/README.md
similarity index 100%
copy from examples/node/route_guide/README.md
copy to examples/node/dynamic_codegen/route_guide/README.md
diff --git a/examples/node/route_guide/route_guide_client.js b/examples/node/dynamic_codegen/route_guide/route_guide_client.js
similarity index 98%
rename from examples/node/route_guide/route_guide_client.js
rename to examples/node/dynamic_codegen/route_guide/route_guide_client.js
index fd05a59..775b9ad 100644
--- a/examples/node/route_guide/route_guide_client.js
+++ b/examples/node/dynamic_codegen/route_guide/route_guide_client.js
@@ -31,7 +31,7 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../../protos/route_guide.proto';
+var PROTO_PATH = __dirname + '/../../../protos/route_guide.proto';
 
 var async = require('async');
 var fs = require('fs');
diff --git a/examples/node/route_guide/route_guide_db.json b/examples/node/dynamic_codegen/route_guide/route_guide_db.json
similarity index 100%
copy from examples/node/route_guide/route_guide_db.json
copy to examples/node/dynamic_codegen/route_guide/route_guide_db.json
diff --git a/examples/node/route_guide/route_guide_server.js b/examples/node/dynamic_codegen/route_guide/route_guide_server.js
similarity index 98%
rename from examples/node/route_guide/route_guide_server.js
rename to examples/node/dynamic_codegen/route_guide/route_guide_server.js
index 6c01fac..6d59348 100644
--- a/examples/node/route_guide/route_guide_server.js
+++ b/examples/node/dynamic_codegen/route_guide/route_guide_server.js
@@ -31,7 +31,7 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../../protos/route_guide.proto';
+var PROTO_PATH = __dirname + '/../../../protos/route_guide.proto';
 
 var fs = require('fs');
 var parseArgs = require('minimist');
diff --git a/examples/node/package.json b/examples/node/package.json
index d135df2..2cae031 100644
--- a/examples/node/package.json
+++ b/examples/node/package.json
@@ -3,7 +3,8 @@
   "version": "0.1.0",
   "dependencies": {
     "async": "^1.5.2",
-    "grpc": "0.13.0",
+    "google-protobuf": "^3.0.0-alpha.5",
+    "grpc": "^0.14.0",
     "lodash": "^4.6.1",
     "minimist": "^1.2.0"
   }
diff --git a/examples/node/static_codegen/README.md b/examples/node/static_codegen/README.md
new file mode 100644
index 0000000..fc97d34
--- /dev/null
+++ b/examples/node/static_codegen/README.md
@@ -0,0 +1,7 @@
+This is the static code generation variant of the Node examples. Code in these examples is pre-generated using protoc and the Node gRPC protoc plugin, and the generated code can be found in various `*_pb.js` files. The command line sequence for generating those files is as follows (assuming that `protoc` and `grpc_node_plugin` are present, and starting in the base directory of this package):
+
+```sh
+cd ../protos
+protoc --js_out=import_style=commonjs,binary:../node/static_codegen/ --grpc_out=../node/static_codegen --plugin=protoc-gen-grpc=grpc_node_plugin helloworld.proto
+protoc --js_out=import_style=commonjs,binary:../node/static_codegen/route_guide/ --grpc_out=../node/static_codegen/route_guide/ --plugin=protoc-gen-grpc=grpc_node_plugin route_guide.proto
+```
diff --git a/examples/node/greeter_client.js b/examples/node/static_codegen/greeter_client.js
similarity index 80%
copy from examples/node/greeter_client.js
copy to examples/node/static_codegen/greeter_client.js
index 2820acb..da80cf3 100644
--- a/examples/node/greeter_client.js
+++ b/examples/node/static_codegen/greeter_client.js
@@ -31,22 +31,24 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+var messages = require('./helloworld_pb');
+var services = require('./helloworld_grpc_pb');
 
 var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
 
 function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
+  var client = new services.GreeterClient('localhost:50051',
+                                          grpc.credentials.createInsecure());
   var user;
   if (process.argv.length >= 3) {
     user = process.argv[2];
   } else {
     user = 'world';
   }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
+  var request = new messages.HelloRequest();
+  request.setName(user);
+  client.sayHello(request, function(err, response) {
+    console.log('Greeting:', response.getMessage());
   });
 }
 
diff --git a/examples/node/greeter_server.js b/examples/node/static_codegen/greeter_server.js
similarity index 87%
copy from examples/node/greeter_server.js
copy to examples/node/static_codegen/greeter_server.js
index e7ad51f..a1591b8 100644
--- a/examples/node/greeter_server.js
+++ b/examples/node/static_codegen/greeter_server.js
@@ -31,16 +31,18 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+var messages = require('./helloworld_pb');
+var services = require('./helloworld_grpc_pb');
 
 var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
 
 /**
  * Implements the SayHello RPC method.
  */
 function sayHello(call, callback) {
-  callback(null, {message: 'Hello ' + call.request.name});
+  var reply = new messages.HelloReply();
+  reply.setMessage('Hello ' + call.request.getName());
+  callback(null, reply);
 }
 
 /**
@@ -49,7 +51,7 @@
  */
 function main() {
   var server = new grpc.Server();
-  server.addProtoService(hello_proto.Greeter.service, {sayHello: sayHello});
+  server.addService(services.GreeterService, {sayHello: sayHello});
   server.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure());
   server.start();
 }
diff --git a/examples/node/static_codegen/helloworld_grpc_pb.js b/examples/node/static_codegen/helloworld_grpc_pb.js
new file mode 100644
index 0000000..846f8b6
--- /dev/null
+++ b/examples/node/static_codegen/helloworld_grpc_pb.js
@@ -0,0 +1,44 @@
+// GENERATED CODE -- DO NOT EDIT!
+
+'use strict';
+var grpc = require('grpc');
+var helloworld_pb = require('./helloworld_pb.js');
+
+function serialize_HelloReply(arg) {
+  if (!(arg instanceof helloworld_pb.HelloReply)) {
+    throw new Error('Expected argument of type HelloReply');
+  }
+  return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_HelloReply(buffer_arg) {
+  return helloworld_pb.HelloReply.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_HelloRequest(arg) {
+  if (!(arg instanceof helloworld_pb.HelloRequest)) {
+    throw new Error('Expected argument of type HelloRequest');
+  }
+  return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_HelloRequest(buffer_arg) {
+  return helloworld_pb.HelloRequest.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+
+var GreeterService = exports.GreeterService = {
+  sayHello: {
+    path: '/helloworld.Greeter/SayHello',
+    requestStream: false,
+    responseStream: false,
+    requestType: helloworld_pb.HelloRequest,
+    responseType: helloworld_pb.HelloReply,
+    requestSerialize: serialize_HelloRequest,
+    requestDeserialize: deserialize_HelloRequest,
+    responseSerialize: serialize_HelloReply,
+    responseDeserialize: deserialize_HelloReply,
+  },
+};
+
+exports.GreeterClient = grpc.makeGenericClientConstructor(GreeterService);
diff --git a/examples/node/static_codegen/helloworld_pb.js b/examples/node/static_codegen/helloworld_pb.js
new file mode 100644
index 0000000..6405bd9
--- /dev/null
+++ b/examples/node/static_codegen/helloworld_pb.js
@@ -0,0 +1,332 @@
+/**
+ * @fileoverview
+ * @enhanceable
+ * @public
+ */
+// GENERATED CODE -- DO NOT EDIT!
+
+var jspb = require('google-protobuf');
+var goog = jspb;
+var global = Function('return this')();
+
+goog.exportSymbol('proto.helloworld.HelloReply', null, global);
+goog.exportSymbol('proto.helloworld.HelloRequest', null, global);
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.helloworld.HelloRequest = function(opt_data) {
+  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.helloworld.HelloRequest, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+  proto.helloworld.HelloRequest.displayName = 'proto.helloworld.HelloRequest';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ *     for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.helloworld.HelloRequest.prototype.toObject = function(opt_includeInstance) {
+  return proto.helloworld.HelloRequest.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ *     instance for transitional soy proto support:
+ *     http://goto/soy-param-migration
+ * @param {!proto.helloworld.HelloRequest} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.helloworld.HelloRequest.toObject = function(includeInstance, msg) {
+  var f, obj = {
+    name: msg.getName()
+  };
+
+  if (includeInstance) {
+    obj.$jspbMessageInstance = msg
+  }
+  return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.helloworld.HelloRequest}
+ */
+proto.helloworld.HelloRequest.deserializeBinary = function(bytes) {
+  var reader = new jspb.BinaryReader(bytes);
+  var msg = new proto.helloworld.HelloRequest;
+  return proto.helloworld.HelloRequest.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.helloworld.HelloRequest} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.helloworld.HelloRequest}
+ */
+proto.helloworld.HelloRequest.deserializeBinaryFromReader = function(msg, reader) {
+  while (reader.nextField()) {
+    if (reader.isEndGroup()) {
+      break;
+    }
+    var field = reader.getFieldNumber();
+    switch (field) {
+    case 1:
+      var value = /** @type {string} */ (reader.readString());
+      msg.setName(value);
+      break;
+    default:
+      reader.skipField();
+      break;
+    }
+  }
+  return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.helloworld.HelloRequest} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.helloworld.HelloRequest.serializeBinaryToWriter = function(message, writer) {
+  message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.helloworld.HelloRequest.prototype.serializeBinary = function() {
+  var writer = new jspb.BinaryWriter();
+  this.serializeBinaryToWriter(writer);
+  return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.helloworld.HelloRequest.prototype.serializeBinaryToWriter = function (writer) {
+  var f = undefined;
+  f = this.getName();
+  if (f.length > 0) {
+    writer.writeString(
+      1,
+      f
+    );
+  }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.helloworld.HelloRequest} The clone.
+ */
+proto.helloworld.HelloRequest.prototype.cloneMessage = function() {
+  return /** @type {!proto.helloworld.HelloRequest} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional string name = 1;
+ * @return {string}
+ */
+proto.helloworld.HelloRequest.prototype.getName = function() {
+  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
+};
+
+
+/** @param {string} value  */
+proto.helloworld.HelloRequest.prototype.setName = function(value) {
+  jspb.Message.setField(this, 1, value);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.helloworld.HelloReply = function(opt_data) {
+  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.helloworld.HelloReply, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+  proto.helloworld.HelloReply.displayName = 'proto.helloworld.HelloReply';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ *     for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.helloworld.HelloReply.prototype.toObject = function(opt_includeInstance) {
+  return proto.helloworld.HelloReply.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ *     instance for transitional soy proto support:
+ *     http://goto/soy-param-migration
+ * @param {!proto.helloworld.HelloReply} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.helloworld.HelloReply.toObject = function(includeInstance, msg) {
+  var f, obj = {
+    message: msg.getMessage()
+  };
+
+  if (includeInstance) {
+    obj.$jspbMessageInstance = msg
+  }
+  return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.helloworld.HelloReply}
+ */
+proto.helloworld.HelloReply.deserializeBinary = function(bytes) {
+  var reader = new jspb.BinaryReader(bytes);
+  var msg = new proto.helloworld.HelloReply;
+  return proto.helloworld.HelloReply.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.helloworld.HelloReply} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.helloworld.HelloReply}
+ */
+proto.helloworld.HelloReply.deserializeBinaryFromReader = function(msg, reader) {
+  while (reader.nextField()) {
+    if (reader.isEndGroup()) {
+      break;
+    }
+    var field = reader.getFieldNumber();
+    switch (field) {
+    case 1:
+      var value = /** @type {string} */ (reader.readString());
+      msg.setMessage(value);
+      break;
+    default:
+      reader.skipField();
+      break;
+    }
+  }
+  return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.helloworld.HelloReply} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.helloworld.HelloReply.serializeBinaryToWriter = function(message, writer) {
+  message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.helloworld.HelloReply.prototype.serializeBinary = function() {
+  var writer = new jspb.BinaryWriter();
+  this.serializeBinaryToWriter(writer);
+  return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.helloworld.HelloReply.prototype.serializeBinaryToWriter = function (writer) {
+  var f = undefined;
+  f = this.getMessage();
+  if (f.length > 0) {
+    writer.writeString(
+      1,
+      f
+    );
+  }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.helloworld.HelloReply} The clone.
+ */
+proto.helloworld.HelloReply.prototype.cloneMessage = function() {
+  return /** @type {!proto.helloworld.HelloReply} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional string message = 1;
+ * @return {string}
+ */
+proto.helloworld.HelloReply.prototype.getMessage = function() {
+  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
+};
+
+
+/** @param {string} value  */
+proto.helloworld.HelloReply.prototype.setMessage = function(value) {
+  jspb.Message.setField(this, 1, value);
+};
+
+
+goog.object.extend(exports, proto.helloworld);
diff --git a/examples/node/route_guide/README.md b/examples/node/static_codegen/route_guide/README.md
similarity index 100%
rename from examples/node/route_guide/README.md
rename to examples/node/static_codegen/route_guide/README.md
diff --git a/examples/node/route_guide/route_guide_client.js b/examples/node/static_codegen/route_guide/route_guide_client.js
similarity index 66%
copy from examples/node/route_guide/route_guide_client.js
copy to examples/node/static_codegen/route_guide/route_guide_client.js
index fd05a59..ecde786 100644
--- a/examples/node/route_guide/route_guide_client.js
+++ b/examples/node/static_codegen/route_guide/route_guide_client.js
@@ -31,7 +31,8 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../../protos/route_guide.proto';
+var messages = require('./route_guide_pb');
+var services = require('./route_guide_grpc_pb');
 
 var async = require('async');
 var fs = require('fs');
@@ -39,9 +40,9 @@
 var path = require('path');
 var _ = require('lodash');
 var grpc = require('grpc');
-var routeguide = grpc.load(PROTO_PATH).routeguide;
-var client = new routeguide.RouteGuide('localhost:50051',
-                                       grpc.credentials.createInsecure());
+
+var client = new services.RouteGuideClient('localhost:50051',
+                                           grpc.credentials.createInsecure());
 
 var COORD_FACTOR = 1e7;
 
@@ -56,25 +57,23 @@
     if (error) {
       callback(error);
     }
-    if (feature.name === '') {
+    var latitude = feature.getLocation().getLatitude();
+    var longitude = feature.getLocation().getLongitude();
+    if (feature.getName() === '') {
       console.log('Found no feature at ' +
-          feature.location.latitude/COORD_FACTOR + ', ' +
-          feature.location.longitude/COORD_FACTOR);
+          latitude/COORD_FACTOR + ', ' + longitude/COORD_FACTOR);
     } else {
-      console.log('Found feature called "' + feature.name + '" at ' +
-          feature.location.latitude/COORD_FACTOR + ', ' +
-          feature.location.longitude/COORD_FACTOR);
+      console.log('Found feature called "' + feature.getName() + '" at ' +
+          latitude/COORD_FACTOR + ', ' + longitude/COORD_FACTOR);
     }
     next();
   }
-  var point1 = {
-    latitude: 409146138,
-    longitude: -746188906
-  };
-  var point2 = {
-    latitude: 0,
-    longitude: 0
-  };
+  var point1 = new messages.Point();
+  point1.setLatitude(409146138);
+  point1.setLongitude(-746188906);
+  var point2 = new messages.Point();
+  point2.setLatitude(0);
+  point2.setLongitude(0);
   client.getFeature(point1, featureCallback);
   client.getFeature(point2, featureCallback);
 }
@@ -86,22 +85,21 @@
  * @param {function} callback Called when this demo is complete
  */
 function runListFeatures(callback) {
-  var rectangle = {
-    lo: {
-      latitude: 400000000,
-      longitude: -750000000
-    },
-    hi: {
-      latitude: 420000000,
-      longitude: -730000000
-    }
-  };
+  var rect = new messages.Rectangle();
+  var lo = new messages.Point();
+  lo.setLatitude(400000000);
+  lo.setLongitude(-750000000);
+  rect.setLo(lo);
+  var hi = new messages.Point();
+  hi.setLatitude(420000000);
+  hi.setLongitude(-730000000);
+  rect.setHi(hi);
   console.log('Looking for features between 40, -75 and 42, -73');
-  var call = client.listFeatures(rectangle);
+  var call = client.listFeatures(rect);
   call.on('data', function(feature) {
-      console.log('Found feature called "' + feature.name + '" at ' +
-          feature.location.latitude/COORD_FACTOR + ', ' +
-          feature.location.longitude/COORD_FACTOR);
+      console.log('Found feature called "' + feature.getName() + '" at ' +
+          feature.getLocation().getLatitude()/COORD_FACTOR + ', ' +
+          feature.getLocation().getLongitude()/COORD_FACTOR);
   });
   call.on('end', callback);
 }
@@ -118,46 +116,50 @@
   });
   fs.readFile(path.resolve(argv.db_path), function(err, data) {
     if (err) callback(err);
-    var feature_list = JSON.parse(data);
+    // Transform the loaded features to Feature objects
+    var feature_list = _.map(JSON.parse(data), function(value) {
+      var feature = new messages.Feature();
+      feature.setName(value.name);
+      var location = new messages.Point();
+      location.setLatitude(value.location.latitude);
+      location.setLongitude(value.location.longitude);
+      feature.setLocation(location);
+      return feature;
+    });
 
     var num_points = 10;
     var call = client.recordRoute(function(error, stats) {
       if (error) {
         callback(error);
       }
-      console.log('Finished trip with', stats.point_count, 'points');
-      console.log('Passed', stats.feature_count, 'features');
-      console.log('Travelled', stats.distance, 'meters');
-      console.log('It took', stats.elapsed_time, 'seconds');
+      console.log('Finished trip with', stats.getPointCount(), 'points');
+      console.log('Passed', stats.getFeatureCount(), 'features');
+      console.log('Travelled', stats.getDistance(), 'meters');
+      console.log('It took', stats.getElapsedTime(), 'seconds');
       callback();
     });
     /**
      * Constructs a function that asynchronously sends the given point and then
      * delays sending its callback
-     * @param {number} lat The latitude to send
-     * @param {number} lng The longitude to send
+     * @param {messages.Point} location The point to send
      * @return {function(function)} The function that sends the point
      */
-    function pointSender(lat, lng) {
+    function pointSender(location) {
       /**
        * Sends the point, then calls the callback after a delay
        * @param {function} callback Called when complete
        */
       return function(callback) {
-        console.log('Visiting point ' + lat/COORD_FACTOR + ', ' +
-            lng/COORD_FACTOR);
-        call.write({
-          latitude: lat,
-          longitude: lng
-        });
+        console.log('Visiting point ' + location.getLatitude()/COORD_FACTOR +
+            ', ' + location.getLongitude()/COORD_FACTOR);
+        call.write(location);
         _.delay(callback, _.random(500, 1500));
       };
     }
     var point_senders = [];
     for (var i = 0; i < num_points; i++) {
       var rand_point = feature_list[_.random(0, feature_list.length - 1)];
-      point_senders[i] = pointSender(rand_point.location.latitude,
-                                     rand_point.location.longitude);
+      point_senders[i] = pointSender(rand_point.getLocation());
     }
     async.series(point_senders, function() {
       call.end();
@@ -173,8 +175,9 @@
 function runRouteChat(callback) {
   var call = client.routeChat();
   call.on('data', function(note) {
-    console.log('Got message "' + note.message + '" at ' +
-        note.location.latitude + ', ' + note.location.longitude);
+    console.log('Got message "' + note.getMessage() + '" at ' +
+        note.getLocation().getLatitude() + ', ' +
+        note.getLocation().getLongitude());
   });
 
   call.on('end', callback);
@@ -208,7 +211,13 @@
     var note = notes[i];
     console.log('Sending message "' + note.message + '" at ' +
         note.location.latitude + ', ' + note.location.longitude);
-    call.write(note);
+    var noteMsg = new messages.RouteNote();
+    noteMsg.setMessage(note.message);
+    var location = new messages.Point();
+    location.setLatitude(note.location.latitude);
+    location.setLongitude(note.location.longitude);
+    noteMsg.setLocation(location);
+    call.write(noteMsg);
   }
   call.end();
 }
diff --git a/examples/node/route_guide/route_guide_db.json b/examples/node/static_codegen/route_guide/route_guide_db.json
similarity index 100%
rename from examples/node/route_guide/route_guide_db.json
rename to examples/node/static_codegen/route_guide/route_guide_db.json
diff --git a/examples/node/static_codegen/route_guide/route_guide_grpc_pb.js b/examples/node/static_codegen/route_guide/route_guide_grpc_pb.js
new file mode 100644
index 0000000..1dd7133
--- /dev/null
+++ b/examples/node/static_codegen/route_guide/route_guide_grpc_pb.js
@@ -0,0 +1,110 @@
+// GENERATED CODE -- DO NOT EDIT!
+
+'use strict';
+var grpc = require('grpc');
+var route_guide_pb = require('./route_guide_pb.js');
+
+function serialize_Feature(arg) {
+  if (!(arg instanceof route_guide_pb.Feature)) {
+    throw new Error('Expected argument of type Feature');
+  }
+  return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_Feature(buffer_arg) {
+  return route_guide_pb.Feature.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_Point(arg) {
+  if (!(arg instanceof route_guide_pb.Point)) {
+    throw new Error('Expected argument of type Point');
+  }
+  return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_Point(buffer_arg) {
+  return route_guide_pb.Point.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_Rectangle(arg) {
+  if (!(arg instanceof route_guide_pb.Rectangle)) {
+    throw new Error('Expected argument of type Rectangle');
+  }
+  return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_Rectangle(buffer_arg) {
+  return route_guide_pb.Rectangle.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_RouteNote(arg) {
+  if (!(arg instanceof route_guide_pb.RouteNote)) {
+    throw new Error('Expected argument of type RouteNote');
+  }
+  return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_RouteNote(buffer_arg) {
+  return route_guide_pb.RouteNote.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+function serialize_RouteSummary(arg) {
+  if (!(arg instanceof route_guide_pb.RouteSummary)) {
+    throw new Error('Expected argument of type RouteSummary');
+  }
+  return new Buffer(arg.serializeBinary());
+}
+
+function deserialize_RouteSummary(buffer_arg) {
+  return route_guide_pb.RouteSummary.deserializeBinary(new Uint8Array(buffer_arg));
+}
+
+
+var RouteGuideService = exports.RouteGuideService = {
+  getFeature: {
+    path: '/routeguide.RouteGuide/GetFeature',
+    requestStream: false,
+    responseStream: false,
+    requestType: route_guide_pb.Point,
+    responseType: route_guide_pb.Feature,
+    requestSerialize: serialize_Point,
+    requestDeserialize: deserialize_Point,
+    responseSerialize: serialize_Feature,
+    responseDeserialize: deserialize_Feature,
+  },
+  listFeatures: {
+    path: '/routeguide.RouteGuide/ListFeatures',
+    requestStream: false,
+    responseStream: true,
+    requestType: route_guide_pb.Rectangle,
+    responseType: route_guide_pb.Feature,
+    requestSerialize: serialize_Rectangle,
+    requestDeserialize: deserialize_Rectangle,
+    responseSerialize: serialize_Feature,
+    responseDeserialize: deserialize_Feature,
+  },
+  recordRoute: {
+    path: '/routeguide.RouteGuide/RecordRoute',
+    requestStream: true,
+    responseStream: false,
+    requestType: route_guide_pb.Point,
+    responseType: route_guide_pb.RouteSummary,
+    requestSerialize: serialize_Point,
+    requestDeserialize: deserialize_Point,
+    responseSerialize: serialize_RouteSummary,
+    responseDeserialize: deserialize_RouteSummary,
+  },
+  routeChat: {
+    path: '/routeguide.RouteGuide/RouteChat',
+    requestStream: true,
+    responseStream: true,
+    requestType: route_guide_pb.RouteNote,
+    responseType: route_guide_pb.RouteNote,
+    requestSerialize: serialize_RouteNote,
+    requestDeserialize: deserialize_RouteNote,
+    responseSerialize: serialize_RouteNote,
+    responseDeserialize: deserialize_RouteNote,
+  },
+};
+
+exports.RouteGuideClient = grpc.makeGenericClientConstructor(RouteGuideService);
diff --git a/examples/node/static_codegen/route_guide/route_guide_pb.js b/examples/node/static_codegen/route_guide/route_guide_pb.js
new file mode 100644
index 0000000..f604cd6
--- /dev/null
+++ b/examples/node/static_codegen/route_guide/route_guide_pb.js
@@ -0,0 +1,1033 @@
+/**
+ * @fileoverview
+ * @enhanceable
+ * @public
+ */
+// GENERATED CODE -- DO NOT EDIT!
+
+var jspb = require('google-protobuf');
+var goog = jspb;
+var global = Function('return this')();
+
+goog.exportSymbol('proto.routeguide.Feature', null, global);
+goog.exportSymbol('proto.routeguide.Point', null, global);
+goog.exportSymbol('proto.routeguide.Rectangle', null, global);
+goog.exportSymbol('proto.routeguide.RouteNote', null, global);
+goog.exportSymbol('proto.routeguide.RouteSummary', null, global);
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.Point = function(opt_data) {
+  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.Point, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+  proto.routeguide.Point.displayName = 'proto.routeguide.Point';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ *     for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.Point.prototype.toObject = function(opt_includeInstance) {
+  return proto.routeguide.Point.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ *     instance for transitional soy proto support:
+ *     http://goto/soy-param-migration
+ * @param {!proto.routeguide.Point} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.Point.toObject = function(includeInstance, msg) {
+  var f, obj = {
+    latitude: msg.getLatitude(),
+    longitude: msg.getLongitude()
+  };
+
+  if (includeInstance) {
+    obj.$jspbMessageInstance = msg
+  }
+  return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.Point}
+ */
+proto.routeguide.Point.deserializeBinary = function(bytes) {
+  var reader = new jspb.BinaryReader(bytes);
+  var msg = new proto.routeguide.Point;
+  return proto.routeguide.Point.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.Point} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.Point}
+ */
+proto.routeguide.Point.deserializeBinaryFromReader = function(msg, reader) {
+  while (reader.nextField()) {
+    if (reader.isEndGroup()) {
+      break;
+    }
+    var field = reader.getFieldNumber();
+    switch (field) {
+    case 1:
+      var value = /** @type {number} */ (reader.readInt32());
+      msg.setLatitude(value);
+      break;
+    case 2:
+      var value = /** @type {number} */ (reader.readInt32());
+      msg.setLongitude(value);
+      break;
+    default:
+      reader.skipField();
+      break;
+    }
+  }
+  return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.Point} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Point.serializeBinaryToWriter = function(message, writer) {
+  message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.Point.prototype.serializeBinary = function() {
+  var writer = new jspb.BinaryWriter();
+  this.serializeBinaryToWriter(writer);
+  return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Point.prototype.serializeBinaryToWriter = function (writer) {
+  var f = undefined;
+  f = this.getLatitude();
+  if (f !== 0) {
+    writer.writeInt32(
+      1,
+      f
+    );
+  }
+  f = this.getLongitude();
+  if (f !== 0) {
+    writer.writeInt32(
+      2,
+      f
+    );
+  }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.Point} The clone.
+ */
+proto.routeguide.Point.prototype.cloneMessage = function() {
+  return /** @type {!proto.routeguide.Point} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional int32 latitude = 1;
+ * @return {number}
+ */
+proto.routeguide.Point.prototype.getLatitude = function() {
+  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0));
+};
+
+
+/** @param {number} value  */
+proto.routeguide.Point.prototype.setLatitude = function(value) {
+  jspb.Message.setField(this, 1, value);
+};
+
+
+/**
+ * optional int32 longitude = 2;
+ * @return {number}
+ */
+proto.routeguide.Point.prototype.getLongitude = function() {
+  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
+};
+
+
+/** @param {number} value  */
+proto.routeguide.Point.prototype.setLongitude = function(value) {
+  jspb.Message.setField(this, 2, value);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.Rectangle = function(opt_data) {
+  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.Rectangle, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+  proto.routeguide.Rectangle.displayName = 'proto.routeguide.Rectangle';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ *     for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.Rectangle.prototype.toObject = function(opt_includeInstance) {
+  return proto.routeguide.Rectangle.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ *     instance for transitional soy proto support:
+ *     http://goto/soy-param-migration
+ * @param {!proto.routeguide.Rectangle} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.Rectangle.toObject = function(includeInstance, msg) {
+  var f, obj = {
+    lo: (f = msg.getLo()) && proto.routeguide.Point.toObject(includeInstance, f),
+    hi: (f = msg.getHi()) && proto.routeguide.Point.toObject(includeInstance, f)
+  };
+
+  if (includeInstance) {
+    obj.$jspbMessageInstance = msg
+  }
+  return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.Rectangle}
+ */
+proto.routeguide.Rectangle.deserializeBinary = function(bytes) {
+  var reader = new jspb.BinaryReader(bytes);
+  var msg = new proto.routeguide.Rectangle;
+  return proto.routeguide.Rectangle.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.Rectangle} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.Rectangle}
+ */
+proto.routeguide.Rectangle.deserializeBinaryFromReader = function(msg, reader) {
+  while (reader.nextField()) {
+    if (reader.isEndGroup()) {
+      break;
+    }
+    var field = reader.getFieldNumber();
+    switch (field) {
+    case 1:
+      var value = new proto.routeguide.Point;
+      reader.readMessage(value,proto.routeguide.Point.deserializeBinaryFromReader);
+      msg.setLo(value);
+      break;
+    case 2:
+      var value = new proto.routeguide.Point;
+      reader.readMessage(value,proto.routeguide.Point.deserializeBinaryFromReader);
+      msg.setHi(value);
+      break;
+    default:
+      reader.skipField();
+      break;
+    }
+  }
+  return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.Rectangle} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Rectangle.serializeBinaryToWriter = function(message, writer) {
+  message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.Rectangle.prototype.serializeBinary = function() {
+  var writer = new jspb.BinaryWriter();
+  this.serializeBinaryToWriter(writer);
+  return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Rectangle.prototype.serializeBinaryToWriter = function (writer) {
+  var f = undefined;
+  f = this.getLo();
+  if (f != null) {
+    writer.writeMessage(
+      1,
+      f,
+      proto.routeguide.Point.serializeBinaryToWriter
+    );
+  }
+  f = this.getHi();
+  if (f != null) {
+    writer.writeMessage(
+      2,
+      f,
+      proto.routeguide.Point.serializeBinaryToWriter
+    );
+  }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.Rectangle} The clone.
+ */
+proto.routeguide.Rectangle.prototype.cloneMessage = function() {
+  return /** @type {!proto.routeguide.Rectangle} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional Point lo = 1;
+ * @return {proto.routeguide.Point}
+ */
+proto.routeguide.Rectangle.prototype.getLo = function() {
+  return /** @type{proto.routeguide.Point} */ (
+    jspb.Message.getWrapperField(this, proto.routeguide.Point, 1));
+};
+
+
+/** @param {proto.routeguide.Point|undefined} value  */
+proto.routeguide.Rectangle.prototype.setLo = function(value) {
+  jspb.Message.setWrapperField(this, 1, value);
+};
+
+
+proto.routeguide.Rectangle.prototype.clearLo = function() {
+  this.setLo(undefined);
+};
+
+
+/**
+ * optional Point hi = 2;
+ * @return {proto.routeguide.Point}
+ */
+proto.routeguide.Rectangle.prototype.getHi = function() {
+  return /** @type{proto.routeguide.Point} */ (
+    jspb.Message.getWrapperField(this, proto.routeguide.Point, 2));
+};
+
+
+/** @param {proto.routeguide.Point|undefined} value  */
+proto.routeguide.Rectangle.prototype.setHi = function(value) {
+  jspb.Message.setWrapperField(this, 2, value);
+};
+
+
+proto.routeguide.Rectangle.prototype.clearHi = function() {
+  this.setHi(undefined);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.Feature = function(opt_data) {
+  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.Feature, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+  proto.routeguide.Feature.displayName = 'proto.routeguide.Feature';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ *     for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.Feature.prototype.toObject = function(opt_includeInstance) {
+  return proto.routeguide.Feature.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ *     instance for transitional soy proto support:
+ *     http://goto/soy-param-migration
+ * @param {!proto.routeguide.Feature} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.Feature.toObject = function(includeInstance, msg) {
+  var f, obj = {
+    name: msg.getName(),
+    location: (f = msg.getLocation()) && proto.routeguide.Point.toObject(includeInstance, f)
+  };
+
+  if (includeInstance) {
+    obj.$jspbMessageInstance = msg
+  }
+  return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.Feature}
+ */
+proto.routeguide.Feature.deserializeBinary = function(bytes) {
+  var reader = new jspb.BinaryReader(bytes);
+  var msg = new proto.routeguide.Feature;
+  return proto.routeguide.Feature.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.Feature} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.Feature}
+ */
+proto.routeguide.Feature.deserializeBinaryFromReader = function(msg, reader) {
+  while (reader.nextField()) {
+    if (reader.isEndGroup()) {
+      break;
+    }
+    var field = reader.getFieldNumber();
+    switch (field) {
+    case 1:
+      var value = /** @type {string} */ (reader.readString());
+      msg.setName(value);
+      break;
+    case 2:
+      var value = new proto.routeguide.Point;
+      reader.readMessage(value,proto.routeguide.Point.deserializeBinaryFromReader);
+      msg.setLocation(value);
+      break;
+    default:
+      reader.skipField();
+      break;
+    }
+  }
+  return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.Feature} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Feature.serializeBinaryToWriter = function(message, writer) {
+  message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.Feature.prototype.serializeBinary = function() {
+  var writer = new jspb.BinaryWriter();
+  this.serializeBinaryToWriter(writer);
+  return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.Feature.prototype.serializeBinaryToWriter = function (writer) {
+  var f = undefined;
+  f = this.getName();
+  if (f.length > 0) {
+    writer.writeString(
+      1,
+      f
+    );
+  }
+  f = this.getLocation();
+  if (f != null) {
+    writer.writeMessage(
+      2,
+      f,
+      proto.routeguide.Point.serializeBinaryToWriter
+    );
+  }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.Feature} The clone.
+ */
+proto.routeguide.Feature.prototype.cloneMessage = function() {
+  return /** @type {!proto.routeguide.Feature} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional string name = 1;
+ * @return {string}
+ */
+proto.routeguide.Feature.prototype.getName = function() {
+  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 1, ""));
+};
+
+
+/** @param {string} value  */
+proto.routeguide.Feature.prototype.setName = function(value) {
+  jspb.Message.setField(this, 1, value);
+};
+
+
+/**
+ * optional Point location = 2;
+ * @return {proto.routeguide.Point}
+ */
+proto.routeguide.Feature.prototype.getLocation = function() {
+  return /** @type{proto.routeguide.Point} */ (
+    jspb.Message.getWrapperField(this, proto.routeguide.Point, 2));
+};
+
+
+/** @param {proto.routeguide.Point|undefined} value  */
+proto.routeguide.Feature.prototype.setLocation = function(value) {
+  jspb.Message.setWrapperField(this, 2, value);
+};
+
+
+proto.routeguide.Feature.prototype.clearLocation = function() {
+  this.setLocation(undefined);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.RouteNote = function(opt_data) {
+  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.RouteNote, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+  proto.routeguide.RouteNote.displayName = 'proto.routeguide.RouteNote';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ *     for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.RouteNote.prototype.toObject = function(opt_includeInstance) {
+  return proto.routeguide.RouteNote.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ *     instance for transitional soy proto support:
+ *     http://goto/soy-param-migration
+ * @param {!proto.routeguide.RouteNote} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.RouteNote.toObject = function(includeInstance, msg) {
+  var f, obj = {
+    location: (f = msg.getLocation()) && proto.routeguide.Point.toObject(includeInstance, f),
+    message: msg.getMessage()
+  };
+
+  if (includeInstance) {
+    obj.$jspbMessageInstance = msg
+  }
+  return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.RouteNote}
+ */
+proto.routeguide.RouteNote.deserializeBinary = function(bytes) {
+  var reader = new jspb.BinaryReader(bytes);
+  var msg = new proto.routeguide.RouteNote;
+  return proto.routeguide.RouteNote.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.RouteNote} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.RouteNote}
+ */
+proto.routeguide.RouteNote.deserializeBinaryFromReader = function(msg, reader) {
+  while (reader.nextField()) {
+    if (reader.isEndGroup()) {
+      break;
+    }
+    var field = reader.getFieldNumber();
+    switch (field) {
+    case 1:
+      var value = new proto.routeguide.Point;
+      reader.readMessage(value,proto.routeguide.Point.deserializeBinaryFromReader);
+      msg.setLocation(value);
+      break;
+    case 2:
+      var value = /** @type {string} */ (reader.readString());
+      msg.setMessage(value);
+      break;
+    default:
+      reader.skipField();
+      break;
+    }
+  }
+  return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.RouteNote} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.RouteNote.serializeBinaryToWriter = function(message, writer) {
+  message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.RouteNote.prototype.serializeBinary = function() {
+  var writer = new jspb.BinaryWriter();
+  this.serializeBinaryToWriter(writer);
+  return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.RouteNote.prototype.serializeBinaryToWriter = function (writer) {
+  var f = undefined;
+  f = this.getLocation();
+  if (f != null) {
+    writer.writeMessage(
+      1,
+      f,
+      proto.routeguide.Point.serializeBinaryToWriter
+    );
+  }
+  f = this.getMessage();
+  if (f.length > 0) {
+    writer.writeString(
+      2,
+      f
+    );
+  }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.RouteNote} The clone.
+ */
+proto.routeguide.RouteNote.prototype.cloneMessage = function() {
+  return /** @type {!proto.routeguide.RouteNote} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional Point location = 1;
+ * @return {proto.routeguide.Point}
+ */
+proto.routeguide.RouteNote.prototype.getLocation = function() {
+  return /** @type{proto.routeguide.Point} */ (
+    jspb.Message.getWrapperField(this, proto.routeguide.Point, 1));
+};
+
+
+/** @param {proto.routeguide.Point|undefined} value  */
+proto.routeguide.RouteNote.prototype.setLocation = function(value) {
+  jspb.Message.setWrapperField(this, 1, value);
+};
+
+
+proto.routeguide.RouteNote.prototype.clearLocation = function() {
+  this.setLocation(undefined);
+};
+
+
+/**
+ * optional string message = 2;
+ * @return {string}
+ */
+proto.routeguide.RouteNote.prototype.getMessage = function() {
+  return /** @type {string} */ (jspb.Message.getFieldProto3(this, 2, ""));
+};
+
+
+/** @param {string} value  */
+proto.routeguide.RouteNote.prototype.setMessage = function(value) {
+  jspb.Message.setField(this, 2, value);
+};
+
+
+
+/**
+ * Generated by JsPbCodeGenerator.
+ * @param {Array=} opt_data Optional initial data array, typically from a
+ * server response, or constructed directly in Javascript. The array is used
+ * in place and becomes part of the constructed object. It is not cloned.
+ * If no data is provided, the constructed object will be empty, but still
+ * valid.
+ * @extends {jspb.Message}
+ * @constructor
+ */
+proto.routeguide.RouteSummary = function(opt_data) {
+  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
+};
+goog.inherits(proto.routeguide.RouteSummary, jspb.Message);
+if (goog.DEBUG && !COMPILED) {
+  proto.routeguide.RouteSummary.displayName = 'proto.routeguide.RouteSummary';
+}
+
+
+if (jspb.Message.GENERATE_TO_OBJECT) {
+/**
+ * Creates an object representation of this proto suitable for use in Soy templates.
+ * Field names that are reserved in JavaScript and will be renamed to pb_name.
+ * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
+ * For the list of reserved names please see:
+ *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
+ * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
+ *     for transitional soy proto support: http://goto/soy-param-migration
+ * @return {!Object}
+ */
+proto.routeguide.RouteSummary.prototype.toObject = function(opt_includeInstance) {
+  return proto.routeguide.RouteSummary.toObject(opt_includeInstance, this);
+};
+
+
+/**
+ * Static version of the {@see toObject} method.
+ * @param {boolean|undefined} includeInstance Whether to include the JSPB
+ *     instance for transitional soy proto support:
+ *     http://goto/soy-param-migration
+ * @param {!proto.routeguide.RouteSummary} msg The msg instance to transform.
+ * @return {!Object}
+ */
+proto.routeguide.RouteSummary.toObject = function(includeInstance, msg) {
+  var f, obj = {
+    pointCount: msg.getPointCount(),
+    featureCount: msg.getFeatureCount(),
+    distance: msg.getDistance(),
+    elapsedTime: msg.getElapsedTime()
+  };
+
+  if (includeInstance) {
+    obj.$jspbMessageInstance = msg
+  }
+  return obj;
+};
+}
+
+
+/**
+ * Deserializes binary data (in protobuf wire format).
+ * @param {jspb.ByteSource} bytes The bytes to deserialize.
+ * @return {!proto.routeguide.RouteSummary}
+ */
+proto.routeguide.RouteSummary.deserializeBinary = function(bytes) {
+  var reader = new jspb.BinaryReader(bytes);
+  var msg = new proto.routeguide.RouteSummary;
+  return proto.routeguide.RouteSummary.deserializeBinaryFromReader(msg, reader);
+};
+
+
+/**
+ * Deserializes binary data (in protobuf wire format) from the
+ * given reader into the given message object.
+ * @param {!proto.routeguide.RouteSummary} msg The message object to deserialize into.
+ * @param {!jspb.BinaryReader} reader The BinaryReader to use.
+ * @return {!proto.routeguide.RouteSummary}
+ */
+proto.routeguide.RouteSummary.deserializeBinaryFromReader = function(msg, reader) {
+  while (reader.nextField()) {
+    if (reader.isEndGroup()) {
+      break;
+    }
+    var field = reader.getFieldNumber();
+    switch (field) {
+    case 1:
+      var value = /** @type {number} */ (reader.readInt32());
+      msg.setPointCount(value);
+      break;
+    case 2:
+      var value = /** @type {number} */ (reader.readInt32());
+      msg.setFeatureCount(value);
+      break;
+    case 3:
+      var value = /** @type {number} */ (reader.readInt32());
+      msg.setDistance(value);
+      break;
+    case 4:
+      var value = /** @type {number} */ (reader.readInt32());
+      msg.setElapsedTime(value);
+      break;
+    default:
+      reader.skipField();
+      break;
+    }
+  }
+  return msg;
+};
+
+
+/**
+ * Class method variant: serializes the given message to binary data
+ * (in protobuf wire format), writing to the given BinaryWriter.
+ * @param {!proto.routeguide.RouteSummary} message
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.RouteSummary.serializeBinaryToWriter = function(message, writer) {
+  message.serializeBinaryToWriter(writer);
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format).
+ * @return {!Uint8Array}
+ */
+proto.routeguide.RouteSummary.prototype.serializeBinary = function() {
+  var writer = new jspb.BinaryWriter();
+  this.serializeBinaryToWriter(writer);
+  return writer.getResultBuffer();
+};
+
+
+/**
+ * Serializes the message to binary data (in protobuf wire format),
+ * writing to the given BinaryWriter.
+ * @param {!jspb.BinaryWriter} writer
+ */
+proto.routeguide.RouteSummary.prototype.serializeBinaryToWriter = function (writer) {
+  var f = undefined;
+  f = this.getPointCount();
+  if (f !== 0) {
+    writer.writeInt32(
+      1,
+      f
+    );
+  }
+  f = this.getFeatureCount();
+  if (f !== 0) {
+    writer.writeInt32(
+      2,
+      f
+    );
+  }
+  f = this.getDistance();
+  if (f !== 0) {
+    writer.writeInt32(
+      3,
+      f
+    );
+  }
+  f = this.getElapsedTime();
+  if (f !== 0) {
+    writer.writeInt32(
+      4,
+      f
+    );
+  }
+};
+
+
+/**
+ * Creates a deep clone of this proto. No data is shared with the original.
+ * @return {!proto.routeguide.RouteSummary} The clone.
+ */
+proto.routeguide.RouteSummary.prototype.cloneMessage = function() {
+  return /** @type {!proto.routeguide.RouteSummary} */ (jspb.Message.cloneMessage(this));
+};
+
+
+/**
+ * optional int32 point_count = 1;
+ * @return {number}
+ */
+proto.routeguide.RouteSummary.prototype.getPointCount = function() {
+  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 1, 0));
+};
+
+
+/** @param {number} value  */
+proto.routeguide.RouteSummary.prototype.setPointCount = function(value) {
+  jspb.Message.setField(this, 1, value);
+};
+
+
+/**
+ * optional int32 feature_count = 2;
+ * @return {number}
+ */
+proto.routeguide.RouteSummary.prototype.getFeatureCount = function() {
+  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 2, 0));
+};
+
+
+/** @param {number} value  */
+proto.routeguide.RouteSummary.prototype.setFeatureCount = function(value) {
+  jspb.Message.setField(this, 2, value);
+};
+
+
+/**
+ * optional int32 distance = 3;
+ * @return {number}
+ */
+proto.routeguide.RouteSummary.prototype.getDistance = function() {
+  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 3, 0));
+};
+
+
+/** @param {number} value  */
+proto.routeguide.RouteSummary.prototype.setDistance = function(value) {
+  jspb.Message.setField(this, 3, value);
+};
+
+
+/**
+ * optional int32 elapsed_time = 4;
+ * @return {number}
+ */
+proto.routeguide.RouteSummary.prototype.getElapsedTime = function() {
+  return /** @type {number} */ (jspb.Message.getFieldProto3(this, 4, 0));
+};
+
+
+/** @param {number} value  */
+proto.routeguide.RouteSummary.prototype.setElapsedTime = function(value) {
+  jspb.Message.setField(this, 4, value);
+};
+
+
+goog.object.extend(exports, proto.routeguide);
diff --git a/examples/node/route_guide/route_guide_server.js b/examples/node/static_codegen/route_guide/route_guide_server.js
similarity index 77%
copy from examples/node/route_guide/route_guide_server.js
copy to examples/node/static_codegen/route_guide/route_guide_server.js
index 6c01fac..53628fb 100644
--- a/examples/node/route_guide/route_guide_server.js
+++ b/examples/node/static_codegen/route_guide/route_guide_server.js
@@ -31,14 +31,14 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../../protos/route_guide.proto';
+var messages = require('./route_guide_pb');
+var services = require('./route_guide_grpc_pb');
 
 var fs = require('fs');
 var parseArgs = require('minimist');
 var path = require('path');
 var _ = require('lodash');
 var grpc = require('grpc');
-var routeguide = grpc.load(PROTO_PATH).routeguide;
 
 var COORD_FACTOR = 1e7;
 
@@ -65,16 +65,15 @@
   // Check if there is already a feature object for the given point
   for (var i = 0; i < feature_list.length; i++) {
     feature = feature_list[i];
-    if (feature.location.latitude === point.latitude &&
-        feature.location.longitude === point.longitude) {
+    if (feature.getLocation().getLatitude() === point.getLatitude() &&
+        feature.getLocation().getLongitude() === point.getLongitude()) {
       return feature;
     }
   }
   var name = '';
-  feature = {
-    name: name,
-    location: point
-  };
+  feature = new messages.Feature();
+  feature.setName(name);
+  feature.setLocation(point);
   return feature;
 }
 
@@ -95,21 +94,21 @@
  *     request property for the request value.
  */
 function listFeatures(call) {
-  var lo = call.request.lo;
-  var hi = call.request.hi;
-  var left = _.min([lo.longitude, hi.longitude]);
-  var right = _.max([lo.longitude, hi.longitude]);
-  var top = _.max([lo.latitude, hi.latitude]);
-  var bottom = _.min([lo.latitude, hi.latitude]);
+  var lo = call.request.getLo();
+  var hi = call.request.getHi();
+  var left = _.min([lo.getLongitude(), hi.getLongitude()]);
+  var right = _.max([lo.getLongitude(), hi.getLongitude()]);
+  var top = _.max([lo.getLatitude(), hi.getLatitude()]);
+  var bottom = _.min([lo.getLatitude(), hi.getLatitude()]);
   // For each feature, check if it is in the given bounding box
   _.each(feature_list, function(feature) {
-    if (feature.name === '') {
+    if (feature.getName() === '') {
       return;
     }
-    if (feature.location.longitude >= left &&
-        feature.location.longitude <= right &&
-        feature.location.latitude >= bottom &&
-        feature.location.latitude <= top) {
+    if (feature.getLocation().getLongitude() >= left &&
+        feature.getLocation().getLongitude() <= right &&
+        feature.getLocation().getLatitude() >= bottom &&
+        feature.getLocation().getLatitude() <= top) {
       call.write(feature);
     }
   });
@@ -127,10 +126,10 @@
   function toRadians(num) {
     return num * Math.PI / 180;
   }
-  var lat1 = start.latitude / COORD_FACTOR;
-  var lat2 = end.latitude / COORD_FACTOR;
-  var lon1 = start.longitude / COORD_FACTOR;
-  var lon2 = end.longitude / COORD_FACTOR;
+  var lat1 = start.getLatitude() / COORD_FACTOR;
+  var lat2 = end.getLatitude() / COORD_FACTOR;
+  var lon1 = start.getLongitude() / COORD_FACTOR;
+  var lon2 = end.getLongitude() / COORD_FACTOR;
   var R = 6371000; // metres
   var φ1 = toRadians(lat1);
   var φ2 = toRadians(lat2);
@@ -173,14 +172,14 @@
     previous = point;
   });
   call.on('end', function() {
-    callback(null, {
-      point_count: point_count,
-      feature_count: feature_count,
-      // Cast the distance to an integer
-      distance: distance|0,
-      // End the timer
-      elapsed_time: process.hrtime(start_time)[0]
-    });
+    var summary = new messages.RouteSummary();
+    summary.setPointCount(point_count);
+    summary.setFeatureCount(feature_count);
+    // Cast the distance to an integer
+    summary.setDistance(distance|0);
+    // End the timer
+    summary.setElapsedTime(process.hrtime(start_time)[0]);
+    callback(null, summary);
   });
 }
 
@@ -192,7 +191,7 @@
  * @return {string} The key for an object
  */
 function pointKey(point) {
-  return point.latitude + ' ' + point.longitude;
+  return point.getLatitude() + ' ' + point.getLongitude();
 }
 
 /**
@@ -202,7 +201,7 @@
  */
 function routeChat(call) {
   call.on('data', function(note) {
-    var key = pointKey(note.location);
+    var key = pointKey(note.getLocation());
     /* For each note sent, respond with all previous notes that correspond to
      * the same point */
     if (route_notes.hasOwnProperty(key)) {
@@ -213,7 +212,7 @@
       route_notes[key] = [];
     }
     // Then add the new note to the list
-    route_notes[key].push(JSON.parse(JSON.stringify(note)));
+    route_notes[key].push(note);
   });
   call.on('end', function() {
     call.end();
@@ -227,7 +226,7 @@
  */
 function getServer() {
   var server = new grpc.Server();
-  server.addProtoService(routeguide.RouteGuide.service, {
+  server.addService(services.RouteGuideService, {
     getFeature: getFeature,
     listFeatures: listFeatures,
     recordRoute: recordRoute,
@@ -245,7 +244,16 @@
   });
   fs.readFile(path.resolve(argv.db_path), function(err, data) {
     if (err) throw err;
-    feature_list = JSON.parse(data);
+    // Transform the loaded features to Feature objects
+    feature_list = _.map(JSON.parse(data), function(value) {
+      var feature = new messages.Feature();
+      feature.setName(value.name);
+      var location = new messages.Point();
+      location.setLatitude(value.location.latitude);
+      location.setLongitude(value.location.longitude);
+      feature.setLocation(location);
+      return feature;
+    });
     routeServer.start();
   });
 }
diff --git a/examples/objective-c/route_guide/ViewControllers.m b/examples/objective-c/route_guide/ViewControllers.m
index 0b1a1cf..e329782 100644
--- a/examples/objective-c/route_guide/ViewControllers.m
+++ b/examples/objective-c/route_guide/ViewControllers.m
@@ -80,19 +80,14 @@
  * Run the getFeature demo. Calls getFeature with a point known to have a feature and a point known
  * not to have a feature.
  */
-@interface GetFeatureViewController : UIViewController
+@interface GetFeatureViewController : UIViewController {
+  RTGRouteGuide *service;
+}
 @end
 
 @implementation GetFeatureViewController
 
-- (void)viewDidLoad {
-  [super viewDidLoad];
-
-  // This only needs to be done once per host, before creating service objects for that host.
-  [GRPCCall useInsecureConnectionsForHost:kHostAddress];
-
-  RTGRouteGuide *service = [[RTGRouteGuide alloc] initWithHost:kHostAddress];
-
+- (void)execRequest {
   void (^handler)(RTGFeature *response, NSError *error) = ^(RTGFeature *response, NSError *error) {
     if (response.name.length) {
       NSLog(@"Found feature called %@ at %@.", response.name, response.location);
@@ -111,6 +106,19 @@
   [service getFeatureWithRequest:[RTGPoint message] handler:handler];
 }
 
+- (void)viewDidLoad {
+  [super viewDidLoad];
+
+  // This only needs to be done once per host, before creating service objects for that host.
+  [GRPCCall useInsecureConnectionsForHost:kHostAddress];
+
+  service = [[RTGRouteGuide alloc] initWithHost:kHostAddress];
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+  [self execRequest];
+}
+
 @end
 
 
@@ -120,16 +128,15 @@
  * Run the listFeatures demo. Calls listFeatures with a rectangle containing all of the features in
  * the pre-generated database. Prints each response as it comes in.
  */
-@interface ListFeaturesViewController : UIViewController
+@interface ListFeaturesViewController : UIViewController {
+  RTGRouteGuide *service;
+}
+
 @end
 
 @implementation ListFeaturesViewController
 
-- (void)viewDidLoad {
-  [super viewDidLoad];
-
-  RTGRouteGuide *service = [[RTGRouteGuide alloc] initWithHost:kHostAddress];
-
+- (void)execRequest {
   RTGRectangle *rectangle = [RTGRectangle message];
   rectangle.lo.latitude = 405E6;
   rectangle.lo.longitude = -750E6;
@@ -147,6 +154,16 @@
   }];
 }
 
+- (void)viewDidLoad {
+  [super viewDidLoad];
+
+  service = [[RTGRouteGuide alloc] initWithHost:kHostAddress];
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+  [self execRequest];
+}
+
 @end
 
 
@@ -157,14 +174,15 @@
  * database with a variable delay in between. Prints the statistics when they are sent from the
  * server.
  */
-@interface RecordRouteViewController : UIViewController
+@interface RecordRouteViewController : UIViewController {
+  RTGRouteGuide *service;
+}
+
 @end
 
 @implementation RecordRouteViewController
 
-- (void)viewDidLoad {
-  [super viewDidLoad];
-
+- (void)execRequest {
   NSString *dataBasePath = [NSBundle.mainBundle pathForResource:@"route_guide_db"
                                                          ofType:@"json"];
   NSData *dataBaseContent = [NSData dataWithContentsOfFile:dataBasePath];
@@ -178,8 +196,6 @@
     return location;
   }];
 
-  RTGRouteGuide *service = [[RTGRouteGuide alloc] initWithHost:kHostAddress];
-
   [service recordRouteWithRequestsWriter:locations
                                  handler:^(RTGRouteSummary *response, NSError *error) {
     if (response) {
@@ -193,6 +209,16 @@
   }];
 }
 
+- (void)viewDidLoad {
+  [super viewDidLoad];
+
+  service = [[RTGRouteGuide alloc] initWithHost:kHostAddress];
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+  [self execRequest];
+}
+
 @end
 
 
@@ -202,14 +228,15 @@
  * Run the routeChat demo. Send some chat messages, and print any chat messages that are sent from
  * the server.
  */
-@interface RouteChatViewController : UIViewController
+@interface RouteChatViewController : UIViewController {
+  RTGRouteGuide *service;
+}
+
 @end
 
 @implementation RouteChatViewController
 
-- (void)viewDidLoad {
-  [super viewDidLoad];
-
+- (void)execRequest {
   NSArray *notes = @[[RTGRouteNote noteWithMessage:@"First message" latitude:0 longitude:0],
                      [RTGRouteNote noteWithMessage:@"Second message" latitude:0 longitude:1],
                      [RTGRouteNote noteWithMessage:@"Third message" latitude:1 longitude:0],
@@ -219,8 +246,6 @@
     return note;
   }];
 
-  RTGRouteGuide *service = [[RTGRouteGuide alloc] initWithHost:kHostAddress];
-
   [service routeChatWithRequestsWriter:notesWriter
                           eventHandler:^(BOOL done, RTGRouteNote *note, NSError *error) {
     if (note) {
@@ -234,4 +259,14 @@
   }];
 }
 
+- (void)viewDidLoad {
+  [super viewDidLoad];
+
+  service = [[RTGRouteGuide alloc] initWithHost:kHostAddress];
+}
+
+- (void)viewDidAppear:(BOOL)animated {
+  [self execRequest];
+}
+
 @end
diff --git a/examples/python/helloworld/helloworld_pb2.py b/examples/python/helloworld/helloworld_pb2.py
index 1b2674e..1ee80e4 100644
--- a/examples/python/helloworld/helloworld_pb2.py
+++ b/examples/python/helloworld/helloworld_pb2.py
@@ -1,6 +1,8 @@
 # Generated by the protocol buffer compiler.  DO NOT EDIT!
 # source: helloworld.proto
 
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
 from google.protobuf import descriptor as _descriptor
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
@@ -17,7 +19,7 @@
   name='helloworld.proto',
   package='helloworld',
   syntax='proto3',
-  serialized_pb=b'\n\x10helloworld.proto\x12\nhelloworld\"\x1c\n\x0cHelloRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1d\n\nHelloReply\x12\x0f\n\x07message\x18\x01 \x01(\t2I\n\x07Greeter\x12>\n\x08SayHello\x12\x18.helloworld.HelloRequest\x1a\x16.helloworld.HelloReply\"\x00\x42\x18\n\x10io.grpc.examples\xa2\x02\x03HLWb\x06proto3'
+  serialized_pb=_b('\n\x10helloworld.proto\x12\nhelloworld\"\x1c\n\x0cHelloRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\x1d\n\nHelloReply\x12\x0f\n\x07message\x18\x01 \x01(\t2I\n\x07Greeter\x12>\n\x08SayHello\x12\x18.helloworld.HelloRequest\x1a\x16.helloworld.HelloReply\"\x00\x42\x36\n\x1bio.grpc.examples.helloworldB\x0fHelloWorldProtoP\x01\xa2\x02\x03HLWb\x06proto3')
 )
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
@@ -34,7 +36,7 @@
     _descriptor.FieldDescriptor(
       name='name', full_name='helloworld.HelloRequest.name', index=0,
       number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       options=None),
@@ -65,7 +67,7 @@
     _descriptor.FieldDescriptor(
       name='message', full_name='helloworld.HelloReply.message', index=0,
       number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       options=None),
@@ -104,69 +106,28 @@
 
 
 DESCRIPTOR.has_options = True
-DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), b'\n\020io.grpc.examples\242\002\003HLW')
+DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\033io.grpc.examples.helloworldB\017HelloWorldProtoP\001\242\002\003HLW'))
 import abc
+import six
 from grpc.beta import implementations as beta_implementations
-from grpc.early_adopter import implementations as early_adopter_implementations
-from grpc.framework.alpha import utilities as alpha_utilities
+from grpc.beta import interfaces as beta_interfaces
 from grpc.framework.common import cardinality
 from grpc.framework.interfaces.face import utilities as face_utilities
-class EarlyAdopterGreeterServicer(object):
-  """<fill me in later!>"""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
-  def SayHello(self, request, context):
-    raise NotImplementedError()
-class EarlyAdopterGreeterServer(object):
-  """<fill me in later!>"""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
-  def start(self):
-    raise NotImplementedError()
-  @abc.abstractmethod
-  def stop(self):
-    raise NotImplementedError()
-class EarlyAdopterGreeterStub(object):
-  """<fill me in later!>"""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
-  def SayHello(self, request):
-    raise NotImplementedError()
-  SayHello.async = None
-def early_adopter_create_Greeter_server(servicer, port, private_key=None, certificate_chain=None):
-  import helloworld_pb2
-  import helloworld_pb2
-  method_service_descriptions = {
-    "SayHello": alpha_utilities.unary_unary_service_description(
-      servicer.SayHello,
-      helloworld_pb2.HelloRequest.FromString,
-      helloworld_pb2.HelloReply.SerializeToString,
-    ),
-  }
-  return early_adopter_implementations.server("helloworld.Greeter", method_service_descriptions, port, private_key=private_key, certificate_chain=certificate_chain)
-def early_adopter_create_Greeter_stub(host, port, metadata_transformer=None, secure=False, root_certificates=None, private_key=None, certificate_chain=None, server_host_override=None):
-  import helloworld_pb2
-  import helloworld_pb2
-  method_invocation_descriptions = {
-    "SayHello": alpha_utilities.unary_unary_invocation_description(
-      helloworld_pb2.HelloRequest.SerializeToString,
-      helloworld_pb2.HelloReply.FromString,
-    ),
-  }
-  return early_adopter_implementations.stub("helloworld.Greeter", method_invocation_descriptions, host, port, metadata_transformer=metadata_transformer, secure=secure, root_certificates=root_certificates, private_key=private_key, certificate_chain=certificate_chain, server_host_override=server_host_override)
 
 class BetaGreeterServicer(object):
-  """<fill me in later!>"""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
+  """The greeting service definition.
+  """
   def SayHello(self, request, context):
-    raise NotImplementedError()
+    """Sends a greeting
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
 
 class BetaGreeterStub(object):
-  """The interface to which stubs will conform."""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
+  """The greeting service definition.
+  """
   def SayHello(self, request, timeout):
+    """Sends a greeting
+    """
     raise NotImplementedError()
   SayHello.future = None
 
diff --git a/examples/python/route_guide/route_guide_pb2.py b/examples/python/route_guide/route_guide_pb2.py
index d4d9f8d..81d5d07 100644
--- a/examples/python/route_guide/route_guide_pb2.py
+++ b/examples/python/route_guide/route_guide_pb2.py
@@ -1,6 +1,8 @@
 # Generated by the protocol buffer compiler.  DO NOT EDIT!
 # source: route_guide.proto
 
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
 from google.protobuf import descriptor as _descriptor
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
@@ -17,7 +19,7 @@
   name='route_guide.proto',
   package='routeguide',
   syntax='proto3',
-  serialized_pb=b'\n\x11route_guide.proto\x12\nrouteguide\",\n\x05Point\x12\x10\n\x08latitude\x18\x01 \x01(\x05\x12\x11\n\tlongitude\x18\x02 \x01(\x05\"I\n\tRectangle\x12\x1d\n\x02lo\x18\x01 \x01(\x0b\x32\x11.routeguide.Point\x12\x1d\n\x02hi\x18\x02 \x01(\x0b\x32\x11.routeguide.Point\"<\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x08location\x18\x02 \x01(\x0b\x32\x11.routeguide.Point\"A\n\tRouteNote\x12#\n\x08location\x18\x01 \x01(\x0b\x32\x11.routeguide.Point\x12\x0f\n\x07message\x18\x02 \x01(\t\"b\n\x0cRouteSummary\x12\x13\n\x0bpoint_count\x18\x01 \x01(\x05\x12\x15\n\rfeature_count\x18\x02 \x01(\x05\x12\x10\n\x08\x64istance\x18\x03 \x01(\x05\x12\x14\n\x0c\x65lapsed_time\x18\x04 \x01(\x05\x32\x85\x02\n\nRouteGuide\x12\x36\n\nGetFeature\x12\x11.routeguide.Point\x1a\x13.routeguide.Feature\"\x00\x12>\n\x0cListFeatures\x12\x15.routeguide.Rectangle\x1a\x13.routeguide.Feature\"\x00\x30\x01\x12>\n\x0bRecordRoute\x12\x11.routeguide.Point\x1a\x18.routeguide.RouteSummary\"\x00(\x01\x12?\n\tRouteChat\x12\x15.routeguide.RouteNote\x1a\x15.routeguide.RouteNote\"\x00(\x01\x30\x01\x42\x0f\n\x07\x65x.grpc\xa2\x02\x03RTGb\x06proto3'
+  serialized_pb=_b('\n\x11route_guide.proto\x12\nrouteguide\",\n\x05Point\x12\x10\n\x08latitude\x18\x01 \x01(\x05\x12\x11\n\tlongitude\x18\x02 \x01(\x05\"I\n\tRectangle\x12\x1d\n\x02lo\x18\x01 \x01(\x0b\x32\x11.routeguide.Point\x12\x1d\n\x02hi\x18\x02 \x01(\x0b\x32\x11.routeguide.Point\"<\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x08location\x18\x02 \x01(\x0b\x32\x11.routeguide.Point\"A\n\tRouteNote\x12#\n\x08location\x18\x01 \x01(\x0b\x32\x11.routeguide.Point\x12\x0f\n\x07message\x18\x02 \x01(\t\"b\n\x0cRouteSummary\x12\x13\n\x0bpoint_count\x18\x01 \x01(\x05\x12\x15\n\rfeature_count\x18\x02 \x01(\x05\x12\x10\n\x08\x64istance\x18\x03 \x01(\x05\x12\x14\n\x0c\x65lapsed_time\x18\x04 \x01(\x05\x32\x85\x02\n\nRouteGuide\x12\x36\n\nGetFeature\x12\x11.routeguide.Point\x1a\x13.routeguide.Feature\"\x00\x12>\n\x0cListFeatures\x12\x15.routeguide.Rectangle\x1a\x13.routeguide.Feature\"\x00\x30\x01\x12>\n\x0bRecordRoute\x12\x11.routeguide.Point\x1a\x18.routeguide.RouteSummary\"\x00(\x01\x12?\n\tRouteChat\x12\x15.routeguide.RouteNote\x1a\x15.routeguide.RouteNote\"\x00(\x01\x30\x01\x42\x36\n\x1bio.grpc.examples.routeguideB\x0fRouteGuideProtoP\x01\xa2\x02\x03RTGb\x06proto3')
 )
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
@@ -110,7 +112,7 @@
     _descriptor.FieldDescriptor(
       name='name', full_name='routeguide.Feature.name', index=0,
       number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       options=None),
@@ -155,7 +157,7 @@
     _descriptor.FieldDescriptor(
       name='message', full_name='routeguide.RouteNote.message', index=1,
       number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
+      has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       options=None),
@@ -274,149 +276,86 @@
 
 
 DESCRIPTOR.has_options = True
-DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), b'\n\007ex.grpc\242\002\003RTG')
+DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\033io.grpc.examples.routeguideB\017RouteGuideProtoP\001\242\002\003RTG'))
 import abc
+import six
 from grpc.beta import implementations as beta_implementations
-from grpc.early_adopter import implementations as early_adopter_implementations
-from grpc.framework.alpha import utilities as alpha_utilities
+from grpc.beta import interfaces as beta_interfaces
 from grpc.framework.common import cardinality
 from grpc.framework.interfaces.face import utilities as face_utilities
-class EarlyAdopterRouteGuideServicer(object):
-  """<fill me in later!>"""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
-  def GetFeature(self, request, context):
-    raise NotImplementedError()
-  @abc.abstractmethod
-  def ListFeatures(self, request, context):
-    raise NotImplementedError()
-  @abc.abstractmethod
-  def RecordRoute(self, request_iterator, context):
-    raise NotImplementedError()
-  @abc.abstractmethod
-  def RouteChat(self, request_iterator, context):
-    raise NotImplementedError()
-class EarlyAdopterRouteGuideServer(object):
-  """<fill me in later!>"""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
-  def start(self):
-    raise NotImplementedError()
-  @abc.abstractmethod
-  def stop(self):
-    raise NotImplementedError()
-class EarlyAdopterRouteGuideStub(object):
-  """<fill me in later!>"""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
-  def GetFeature(self, request):
-    raise NotImplementedError()
-  GetFeature.async = None
-  @abc.abstractmethod
-  def ListFeatures(self, request):
-    raise NotImplementedError()
-  ListFeatures.async = None
-  @abc.abstractmethod
-  def RecordRoute(self, request_iterator):
-    raise NotImplementedError()
-  RecordRoute.async = None
-  @abc.abstractmethod
-  def RouteChat(self, request_iterator):
-    raise NotImplementedError()
-  RouteChat.async = None
-def early_adopter_create_RouteGuide_server(servicer, port, private_key=None, certificate_chain=None):
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  method_service_descriptions = {
-    "GetFeature": alpha_utilities.unary_unary_service_description(
-      servicer.GetFeature,
-      route_guide_pb2.Point.FromString,
-      route_guide_pb2.Feature.SerializeToString,
-    ),
-    "ListFeatures": alpha_utilities.unary_stream_service_description(
-      servicer.ListFeatures,
-      route_guide_pb2.Rectangle.FromString,
-      route_guide_pb2.Feature.SerializeToString,
-    ),
-    "RecordRoute": alpha_utilities.stream_unary_service_description(
-      servicer.RecordRoute,
-      route_guide_pb2.Point.FromString,
-      route_guide_pb2.RouteSummary.SerializeToString,
-    ),
-    "RouteChat": alpha_utilities.stream_stream_service_description(
-      servicer.RouteChat,
-      route_guide_pb2.RouteNote.FromString,
-      route_guide_pb2.RouteNote.SerializeToString,
-    ),
-  }
-  return early_adopter_implementations.server("routeguide.RouteGuide", method_service_descriptions, port, private_key=private_key, certificate_chain=certificate_chain)
-def early_adopter_create_RouteGuide_stub(host, port, metadata_transformer=None, secure=False, root_certificates=None, private_key=None, certificate_chain=None, server_host_override=None):
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  import route_guide_pb2
-  method_invocation_descriptions = {
-    "GetFeature": alpha_utilities.unary_unary_invocation_description(
-      route_guide_pb2.Point.SerializeToString,
-      route_guide_pb2.Feature.FromString,
-    ),
-    "ListFeatures": alpha_utilities.unary_stream_invocation_description(
-      route_guide_pb2.Rectangle.SerializeToString,
-      route_guide_pb2.Feature.FromString,
-    ),
-    "RecordRoute": alpha_utilities.stream_unary_invocation_description(
-      route_guide_pb2.Point.SerializeToString,
-      route_guide_pb2.RouteSummary.FromString,
-    ),
-    "RouteChat": alpha_utilities.stream_stream_invocation_description(
-      route_guide_pb2.RouteNote.SerializeToString,
-      route_guide_pb2.RouteNote.FromString,
-    ),
-  }
-  return early_adopter_implementations.stub("routeguide.RouteGuide", method_invocation_descriptions, host, port, metadata_transformer=metadata_transformer, secure=secure, root_certificates=root_certificates, private_key=private_key, certificate_chain=certificate_chain, server_host_override=server_host_override)
 
 class BetaRouteGuideServicer(object):
-  """<fill me in later!>"""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
+  """Interface exported by the server.
+  """
   def GetFeature(self, request, context):
-    raise NotImplementedError()
-  @abc.abstractmethod
+    """A simple RPC.
+
+    Obtains the feature at a given position.
+
+    A feature with an empty name is returned if there's no feature at the given
+    position.
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
   def ListFeatures(self, request, context):
-    raise NotImplementedError()
-  @abc.abstractmethod
+    """A server-to-client streaming RPC.
+
+    Obtains the Features available within the given Rectangle.  Results are
+    streamed rather than returned at once (e.g. in a response message with a
+    repeated field), as the rectangle may cover a large area and contain a
+    huge number of features.
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
   def RecordRoute(self, request_iterator, context):
-    raise NotImplementedError()
-  @abc.abstractmethod
+    """A client-to-server streaming RPC.
+
+    Accepts a stream of Points on a route being traversed, returning a
+    RouteSummary when traversal is completed.
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
   def RouteChat(self, request_iterator, context):
-    raise NotImplementedError()
+    """A Bidirectional streaming RPC.
+
+    Accepts a stream of RouteNotes sent while a route is being traversed,
+    while receiving other RouteNotes (e.g. from other users).
+    """
+    context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
 
 class BetaRouteGuideStub(object):
-  """The interface to which stubs will conform."""
-  __metaclass__ = abc.ABCMeta
-  @abc.abstractmethod
+  """Interface exported by the server.
+  """
   def GetFeature(self, request, timeout):
+    """A simple RPC.
+
+    Obtains the feature at a given position.
+
+    A feature with an empty name is returned if there's no feature at the given
+    position.
+    """
     raise NotImplementedError()
   GetFeature.future = None
-  @abc.abstractmethod
   def ListFeatures(self, request, timeout):
+    """A server-to-client streaming RPC.
+
+    Obtains the Features available within the given Rectangle.  Results are
+    streamed rather than returned at once (e.g. in a response message with a
+    repeated field), as the rectangle may cover a large area and contain a
+    huge number of features.
+    """
     raise NotImplementedError()
-  @abc.abstractmethod
   def RecordRoute(self, request_iterator, timeout):
+    """A client-to-server streaming RPC.
+
+    Accepts a stream of Points on a route being traversed, returning a
+    RouteSummary when traversal is completed.
+    """
     raise NotImplementedError()
   RecordRoute.future = None
-  @abc.abstractmethod
   def RouteChat(self, request_iterator, timeout):
+    """A Bidirectional streaming RPC.
+
+    Accepts a stream of RouteNotes sent while a route is being traversed,
+    while receiving other RouteNotes (e.g. from other users).
+    """
     raise NotImplementedError()
 
 def beta_create_RouteGuide_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
diff --git a/gRPC.podspec b/gRPC.podspec
index 77d35bd..67e7a81 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -36,7 +36,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC'
-  version = '0.12.0'
+  version = '0.14.0'
   s.version  = version
   s.summary  = 'gRPC client library for iOS/OSX'
   s.homepage = 'http://www.grpc.io'
@@ -44,7 +44,8 @@
   s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }
 
   s.source = { :git => 'https://github.com/grpc/grpc.git',
-               :tag => "release-#{version.gsub(/\./, '_')}-objectivec-#{version}" }
+               :tag => "release-#{version.gsub(/\./, '_')}-objectivec-#{version}",
+               :submodules => true }
 
 
   s.ios.deployment_target = '7.1'
@@ -181,6 +182,7 @@
                       'src/core/lib/iomgr/endpoint.h',
                       'src/core/lib/iomgr/endpoint_pair.h',
                       'src/core/lib/iomgr/ev_poll_and_epoll_posix.h',
+                      'src/core/lib/iomgr/ev_poll_posix.h',
                       'src/core/lib/iomgr/ev_posix.h',
                       'src/core/lib/iomgr/exec_ctx.h',
                       'src/core/lib/iomgr/executor.h',
@@ -287,8 +289,9 @@
                       'src/core/ext/client_config/subchannel_call_holder.h',
                       'src/core/ext/client_config/subchannel_index.h',
                       'src/core/ext/client_config/uri_parser.h',
+                      'third_party/objective_c/Cronet/cronet_c_for_grpc.h',
                       'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
-                      'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
+                      'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h',
                       'third_party/nanopb/pb.h',
                       'third_party/nanopb/pb_common.h',
                       'third_party/nanopb/pb_decode.h',
@@ -305,6 +308,7 @@
                       'include/grpc/grpc.h',
                       'include/grpc/status.h',
                       'include/grpc/impl/codegen/byte_buffer.h',
+                      'include/grpc/impl/codegen/byte_buffer_reader.h',
                       'include/grpc/impl/codegen/compression_types.h',
                       'include/grpc/impl/codegen/connectivity_state.h',
                       'include/grpc/impl/codegen/grpc_types.h',
@@ -324,6 +328,7 @@
                       'include/grpc/impl/codegen/sync_posix.h',
                       'include/grpc/impl/codegen/sync_win32.h',
                       'include/grpc/impl/codegen/time.h',
+                      'include/grpc/grpc_cronet.h',
                       'include/grpc/grpc_security.h',
                       'include/grpc/grpc_security_constants.h',
                       'include/grpc/census.h',
@@ -346,6 +351,7 @@
                       'src/core/lib/iomgr/endpoint_pair_posix.c',
                       'src/core/lib/iomgr/endpoint_pair_windows.c',
                       'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+                      'src/core/lib/iomgr/ev_poll_posix.c',
                       'src/core/lib/iomgr/ev_posix.c',
                       'src/core/lib/iomgr/exec_ctx.c',
                       'src/core/lib/iomgr/executor.c',
@@ -473,8 +479,11 @@
                       'src/core/ext/client_config/uri_parser.c',
                       'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
                       'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+                      'src/core/ext/transport/cronet/client/secure/cronet_channel_create.c',
+                      'src/core/ext/transport/cronet/transport/cronet_api_dummy.c',
+                      'src/core/ext/transport/cronet/transport/cronet_transport.c',
                       'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
-                      'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
+                      'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c',
                       'third_party/nanopb/pb_common.c',
                       'third_party/nanopb/pb_decode.c',
                       'third_party/nanopb/pb_encode.c',
@@ -523,6 +532,7 @@
                               'src/core/lib/iomgr/endpoint.h',
                               'src/core/lib/iomgr/endpoint_pair.h',
                               'src/core/lib/iomgr/ev_poll_and_epoll_posix.h',
+                              'src/core/lib/iomgr/ev_poll_posix.h',
                               'src/core/lib/iomgr/ev_posix.h',
                               'src/core/lib/iomgr/exec_ctx.h',
                               'src/core/lib/iomgr/executor.h',
@@ -629,8 +639,9 @@
                               'src/core/ext/client_config/subchannel_call_holder.h',
                               'src/core/ext/client_config/subchannel_index.h',
                               'src/core/ext/client_config/uri_parser.h',
+                              'third_party/objective_c/Cronet/cronet_c_for_grpc.h',
                               'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
-                              'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
+                              'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h',
                               'third_party/nanopb/pb.h',
                               'third_party/nanopb/pb_common.h',
                               'third_party/nanopb/pb_decode.h',
@@ -654,7 +665,7 @@
 
     ss.requires_arc = false
     ss.libraries = 'z'
-    ss.dependency 'BoringSSL', '~> 2.0'
+    ss.dependency 'BoringSSL', '~> 3.0'
 
     # ss.compiler_flags = '-GCC_WARN_INHIBIT_ALL_WARNINGS', '-w'
   end
diff --git a/grpc.def b/grpc.def
index 61948ed..09a94a6 100644
--- a/grpc.def
+++ b/grpc.def
@@ -87,6 +87,7 @@
     grpc_header_nonbin_value_is_legal
     grpc_is_binary_header
     grpc_call_error_to_string
+    grpc_cronet_secure_channel_create
     grpc_auth_property_iterator_next
     grpc_auth_context_property_iterator
     grpc_auth_context_peer_identity
diff --git a/grpc.gemspec b/grpc.gemspec
index e68cd81..13aed6b 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -149,6 +149,7 @@
   s.files += %w( include/grpc/grpc.h )
   s.files += %w( include/grpc/status.h )
   s.files += %w( include/grpc/impl/codegen/byte_buffer.h )
+  s.files += %w( include/grpc/impl/codegen/byte_buffer_reader.h )
   s.files += %w( include/grpc/impl/codegen/compression_types.h )
   s.files += %w( include/grpc/impl/codegen/connectivity_state.h )
   s.files += %w( include/grpc/impl/codegen/grpc_types.h )
@@ -168,6 +169,7 @@
   s.files += %w( include/grpc/impl/codegen/sync_posix.h )
   s.files += %w( include/grpc/impl/codegen/sync_win32.h )
   s.files += %w( include/grpc/impl/codegen/time.h )
+  s.files += %w( include/grpc/grpc_cronet.h )
   s.files += %w( include/grpc/grpc_security.h )
   s.files += %w( include/grpc/grpc_security_constants.h )
   s.files += %w( include/grpc/census.h )
@@ -189,6 +191,7 @@
   s.files += %w( src/core/lib/iomgr/endpoint.h )
   s.files += %w( src/core/lib/iomgr/endpoint_pair.h )
   s.files += %w( src/core/lib/iomgr/ev_poll_and_epoll_posix.h )
+  s.files += %w( src/core/lib/iomgr/ev_poll_posix.h )
   s.files += %w( src/core/lib/iomgr/ev_posix.h )
   s.files += %w( src/core/lib/iomgr/exec_ctx.h )
   s.files += %w( src/core/lib/iomgr/executor.h )
@@ -295,8 +298,9 @@
   s.files += %w( src/core/ext/client_config/subchannel_call_holder.h )
   s.files += %w( src/core/ext/client_config/subchannel_index.h )
   s.files += %w( src/core/ext/client_config/uri_parser.h )
+  s.files += %w( third_party/objective_c/Cronet/cronet_c_for_grpc.h )
   s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.h )
-  s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h )
+  s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h )
   s.files += %w( third_party/nanopb/pb.h )
   s.files += %w( third_party/nanopb/pb_common.h )
   s.files += %w( third_party/nanopb/pb_decode.h )
@@ -326,6 +330,7 @@
   s.files += %w( src/core/lib/iomgr/endpoint_pair_posix.c )
   s.files += %w( src/core/lib/iomgr/endpoint_pair_windows.c )
   s.files += %w( src/core/lib/iomgr/ev_poll_and_epoll_posix.c )
+  s.files += %w( src/core/lib/iomgr/ev_poll_posix.c )
   s.files += %w( src/core/lib/iomgr/ev_posix.c )
   s.files += %w( src/core/lib/iomgr/exec_ctx.c )
   s.files += %w( src/core/lib/iomgr/executor.c )
@@ -453,8 +458,11 @@
   s.files += %w( src/core/ext/client_config/uri_parser.c )
   s.files += %w( src/core/ext/transport/chttp2/server/insecure/server_chttp2.c )
   s.files += %w( src/core/ext/transport/chttp2/client/insecure/channel_create.c )
+  s.files += %w( src/core/ext/transport/cronet/client/secure/cronet_channel_create.c )
+  s.files += %w( src/core/ext/transport/cronet/transport/cronet_api_dummy.c )
+  s.files += %w( src/core/ext/transport/cronet/transport/cronet_transport.c )
   s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.c )
-  s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c )
+  s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c )
   s.files += %w( third_party/nanopb/pb_common.c )
   s.files += %w( third_party/nanopb/pb_decode.c )
   s.files += %w( third_party/nanopb/pb_encode.c )
diff --git a/include/grpc++/impl/codegen/call.h b/include/grpc++/impl/codegen/call.h
index aea1a6a..d081b7d 100644
--- a/include/grpc++/impl/codegen/call.h
+++ b/include/grpc++/impl/codegen/call.h
@@ -281,10 +281,9 @@
     if (message_ == nullptr) return;
     if (recv_buf_) {
       if (*status) {
-        got_message = true;
-        *status = SerializationTraits<R>::Deserialize(recv_buf_, message_,
-                                                      max_message_size)
-                      .ok();
+        got_message = *status = SerializationTraits<R>::Deserialize(
+                                    recv_buf_, message_, max_message_size)
+                                    .ok();
       } else {
         got_message = false;
         g_core_codegen_interface->grpc_byte_buffer_destroy(recv_buf_);
diff --git a/include/grpc++/impl/codegen/core_codegen_interface.h b/include/grpc++/impl/codegen/core_codegen_interface.h
index 16424ba..aa9013c 100644
--- a/include/grpc++/impl/codegen/core_codegen_interface.h
+++ b/include/grpc++/impl/codegen/core_codegen_interface.h
@@ -49,18 +49,6 @@
 /// \warning This interface should be considered internal and private.
 class CoreCodegenInterface {
  public:
-  // Serialize the msg into a buffer created inside the function. The caller
-  // should destroy the returned buffer when done with it. If serialization
-  // fails,
-  // false is returned and buffer is left unchanged.
-  virtual Status SerializeProto(const grpc::protobuf::Message& msg,
-                                grpc_byte_buffer** buffer) = 0;
-
-  // The caller keeps ownership of buffer and msg.
-  virtual Status DeserializeProto(grpc_byte_buffer* buffer,
-                                  grpc::protobuf::Message* msg,
-                                  int max_message_size) = 0;
-
   /// Upon a failed assertion, log the error.
   virtual void assert_fail(const char* failed_assertion) = 0;
 
@@ -76,9 +64,29 @@
   virtual void gpr_free(void* p) = 0;
 
   virtual void grpc_byte_buffer_destroy(grpc_byte_buffer* bb) = 0;
+
+  virtual void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader* reader,
+                                            grpc_byte_buffer* buffer) = 0;
+  virtual void grpc_byte_buffer_reader_destroy(
+      grpc_byte_buffer_reader* reader) = 0;
+  virtual int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader* reader,
+                                           gpr_slice* slice) = 0;
+
+  virtual grpc_byte_buffer* grpc_raw_byte_buffer_create(gpr_slice* slice,
+                                                        size_t nslices) = 0;
+
+  virtual gpr_slice gpr_slice_malloc(size_t length) = 0;
+  virtual void gpr_slice_unref(gpr_slice slice) = 0;
+  virtual gpr_slice gpr_slice_split_tail(gpr_slice* s, size_t split) = 0;
+  virtual void gpr_slice_buffer_add(gpr_slice_buffer* sb, gpr_slice slice) = 0;
+  virtual void gpr_slice_buffer_pop(gpr_slice_buffer* sb) = 0;
+
   virtual void grpc_metadata_array_init(grpc_metadata_array* array) = 0;
   virtual void grpc_metadata_array_destroy(grpc_metadata_array* array) = 0;
 
+  virtual const Status& ok() = 0;
+  virtual const Status& cancelled() = 0;
+
   virtual gpr_timespec gpr_inf_future(gpr_clock_type type) = 0;
 };
 
diff --git a/include/grpc++/impl/codegen/method_handler_impl.h b/include/grpc++/impl/codegen/method_handler_impl.h
index ad74efa..21ac6c4 100644
--- a/include/grpc++/impl/codegen/method_handler_impl.h
+++ b/include/grpc++/impl/codegen/method_handler_impl.h
@@ -44,10 +44,10 @@
 template <class ServiceType, class RequestType, class ResponseType>
 class RpcMethodHandler : public MethodHandler {
  public:
-  RpcMethodHandler(
-      std::function<Status(ServiceType*, ServerContext*, const RequestType*,
-                           ResponseType*)> func,
-      ServiceType* service)
+  RpcMethodHandler(std::function<Status(ServiceType*, ServerContext*,
+                                        const RequestType*, ResponseType*)>
+                       func,
+                   ServiceType* service)
       : func_(func), service_(service) {}
 
   void RunHandler(const HandlerParameter& param) GRPC_FINAL {
@@ -88,7 +88,8 @@
  public:
   ClientStreamingHandler(
       std::function<Status(ServiceType*, ServerContext*,
-                           ServerReader<RequestType>*, ResponseType*)> func,
+                           ServerReader<RequestType>*, ResponseType*)>
+          func,
       ServiceType* service)
       : func_(func), service_(service) {}
 
@@ -124,7 +125,8 @@
  public:
   ServerStreamingHandler(
       std::function<Status(ServiceType*, ServerContext*, const RequestType*,
-                           ServerWriter<ResponseType>*)> func,
+                           ServerWriter<ResponseType>*)>
+          func,
       ServiceType* service)
       : func_(func), service_(service) {}
 
diff --git a/include/grpc++/impl/codegen/proto_utils.h b/include/grpc++/impl/codegen/proto_utils.h
index 2aaa3c3..d044ddc 100644
--- a/include/grpc++/impl/codegen/proto_utils.h
+++ b/include/grpc++/impl/codegen/proto_utils.h
@@ -41,26 +41,179 @@
 #include <grpc++/impl/codegen/serialization_traits.h>
 #include <grpc++/impl/codegen/status.h>
 #include <grpc/impl/codegen/byte_buffer.h>
+#include <grpc/impl/codegen/byte_buffer_reader.h>
 #include <grpc/impl/codegen/log.h>
+#include <grpc/impl/codegen/slice.h>
 
 namespace grpc {
 
 extern CoreCodegenInterface* g_core_codegen_interface;
 
+namespace {
+
+const int kGrpcBufferWriterMaxBufferLength = 8192;
+
+class GrpcBufferWriter GRPC_FINAL
+    : public ::grpc::protobuf::io::ZeroCopyOutputStream {
+ public:
+  explicit GrpcBufferWriter(grpc_byte_buffer** bp, int block_size)
+      : block_size_(block_size), byte_count_(0), have_backup_(false) {
+    *bp = g_core_codegen_interface->grpc_raw_byte_buffer_create(NULL, 0);
+    slice_buffer_ = &(*bp)->data.raw.slice_buffer;
+  }
+
+  ~GrpcBufferWriter() GRPC_OVERRIDE {
+    if (have_backup_) {
+      g_core_codegen_interface->gpr_slice_unref(backup_slice_);
+    }
+  }
+
+  bool Next(void** data, int* size) GRPC_OVERRIDE {
+    if (have_backup_) {
+      slice_ = backup_slice_;
+      have_backup_ = false;
+    } else {
+      slice_ = g_core_codegen_interface->gpr_slice_malloc(block_size_);
+    }
+    *data = GPR_SLICE_START_PTR(slice_);
+    // On win x64, int is only 32bit
+    GPR_CODEGEN_ASSERT(GPR_SLICE_LENGTH(slice_) <= INT_MAX);
+    byte_count_ += * size = (int)GPR_SLICE_LENGTH(slice_);
+    g_core_codegen_interface->gpr_slice_buffer_add(slice_buffer_, slice_);
+    return true;
+  }
+
+  void BackUp(int count) GRPC_OVERRIDE {
+    g_core_codegen_interface->gpr_slice_buffer_pop(slice_buffer_);
+    if (count == block_size_) {
+      backup_slice_ = slice_;
+    } else {
+      backup_slice_ = g_core_codegen_interface->gpr_slice_split_tail(
+          &slice_, GPR_SLICE_LENGTH(slice_) - count);
+      g_core_codegen_interface->gpr_slice_buffer_add(slice_buffer_, slice_);
+    }
+    have_backup_ = true;
+    byte_count_ -= count;
+  }
+
+  grpc::protobuf::int64 ByteCount() const GRPC_OVERRIDE { return byte_count_; }
+
+ private:
+  const int block_size_;
+  int64_t byte_count_;
+  gpr_slice_buffer* slice_buffer_;
+  bool have_backup_;
+  gpr_slice backup_slice_;
+  gpr_slice slice_;
+};
+
+class GrpcBufferReader GRPC_FINAL
+    : public ::grpc::protobuf::io::ZeroCopyInputStream {
+ public:
+  explicit GrpcBufferReader(grpc_byte_buffer* buffer)
+      : byte_count_(0), backup_count_(0) {
+    g_core_codegen_interface->grpc_byte_buffer_reader_init(&reader_, buffer);
+  }
+  ~GrpcBufferReader() GRPC_OVERRIDE {
+    g_core_codegen_interface->grpc_byte_buffer_reader_destroy(&reader_);
+  }
+
+  bool Next(const void** data, int* size) GRPC_OVERRIDE {
+    if (backup_count_ > 0) {
+      *data = GPR_SLICE_START_PTR(slice_) + GPR_SLICE_LENGTH(slice_) -
+              backup_count_;
+      GPR_CODEGEN_ASSERT(backup_count_ <= INT_MAX);
+      *size = (int)backup_count_;
+      backup_count_ = 0;
+      return true;
+    }
+    if (!g_core_codegen_interface->grpc_byte_buffer_reader_next(&reader_,
+                                                                &slice_)) {
+      return false;
+    }
+    g_core_codegen_interface->gpr_slice_unref(slice_);
+    *data = GPR_SLICE_START_PTR(slice_);
+    // On win x64, int is only 32bit
+    GPR_CODEGEN_ASSERT(GPR_SLICE_LENGTH(slice_) <= INT_MAX);
+    byte_count_ += * size = (int)GPR_SLICE_LENGTH(slice_);
+    return true;
+  }
+
+  void BackUp(int count) GRPC_OVERRIDE { backup_count_ = count; }
+
+  bool Skip(int count) GRPC_OVERRIDE {
+    const void* data;
+    int size;
+    while (Next(&data, &size)) {
+      if (size >= count) {
+        BackUp(size - count);
+        return true;
+      }
+      // size < count;
+      count -= size;
+    }
+    // error or we have too large count;
+    return false;
+  }
+
+  grpc::protobuf::int64 ByteCount() const GRPC_OVERRIDE {
+    return byte_count_ - backup_count_;
+  }
+
+ private:
+  int64_t byte_count_;
+  int64_t backup_count_;
+  grpc_byte_buffer_reader reader_;
+  gpr_slice slice_;
+};
+}  // namespace
+
 template <class T>
 class SerializationTraits<T, typename std::enable_if<std::is_base_of<
                                  grpc::protobuf::Message, T>::value>::type> {
  public:
   static Status Serialize(const grpc::protobuf::Message& msg,
-                          grpc_byte_buffer** buffer, bool* own_buffer) {
+                          grpc_byte_buffer** bp, bool* own_buffer) {
     *own_buffer = true;
-    return g_core_codegen_interface->SerializeProto(msg, buffer);
+    int byte_size = msg.ByteSize();
+    if (byte_size <= kGrpcBufferWriterMaxBufferLength) {
+      gpr_slice slice = g_core_codegen_interface->gpr_slice_malloc(byte_size);
+      GPR_CODEGEN_ASSERT(
+          GPR_SLICE_END_PTR(slice) ==
+          msg.SerializeWithCachedSizesToArray(GPR_SLICE_START_PTR(slice)));
+      *bp = g_core_codegen_interface->grpc_raw_byte_buffer_create(&slice, 1);
+      g_core_codegen_interface->gpr_slice_unref(slice);
+      return g_core_codegen_interface->ok();
+    } else {
+      GrpcBufferWriter writer(bp, kGrpcBufferWriterMaxBufferLength);
+      return msg.SerializeToZeroCopyStream(&writer)
+                 ? g_core_codegen_interface->ok()
+                 : Status(StatusCode::INTERNAL, "Failed to serialize message");
+    }
   }
+
   static Status Deserialize(grpc_byte_buffer* buffer,
                             grpc::protobuf::Message* msg,
                             int max_message_size) {
-    return g_core_codegen_interface->DeserializeProto(buffer, msg,
-                                                      max_message_size);
+    if (buffer == nullptr) {
+      return Status(StatusCode::INTERNAL, "No payload");
+    }
+    Status result = g_core_codegen_interface->ok();
+    {
+      GrpcBufferReader reader(buffer);
+      ::grpc::protobuf::io::CodedInputStream decoder(&reader);
+      if (max_message_size > 0) {
+        decoder.SetTotalBytesLimit(max_message_size, max_message_size);
+      }
+      if (!msg->ParseFromCodedStream(&decoder)) {
+        result = Status(StatusCode::INTERNAL, msg->InitializationErrorString());
+      }
+      if (!decoder.ConsumedEntireMessage()) {
+        result = Status(StatusCode::INTERNAL, "Did not read entire message");
+      }
+    }
+    g_core_codegen_interface->grpc_byte_buffer_destroy(buffer);
+    return result;
   }
 };
 
diff --git a/include/grpc++/impl/server_builder_option.h b/include/grpc++/impl/server_builder_option.h
index bcb1982..2b7e89f 100644
--- a/include/grpc++/impl/server_builder_option.h
+++ b/include/grpc++/impl/server_builder_option.h
@@ -34,6 +34,10 @@
 #ifndef GRPCXX_IMPL_SERVER_BUILDER_OPTION_H
 #define GRPCXX_IMPL_SERVER_BUILDER_OPTION_H
 
+#include <map>
+#include <memory>
+
+#include <grpc++/impl/server_builder_plugin.h>
 #include <grpc++/support/channel_arguments.h>
 
 namespace grpc {
@@ -44,6 +48,10 @@
   virtual ~ServerBuilderOption() {}
   /// Alter the \a ChannelArguments used to create the gRPC server.
   virtual void UpdateArguments(ChannelArguments* args) = 0;
+  /// Alter the ServerBuilderPlugin map that will be added into ServerBuilder.
+  virtual void UpdatePlugins(
+      std::map<grpc::string, std::unique_ptr<ServerBuilderPlugin> >*
+          plugins) = 0;
 };
 
 }  // namespace grpc
diff --git a/examples/node/greeter_client.js b/include/grpc++/impl/server_builder_plugin.h
similarity index 60%
copy from examples/node/greeter_client.js
copy to include/grpc++/impl/server_builder_plugin.h
index 2820acb..1e157ef 100644
--- a/examples/node/greeter_client.js
+++ b/include/grpc++/impl/server_builder_plugin.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,23 +31,37 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+#ifndef GRPCXX_IMPL_SERVER_BUILDER_PLUGIN_H
+#define GRPCXX_IMPL_SERVER_BUILDER_PLUGIN_H
 
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
+#include <memory>
 
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
-}
+#include <grpc++/support/config.h>
 
-main();
+namespace grpc {
+
+class ServerInitializer;
+
+class ServerBuilderPlugin {
+ public:
+  virtual ~ServerBuilderPlugin() {}
+  virtual grpc::string name() = 0;
+
+  // InitServer will be called in ServerBuilder::BuildAndStart(), after the
+  // Server instance is created.
+  virtual void InitServer(ServerInitializer* si) = 0;
+
+  // Finish will be called at the end of ServerBuilder::BuildAndStart().
+  virtual void Finish(ServerInitializer* si) = 0;
+
+  // ChangeArguments is an interface that can be used in
+  // ServerBuilderOption::UpdatePlugins
+  virtual void ChangeArguments(const grpc::string& name, void* value) = 0;
+
+  virtual bool has_sync_methods() const { return false; }
+  virtual bool has_async_methods() const { return false; }
+};
+
+}  // namespace grpc
+
+#endif  // GRPCXX_IMPL_SERVER_BUILDER_PLUGIN_H
diff --git a/examples/node/greeter_client.js b/include/grpc++/impl/server_initializer.h
similarity index 66%
copy from examples/node/greeter_client.js
copy to include/grpc++/impl/server_initializer.h
index 2820acb..dbcecc7 100644
--- a/examples/node/greeter_client.js
+++ b/include/grpc++/impl/server_initializer.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,23 +31,40 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+#ifndef GRPCXX_IMPL_SERVER_INITIALIZER_H
+#define GRPCXX_IMPL_SERVER_INITIALIZER_H
 
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
+#include <memory>
+#include <vector>
 
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
+#include <grpc++/server.h>
+
+namespace grpc {
+
+class Server;
+class Service;
+
+class ServerInitializer {
+ public:
+  ServerInitializer(Server* server) : server_(server) {}
+
+  bool RegisterService(std::shared_ptr<Service> service) {
+    if (!server_->RegisterService(nullptr, service.get())) {
+      return false;
+    }
+    default_services_.push_back(service);
+    return true;
   }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
-}
 
-main();
+  const std::vector<grpc::string>* GetServiceList() {
+    return &server_->services_;
+  }
+
+ private:
+  Server* server_;
+  std::vector<std::shared_ptr<Service> > default_services_;
+};
+
+}  // namespace grpc
+
+#endif  // GRPCXX_IMPL_SERVER_INITIALIZER_H
diff --git a/include/grpc++/server.h b/include/grpc++/server.h
index 729a514..a0ee0e9 100644
--- a/include/grpc++/server.h
+++ b/include/grpc++/server.h
@@ -36,6 +36,7 @@
 
 #include <list>
 #include <memory>
+#include <vector>
 
 #include <grpc++/completion_queue.h>
 #include <grpc++/impl/call.h>
@@ -57,6 +58,7 @@
 class AsyncGenericService;
 class ServerAsyncStreamingInterface;
 class ServerContext;
+class ServerInitializer;
 class ThreadPoolInterface;
 
 /// Models a gRPC server.
@@ -94,6 +96,7 @@
  private:
   friend class AsyncGenericService;
   friend class ServerBuilder;
+  friend class ServerInitializer;
 
   class SyncRequest;
   class AsyncRequest;
@@ -159,6 +162,8 @@
 
   grpc_server* server() GRPC_OVERRIDE { return server_; };
 
+  ServerInitializer* initializer();
+
   const int max_message_size_;
 
   // Completion queue.
@@ -175,6 +180,7 @@
   std::shared_ptr<GlobalCallbacks> global_callbacks_;
 
   std::list<SyncRequest>* sync_methods_;
+  std::vector<grpc::string> services_;
   std::unique_ptr<RpcServiceMethod> unknown_method_;
   bool has_generic_service_;
 
@@ -184,6 +190,8 @@
   ThreadPoolInterface* thread_pool_;
   // Whether the thread pool is created and owned by the server.
   bool thread_pool_owned_;
+
+  std::unique_ptr<ServerInitializer> server_initializer_;
 };
 
 }  // namespace grpc
diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h
index 86c7fec..ad62952 100644
--- a/include/grpc++/server_builder.h
+++ b/include/grpc++/server_builder.h
@@ -34,10 +34,12 @@
 #ifndef GRPCXX_SERVER_BUILDER_H
 #define GRPCXX_SERVER_BUILDER_H
 
+#include <map>
 #include <memory>
 #include <vector>
 
 #include <grpc++/impl/server_builder_option.h>
+#include <grpc++/impl/server_builder_plugin.h>
 #include <grpc++/support/config.h>
 #include <grpc/compression.h>
 
@@ -51,6 +53,10 @@
 class ServerCredentials;
 class Service;
 
+namespace testing {
+class ServerBuilderPluginTest;
+}  // namespace testing
+
 /// A builder class for the creation and startup of \a grpc::Server instances.
 class ServerBuilder {
  public:
@@ -107,7 +113,13 @@
   /// Return a running server which is ready for processing calls.
   std::unique_ptr<Server> BuildAndStart();
 
+  /// For internal use only: Register a ServerBuilderPlugin factory function.
+  static void InternalAddPluginFactory(
+      std::unique_ptr<ServerBuilderPlugin> (*CreatePlugin)());
+
  private:
+  friend class ::grpc::testing::ServerBuilderPluginTest;
+
   struct Port {
     grpc::string addr;
     std::shared_ptr<ServerCredentials> creds;
@@ -130,6 +142,7 @@
   std::vector<Port> ports_;
   std::vector<ServerCompletionQueue*> cqs_;
   std::shared_ptr<ServerCredentials> creds_;
+  std::map<grpc::string, std::unique_ptr<ServerBuilderPlugin>> plugins_;
   AsyncGenericService* generic_service_;
 };
 
diff --git a/include/grpc/byte_buffer_reader.h b/include/grpc/byte_buffer_reader.h
index 9a1c617..e95bf2f 100644
--- a/include/grpc/byte_buffer_reader.h
+++ b/include/grpc/byte_buffer_reader.h
@@ -34,25 +34,6 @@
 #ifndef GRPC_BYTE_BUFFER_READER_H
 #define GRPC_BYTE_BUFFER_READER_H
 
-#include <grpc/byte_buffer.h>
-#include <grpc/grpc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct grpc_byte_buffer_reader {
-  grpc_byte_buffer *buffer_in;
-  grpc_byte_buffer *buffer_out;
-  /* Different current objects correspond to different types of byte buffers */
-  union {
-    /* Index into a slice buffer's array of slices */
-    unsigned index;
-  } current;
-};
-
-#ifdef __cplusplus
-}
-#endif
+#include <grpc/impl/codegen/byte_buffer_reader.h>
 
 #endif /* GRPC_BYTE_BUFFER_READER_H */
diff --git a/examples/node/greeter_client.js b/include/grpc/grpc_cronet.h
similarity index 72%
copy from examples/node/greeter_client.js
copy to include/grpc/grpc_cronet.h
index 2820acb..295e0f5 100644
--- a/examples/node/greeter_client.js
+++ b/include/grpc/grpc_cronet.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,23 +31,21 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+#ifndef GRPC_GRPC_CRONET_H
+#define GRPC_GRPC_CRONET_H
 
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
+#include <grpc/grpc.h>
 
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+GRPCAPI grpc_channel *grpc_cronet_secure_channel_create(
+    void *engine, const char *target, const grpc_channel_args *args,
+    void *reserved);
+
+#ifdef __cplusplus
 }
+#endif
 
-main();
+#endif /* GRPC_GRPC_CRONET_H */
diff --git a/examples/node/greeter_client.js b/include/grpc/impl/codegen/byte_buffer_reader.h
similarity index 74%
copy from examples/node/greeter_client.js
copy to include/grpc/impl/codegen/byte_buffer_reader.h
index 2820acb..10c3829 100644
--- a/examples/node/greeter_client.js
+++ b/include/grpc/impl/codegen/byte_buffer_reader.h
@@ -31,23 +31,27 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+#ifndef GRPC_IMPL_CODEGEN_BYTE_BUFFER_READER_H
+#define GRPC_IMPL_CODEGEN_BYTE_BUFFER_READER_H
 
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
+#include <grpc/impl/codegen/byte_buffer.h>
 
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct grpc_byte_buffer_reader {
+  grpc_byte_buffer *buffer_in;
+  grpc_byte_buffer *buffer_out;
+  /* Different current objects correspond to different types of byte buffers */
+  union {
+    /* Index into a slice buffer's array of slices */
+    unsigned index;
+  } current;
+};
+
+#ifdef __cplusplus
 }
+#endif
 
-main();
+#endif /* GRPC_IMPL_CODEGEN_BYTE_BUFFER_READER_H */
diff --git a/include/grpc/impl/codegen/compression_types.h b/include/grpc/impl/codegen/compression_types.h
index 0daccd9..8d2ec3b 100644
--- a/include/grpc/impl/codegen/compression_types.h
+++ b/include/grpc/impl/codegen/compression_types.h
@@ -41,10 +41,13 @@
 #endif
 
 /** To be used in channel arguments */
-#define GRPC_COMPRESSION_ALGORITHM_ARG "grpc.compression_algorithm"
-#define GRPC_COMPRESSION_ALGORITHM_STATE_ARG "grpc.compression_algorithm_state"
+#define GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM \
+  "grpc.default_compression_algorithm"
+#define GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL "grpc.default_compression_level"
+#define GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET \
+  "grpc.compression_enabled_algorithms_bitset"
 
-/* The various compression algorithms supported by GRPC */
+/* The various compression algorithms supported by gRPC */
 typedef enum {
   GRPC_COMPRESS_NONE = 0,
   GRPC_COMPRESS_DEFLATE,
@@ -53,6 +56,10 @@
   GRPC_COMPRESS_ALGORITHMS_COUNT
 } grpc_compression_algorithm;
 
+/** Compression levels allow a party with knowledge of its peer's accepted
+ * encodings to request compression in an abstract way. The level-algorithm
+ * mapping is performed internally and depends on the peer's supported
+ * compression algorithms. */
 typedef enum {
   GRPC_COMPRESS_LEVEL_NONE = 0,
   GRPC_COMPRESS_LEVEL_LOW,
@@ -62,8 +69,20 @@
 } grpc_compression_level;
 
 typedef struct grpc_compression_options {
-  uint32_t enabled_algorithms_bitset; /**< All algs are enabled by default */
-  grpc_compression_algorithm default_compression_algorithm; /**< for channel */
+  /** All algs are enabled by default. This option corresponds to the channel
+   * argument key behind \a GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET
+   */
+  uint32_t enabled_algorithms_bitset;
+
+  /** The default channel compression algorithm. It'll be used in the absence of
+   * call specific settings. This option corresponds to the channel argument key
+   * behind \a GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM */
+  grpc_compression_algorithm default_compression_algorithm;
+
+  /** The default channel compression level. It'll be used in the absence of
+   * call specific settings. This option corresponds to the channel argument key
+   * behind \a GRPC_COMPRESSION_CHANNEL_DEFAULT_LEVEL */
+  grpc_compression_algorithm default_compression_level;
 } grpc_compression_options;
 
 #ifdef __cplusplus
diff --git a/include/grpc/impl/codegen/grpc_types.h b/include/grpc/impl/codegen/grpc_types.h
index 4c73730..af3d0c2 100644
--- a/include/grpc/impl/codegen/grpc_types.h
+++ b/include/grpc/impl/codegen/grpc_types.h
@@ -152,6 +152,8 @@
    channel). If this parameter is specified and the underlying is not an SSL
    channel, it will just be ignored. */
 #define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG "grpc.ssl_target_name_override"
+/* Maximum metadata size */
+#define GRPC_ARG_MAX_METADATA_SIZE "grpc.max_metadata_size"
 
 /** Result of a grpc call. If the caller satisfies the prerequisites of a
     particular operation, the grpc_call_error returned will be GRPC_CALL_OK.
@@ -307,7 +309,9 @@
   GRPC_OP_RECV_STATUS_ON_CLIENT,
   /** Receive close on the server: one and only one must be made on the
       server.
-      This op completes after the close has been received by the server. */
+      This op completes after the close has been received by the server.
+      This operation always succeeds, meaning ops paired with this operation
+      will also appear to succeed, even though they may not have. */
   GRPC_OP_RECV_CLOSE_ON_SERVER
 } grpc_op_type;
 
diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h
index 1229d48..d2d9ac7 100644
--- a/include/grpc/impl/codegen/port_platform.h
+++ b/include/grpc/impl/codegen/port_platform.h
@@ -114,6 +114,38 @@
 #define GPR_WIN32_ATOMIC 1
 #define GPR_MSVC_TLS 1
 #endif
+#elif defined(GPR_MANYLINUX1)
+// TODO(atash): manylinux1 is just another __linux__ but with ancient
+// libraries; it should be integrated with the `__linux__` definitions below.
+#define GPR_PLATFORM_STRING "manylinux"
+#define GPR_POSIX_CRASH_HANDLER 1
+#define GPR_CPU_LINUX 1
+#define GPR_GCC_ATOMIC 1
+#define GPR_GCC_TLS 1
+#define GPR_LINUX 1
+#define GPR_LINUX_LOG 1
+#define GPR_POSIX_SOCKET 1
+#define GPR_POSIX_WAKEUP_FD 1
+#define GPR_POSIX_SOCKETADDR 1
+#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1
+#define GPR_POSIX_SOCKETUTILS 1
+#define GPR_HAVE_UNIX_SOCKET 1
+#define GPR_HAVE_IP_PKTINFO 1
+#define GPR_HAVE_IPV6_RECVPKTINFO 1
+#define GPR_LINUX_ENV 1
+#define GPR_POSIX_FILE 1
+#define GPR_POSIX_TMPFILE 1
+#define GPR_POSIX_STRING 1
+#define GPR_POSIX_SUBPROCESS 1
+#define GPR_POSIX_SYNC 1
+#define GPR_POSIX_TIME 1
+#define GPR_GETPID_IN_UNISTD_H 1
+#define GPR_HAVE_MSG_NOSIGNAL 1
+#ifdef _LP64
+#define GPR_ARCH_64 1
+#else /* _LP64 */
+#define GPR_ARCH_32 1
+#endif /* _LP64 */
 #elif defined(ANDROID) || defined(__ANDROID__)
 #define GPR_PLATFORM_STRING "android"
 #define GPR_ANDROID 1
diff --git a/include/grpc/impl/codegen/slice_buffer.h b/include/grpc/impl/codegen/slice_buffer.h
index 8ca51ba..7858021 100644
--- a/include/grpc/impl/codegen/slice_buffer.h
+++ b/include/grpc/impl/codegen/slice_buffer.h
@@ -42,9 +42,8 @@
 
 #define GRPC_SLICE_BUFFER_INLINE_ELEMENTS 8
 
-/* Represents an expandable array of slices, to be interpreted as a single item
-   TODO(ctiller): inline some small number of elements into the struct, to
-                  avoid per-call allocations */
+/* Represents an expandable array of slices, to be interpreted as a
+   single item. */
 typedef struct {
   /* slices in the array */
   gpr_slice *slices;
diff --git a/package.json b/package.json
index 5ed7f36..5bdaa76 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "grpc",
-  "version": "0.14.0-dev",
+  "version": "0.15.0-dev",
   "author": "Google Inc.",
   "description": "gRPC Library for Node",
   "homepage": "http://www.grpc.io/",
@@ -67,6 +67,8 @@
     "src/node/ext",
     "include/grpc",
     "src/core",
+    "src/boringssl",
+    "src/zlib",
     "third_party/nanopb",
     "third_party/zlib",
     "third_party/boringssl",
diff --git a/package.xml b/package.xml
index ffb1c56..33a769a 100644
--- a/package.xml
+++ b/package.xml
@@ -13,8 +13,8 @@
  <date>2016-04-19</date>
  <time>16:06:07</time>
  <version>
-  <release>0.14.0</release>
-  <api>0.14.0</api>
+  <release>0.15.0</release>
+  <api>0.15.0</api>
  </version>
  <stability>
   <release>beta</release>
@@ -156,6 +156,7 @@
     <file baseinstalldir="/" name="include/grpc/grpc.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/status.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/impl/codegen/byte_buffer.h" role="src" />
+    <file baseinstalldir="/" name="include/grpc/impl/codegen/byte_buffer_reader.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/impl/codegen/compression_types.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/impl/codegen/connectivity_state.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/impl/codegen/grpc_types.h" role="src" />
@@ -175,6 +176,7 @@
     <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_posix.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_win32.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/impl/codegen/time.h" role="src" />
+    <file baseinstalldir="/" name="include/grpc/grpc_cronet.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/grpc_security.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/grpc_security_constants.h" role="src" />
     <file baseinstalldir="/" name="include/grpc/census.h" role="src" />
@@ -196,6 +198,7 @@
     <file baseinstalldir="/" name="src/core/lib/iomgr/endpoint.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/ev_poll_and_epoll_posix.h" role="src" />
+    <file baseinstalldir="/" name="src/core/lib/iomgr/ev_poll_posix.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/ev_posix.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/exec_ctx.h" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/executor.h" role="src" />
@@ -302,8 +305,9 @@
     <file baseinstalldir="/" name="src/core/ext/client_config/subchannel_call_holder.h" role="src" />
     <file baseinstalldir="/" name="src/core/ext/client_config/subchannel_index.h" role="src" />
     <file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.h" role="src" />
+    <file baseinstalldir="/" name="third_party/objective_c/Cronet/cronet_c_for_grpc.h" role="src" />
     <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.h" role="src" />
-    <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h" role="src" />
     <file baseinstalldir="/" name="third_party/nanopb/pb.h" role="src" />
     <file baseinstalldir="/" name="third_party/nanopb/pb_common.h" role="src" />
     <file baseinstalldir="/" name="third_party/nanopb/pb_decode.h" role="src" />
@@ -333,6 +337,7 @@
     <file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_posix.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_windows.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/ev_poll_and_epoll_posix.c" role="src" />
+    <file baseinstalldir="/" name="src/core/lib/iomgr/ev_poll_posix.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/ev_posix.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/exec_ctx.c" role="src" />
     <file baseinstalldir="/" name="src/core/lib/iomgr/executor.c" role="src" />
@@ -460,8 +465,11 @@
     <file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/transport/chttp2/server/insecure/server_chttp2.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/insecure/channel_create.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/transport/cronet/client/secure/cronet_channel_create.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/transport/cronet/transport/cronet_api_dummy.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/transport/cronet/transport/cronet_transport.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.c" role="src" />
-    <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c" role="src" />
     <file baseinstalldir="/" name="third_party/nanopb/pb_common.c" role="src" />
     <file baseinstalldir="/" name="third_party/nanopb/pb_decode.c" role="src" />
     <file baseinstalldir="/" name="third_party/nanopb/pb_encode.c" role="src" />
@@ -1013,8 +1021,8 @@
   </release>
   <release>
    <version>
-    <release>0.14.0</release>
-    <api>0.14.0</api>
+    <release>0.15.0</release>
+    <api>0.15.0</api>
    </version>
    <stability>
     <release>beta</release>
diff --git a/setup.py b/setup.py
index cd0d3a1..f96824f 100644
--- a/setup.py
+++ b/setup.py
@@ -54,7 +54,6 @@
 
 # Break import-style to ensure we can actually find our in-repo dependencies.
 import commands
-import precompiled
 import grpc_core_dependencies
 import grpc_version
 
@@ -173,7 +172,6 @@
     'build_project_metadata': commands.BuildProjectMetadata,
     'build_py': commands.BuildPy,
     'build_ext': commands.BuildExt,
-    'build_tagged_ext': precompiled.BuildTaggedExt,
     'gather': commands.Gather,
     'run_interop': commands.RunInterop,
     'test_lite': commands.TestLite
@@ -229,23 +227,21 @@
   PACKAGES = setuptools.find_packages(
       PYTHON_STEM, exclude=['tests', 'tests.*'])
 
-setup_arguments = {
-    'name': 'grpcio',
-    'version': grpc_version.VERSION,
-    'license': LICENSE,
-    'ext_modules': CYTHON_EXTENSION_MODULES,
-    'packages': list(PACKAGES),
-    'package_dir': PACKAGE_DIRECTORIES,
-    'package_data': PACKAGE_DATA,
-    'install_requires': INSTALL_REQUIRES,
-    'setup_requires': SETUP_REQUIRES,
-    'cmdclass': COMMAND_CLASS,
-    'tests_require': TESTS_REQUIRE,
-    'test_suite': TEST_SUITE,
-    'test_loader': TEST_LOADER,
-    'test_runner': TEST_RUNNER,
-}
-
-precompiled.update_setup_arguments(setup_arguments)
-
-setuptools.setup(**setup_arguments)
+setuptools.setup(
+  name='grpcio',
+  version=grpc_version.VERSION,
+  license=LICENSE,
+  ext_modules=CYTHON_EXTENSION_MODULES,
+  packages=list(PACKAGES),
+  package_dir=PACKAGE_DIRECTORIES,
+  # TODO(atash): Figure out why auditwheel doesn't like namespace packages.
+  #namespace_packages=['grpc'],
+  package_data=PACKAGE_DATA,
+  install_requires=INSTALL_REQUIRES,
+  setup_requires=SETUP_REQUIRES,
+  cmdclass=COMMAND_CLASS,
+  tests_require=TESTS_REQUIRE,
+  test_suite=TEST_SUITE,
+  test_loader=TEST_LOADER,
+  test_runner=TEST_RUNNER,
+)
diff --git a/src/compiler/csharp_generator.cc b/src/compiler/csharp_generator.cc
index ac0fee1..29c359c 100644
--- a/src/compiler/csharp_generator.cc
+++ b/src/compiler/csharp_generator.cc
@@ -214,10 +214,10 @@
   switch (GetMethodType(method)) {
     case METHODTYPE_NO_STREAMING:
     case METHODTYPE_CLIENT_STREAMING:
-      return "Task<" + GetClassName(method->output_type()) + ">";
+      return "global::System.Threading.Tasks.Task<" + GetClassName(method->output_type()) + ">";
     case METHODTYPE_SERVER_STREAMING:
     case METHODTYPE_BIDI_STREAMING:
-      return "Task";
+      return "global::System.Threading.Tasks.Task";
   }
   GOOGLE_LOG(FATAL)<< "Can't get here.";
   return "";
diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc
index 59137e1..cd5ddd8 100644
--- a/src/compiler/python_generator.cc
+++ b/src/compiler/python_generator.cc
@@ -147,7 +147,8 @@
 // END FORMATTING BOILERPLATE //
 ////////////////////////////////
 
-// TODO(protobuf team): Export `ModuleName` from protobuf's
+// TODO(https://github.com/google/protobuf/issues/888):
+// Export `ModuleName` from protobuf's
 // `src/google/protobuf/compiler/python/python_generator.cc` file.
 grpc::string ModuleName(const grpc::string& filename) {
   grpc::string basename = StripProto(filename);
@@ -156,8 +157,23 @@
   return basename + "_pb2";
 }
 
+// TODO(https://github.com/google/protobuf/issues/888):
+// Export `ModuleAlias` from protobuf's
+// `src/google/protobuf/compiler/python/python_generator.cc` file.
+grpc::string ModuleAlias(const grpc::string& filename) {
+  grpc::string module_name = ModuleName(filename);
+  // We can't have dots in the module name, so we replace each with _dot_.
+  // But that could lead to a collision between a.b and a_dot_b, so we also
+  // duplicate each underscore.
+  module_name = StringReplace(module_name, "_", "__");
+  module_name = StringReplace(module_name, ".", "_dot_");
+  return module_name;
+}
+
+
 bool GetModuleAndMessagePath(const Descriptor* type,
-                             pair<grpc::string, grpc::string>* out) {
+                             const ServiceDescriptor* service,
+                             grpc::string* out) {
   const Descriptor* path_elem_type = type;
   vector<const Descriptor*> message_path;
   do {
@@ -170,7 +186,9 @@
         file_name.find_last_of(".proto") == file_name.size() - 1)) {
     return false;
   }
-  grpc::string module = ModuleName(file_name);
+  grpc::string service_file_name = service->file()->name();
+  grpc::string module = service_file_name == file_name ?
+          "" : ModuleAlias(file_name) + ".";
   grpc::string message_type;
   for (auto path_iter = message_path.rbegin();
        path_iter != message_path.rend(); ++path_iter) {
@@ -178,22 +196,44 @@
   }
   // no pop_back prior to C++11
   message_type.resize(message_type.size() - 1);
-  *out = make_pair(module, message_type);
+  *out = module + message_type;
   return true;
 }
 
+// Get all comments (leading, leading_detached, trailing) and print them as a
+// docstring. Any leading space of a line will be removed, but the line wrapping
+// will not be changed.
+template <typename DescriptorType>
+static void PrintAllComments(const DescriptorType* desc, Printer* printer) {
+  std::vector<grpc::string> comments;
+  grpc_generator::GetComment(desc, grpc_generator::COMMENTTYPE_LEADING_DETACHED,
+                             &comments);
+  grpc_generator::GetComment(desc, grpc_generator::COMMENTTYPE_LEADING,
+                             &comments);
+  grpc_generator::GetComment(desc, grpc_generator::COMMENTTYPE_TRAILING,
+                             &comments);
+  if (comments.empty()) {
+    return;
+  }
+  printer->Print("\"\"\"");
+  for (auto it = comments.begin(); it != comments.end(); ++it) {
+    size_t start_pos = it->find_first_not_of(' ');
+    if (start_pos != grpc::string::npos) {
+      printer->Print(it->c_str() + start_pos);
+    }
+    printer->Print("\n");
+  }
+  printer->Print("\"\"\"\n");
+}
+
 bool PrintBetaServicer(const ServiceDescriptor* service,
                        Printer* out) {
-  grpc::string doc = "<fill me in later!>";
-  map<grpc::string, grpc::string> dict = ListToDict({
-        "Service", service->name(),
-        "Documentation", doc,
-      });
-  out->Print("\n");
-  out->Print(dict, "class Beta$Service$Servicer(object):\n");
+  out->Print("\n\n");
+  out->Print("class Beta$Service$Servicer(object):\n", "Service",
+             service->name());
   {
     IndentScope raii_class_indent(out);
-    out->Print(dict, "\"\"\"$Documentation$\"\"\"\n");
+    PrintAllComments(service, out);
     for (int i = 0; i < service->method_count(); ++i) {
       auto meth = service->method(i);
       grpc::string arg_name = meth->client_streaming() ?
@@ -202,6 +242,7 @@
                  "Method", meth->name(), "ArgName", arg_name);
       {
         IndentScope raii_method_indent(out);
+        PrintAllComments(meth, out);
         out->Print("context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)\n");
       }
     }
@@ -211,24 +252,20 @@
 
 bool PrintBetaStub(const ServiceDescriptor* service,
                    Printer* out) {
-  grpc::string doc = "The interface to which stubs will conform.";
-  map<grpc::string, grpc::string> dict = ListToDict({
-        "Service", service->name(),
-        "Documentation", doc,
-      });
-  out->Print("\n");
-  out->Print(dict, "class Beta$Service$Stub(object):\n");
+  out->Print("\n\n");
+  out->Print("class Beta$Service$Stub(object):\n", "Service", service->name());
   {
     IndentScope raii_class_indent(out);
-    out->Print(dict, "\"\"\"$Documentation$\"\"\"\n");
+    PrintAllComments(service, out);
     for (int i = 0; i < service->method_count(); ++i) {
       const MethodDescriptor* meth = service->method(i);
       grpc::string arg_name = meth->client_streaming() ?
           "request_iterator" : "request";
       auto methdict = ListToDict({"Method", meth->name(), "ArgName", arg_name});
-      out->Print(methdict, "def $Method$(self, $ArgName$, timeout):\n");
+      out->Print(methdict, "def $Method$(self, $ArgName$, timeout, metadata=None, with_call=False, protocol_options=None):\n");
       {
         IndentScope raii_method_indent(out);
+        PrintAllComments(meth, out);
         out->Print("raise NotImplementedError()\n");
       }
       if (!meth->server_streaming()) {
@@ -241,38 +278,31 @@
 
 bool PrintBetaServerFactory(const grpc::string& package_qualified_service_name,
                             const ServiceDescriptor* service, Printer* out) {
-  out->Print("\n");
+  out->Print("\n\n");
   out->Print("def beta_create_$Service$_server(servicer, pool=None, "
              "pool_size=None, default_timeout=None, maximum_timeout=None):\n",
              "Service", service->name());
   {
     IndentScope raii_create_server_indent(out);
     map<grpc::string, grpc::string> method_implementation_constructors;
-    map<grpc::string, pair<grpc::string, grpc::string>>
-        input_message_modules_and_classes;
-    map<grpc::string, pair<grpc::string, grpc::string>>
-        output_message_modules_and_classes;
+    map<grpc::string, grpc::string> input_message_modules_and_classes;
+    map<grpc::string, grpc::string> output_message_modules_and_classes;
     for (int i = 0; i < service->method_count(); ++i) {
       const MethodDescriptor* method = service->method(i);
       const grpc::string method_implementation_constructor =
           grpc::string(method->client_streaming() ? "stream_" : "unary_") +
           grpc::string(method->server_streaming() ? "stream_" : "unary_") +
           "inline";
-      pair<grpc::string, grpc::string> input_message_module_and_class;
-      if (!GetModuleAndMessagePath(method->input_type(),
+      grpc::string input_message_module_and_class;
+      if (!GetModuleAndMessagePath(method->input_type(), service,
                                    &input_message_module_and_class)) {
         return false;
       }
-      pair<grpc::string, grpc::string> output_message_module_and_class;
-      if (!GetModuleAndMessagePath(method->output_type(),
+      grpc::string output_message_module_and_class;
+      if (!GetModuleAndMessagePath(method->output_type(), service,
                                    &output_message_module_and_class)) {
         return false;
       }
-      // Import the modules that define the messages used in RPCs.
-      out->Print("import $Module$\n", "Module",
-                 input_message_module_and_class.first);
-      out->Print("import $Module$\n", "Module",
-                 output_message_module_and_class.first);
       method_implementation_constructors.insert(
           make_pair(method->name(), method_implementation_constructor));
       input_message_modules_and_classes.insert(
@@ -288,13 +318,11 @@
          name_and_input_module_class_pair++) {
       IndentScope raii_indent(out);
       out->Print("(\'$PackageQualifiedServiceName$\', \'$MethodName$\'): "
-                 "$InputTypeModule$.$InputTypeClass$.FromString,\n",
+                 "$InputTypeModuleAndClass$.FromString,\n",
                  "PackageQualifiedServiceName", package_qualified_service_name,
                  "MethodName", name_and_input_module_class_pair->first,
-                 "InputTypeModule",
-                 name_and_input_module_class_pair->second.first,
-                 "InputTypeClass",
-                 name_and_input_module_class_pair->second.second);
+                 "InputTypeModuleAndClass",
+                 name_and_input_module_class_pair->second);
     }
     out->Print("}\n");
     out->Print("response_serializers = {\n");
@@ -305,13 +333,11 @@
          name_and_output_module_class_pair++) {
       IndentScope raii_indent(out);
       out->Print("(\'$PackageQualifiedServiceName$\', \'$MethodName$\'): "
-                 "$OutputTypeModule$.$OutputTypeClass$.SerializeToString,\n",
+                 "$OutputTypeModuleAndClass$.SerializeToString,\n",
                  "PackageQualifiedServiceName", package_qualified_service_name,
                  "MethodName", name_and_output_module_class_pair->first,
-                 "OutputTypeModule",
-                 name_and_output_module_class_pair->second.first,
-                 "OutputTypeClass",
-                 name_and_output_module_class_pair->second.second);
+                 "OutputTypeModuleAndClass",
+                 name_and_output_module_class_pair->second);
     }
     out->Print("}\n");
     out->Print("method_implementations = {\n");
@@ -347,37 +373,30 @@
   map<grpc::string, grpc::string> dict = ListToDict({
         "Service", service->name(),
       });
-  out->Print("\n");
+  out->Print("\n\n");
   out->Print(dict, "def beta_create_$Service$_stub(channel, host=None,"
              " metadata_transformer=None, pool=None, pool_size=None):\n");
   {
     IndentScope raii_create_server_indent(out);
     map<grpc::string, grpc::string> method_cardinalities;
-    map<grpc::string, pair<grpc::string, grpc::string>>
-        input_message_modules_and_classes;
-    map<grpc::string, pair<grpc::string, grpc::string>>
-        output_message_modules_and_classes;
+    map<grpc::string, grpc::string> input_message_modules_and_classes;
+    map<grpc::string, grpc::string> output_message_modules_and_classes;
     for (int i = 0; i < service->method_count(); ++i) {
       const MethodDescriptor* method = service->method(i);
       const grpc::string method_cardinality =
           grpc::string(method->client_streaming() ? "STREAM" : "UNARY") +
           "_" +
-	  grpc::string(method->server_streaming() ? "STREAM" : "UNARY");
-      pair<grpc::string, grpc::string> input_message_module_and_class;
-      if (!GetModuleAndMessagePath(method->input_type(),
+          grpc::string(method->server_streaming() ? "STREAM" : "UNARY");
+      grpc::string input_message_module_and_class;
+      if (!GetModuleAndMessagePath(method->input_type(), service,
                                    &input_message_module_and_class)) {
         return false;
       }
-      pair<grpc::string, grpc::string> output_message_module_and_class;
-      if (!GetModuleAndMessagePath(method->output_type(),
+      grpc::string output_message_module_and_class;
+      if (!GetModuleAndMessagePath(method->output_type(), service,
                                    &output_message_module_and_class)) {
         return false;
       }
-      // Import the modules that define the messages used in RPCs.
-      out->Print("import $Module$\n", "Module",
-                 input_message_module_and_class.first);
-      out->Print("import $Module$\n", "Module",
-                 output_message_module_and_class.first);
       method_cardinalities.insert(
           make_pair(method->name(), method_cardinality));
       input_message_modules_and_classes.insert(
@@ -393,13 +412,11 @@
          name_and_input_module_class_pair++) {
       IndentScope raii_indent(out);
       out->Print("(\'$PackageQualifiedServiceName$\', \'$MethodName$\'): "
-                 "$InputTypeModule$.$InputTypeClass$.SerializeToString,\n",
+                 "$InputTypeModuleAndClass$.SerializeToString,\n",
                  "PackageQualifiedServiceName", package_qualified_service_name,
                  "MethodName", name_and_input_module_class_pair->first,
-                 "InputTypeModule",
-                 name_and_input_module_class_pair->second.first,
-                 "InputTypeClass",
-                 name_and_input_module_class_pair->second.second);
+                 "InputTypeModuleAndClass",
+                 name_and_input_module_class_pair->second);
     }
     out->Print("}\n");
     out->Print("response_deserializers = {\n");
@@ -410,13 +427,11 @@
          name_and_output_module_class_pair++) {
       IndentScope raii_indent(out);
       out->Print("(\'$PackageQualifiedServiceName$\', \'$MethodName$\'): "
-                 "$OutputTypeModule$.$OutputTypeClass$.FromString,\n",
+                 "$OutputTypeModuleAndClass$.FromString,\n",
                  "PackageQualifiedServiceName", package_qualified_service_name,
                  "MethodName", name_and_output_module_class_pair->first,
-                 "OutputTypeModule",
-                 name_and_output_module_class_pair->second.first,
-                 "OutputTypeClass",
-                 name_and_output_module_class_pair->second.second);
+                 "OutputTypeModuleAndClass",
+                 name_and_output_module_class_pair->second);
     }
     out->Print("}\n");
     out->Print("cardinalities = {\n");
@@ -444,8 +459,6 @@
 
 bool PrintPreamble(const FileDescriptor* file,
                    const GeneratorConfiguration& config, Printer* out) {
-  out->Print("import abc\n");
-  out->Print("import six\n");
   out->Print("from $Package$ import implementations as beta_implementations\n",
              "Package", config.beta_package_root);
   out->Print("from $Package$ import interfaces as beta_interfaces\n",
diff --git a/src/compiler/ruby_generator.cc b/src/compiler/ruby_generator.cc
index 5ac56ad..936a186 100644
--- a/src/compiler/ruby_generator.cc
+++ b/src/compiler/ruby_generator.cc
@@ -98,8 +98,8 @@
   out->Print("self.marshal_class_method = :encode\n");
   out->Print("self.unmarshal_class_method = :decode\n");
   std::map<grpc::string, grpc::string> pkg_vars =
-      ListToDict({"service.name", service->name(), "pkg.name", package, });
-  out->Print(pkg_vars, "self.service_name = '$pkg.name$.$service.name$'\n");
+      ListToDict({"service_full_name", service->full_name()});
+  out->Print(pkg_vars, "self.service_name = '$service_full_name$'\n");
   out->Print("\n");
   for (int i = 0; i < service->method_count(); ++i) {
     PrintMethod(service->method(i), package, out);
diff --git a/src/core/ext/client_config/resolver_registry.c b/src/core/ext/client_config/resolver_registry.c
index 07f29bc..e7a4abd 100644
--- a/src/core/ext/client_config/resolver_registry.c
+++ b/src/core/ext/client_config/resolver_registry.c
@@ -47,7 +47,6 @@
 static char *g_default_resolver_prefix;
 
 void grpc_resolver_registry_init(const char *default_resolver_prefix) {
-  g_number_of_resolvers = 0;
   g_default_resolver_prefix = gpr_strdup(default_resolver_prefix);
 }
 
@@ -57,6 +56,13 @@
     grpc_resolver_factory_unref(g_all_of_the_resolvers[i]);
   }
   gpr_free(g_default_resolver_prefix);
+  // FIXME(ctiller): this should live in grpc_resolver_registry_init,
+  // however that would have the client_config plugin call this AFTER we start
+  // registering resolvers from third party plugins, and so they'd never show
+  // up.
+  // We likely need some kind of dependency system for plugins.... what form
+  // that takes is TBD.
+  g_number_of_resolvers = 0;
 }
 
 void grpc_register_resolver_type(grpc_resolver_factory *factory) {
diff --git a/src/core/ext/client_config/subchannel.c b/src/core/ext/client_config/subchannel.c
index 3a5af9f..bd45d38 100644
--- a/src/core/ext/client_config/subchannel.c
+++ b/src/core/ext/client_config/subchannel.c
@@ -268,7 +268,7 @@
   con = GET_CONNECTED_SUBCHANNEL(c, no_barrier);
   if (con != NULL) {
     GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, con, "connection");
-    gpr_atm_no_barrier_store(&c->connected_subchannel, 0xdeadbeef);
+    gpr_atm_no_barrier_store(&c->connected_subchannel, (gpr_atm)0xdeadbeef);
   }
   gpr_mu_unlock(&c->mu);
 }
diff --git a/src/core/ext/client_config/subchannel_call_holder.c b/src/core/ext/client_config/subchannel_call_holder.c
index 9918fbd..91fa917 100644
--- a/src/core/ext/client_config/subchannel_call_holder.c
+++ b/src/core/ext/client_config/subchannel_call_holder.c
@@ -174,6 +174,7 @@
              GRPC_SUBCHANNEL_CALL_HOLDER_PICKING_SUBCHANNEL);
   holder->creation_phase = GRPC_SUBCHANNEL_CALL_HOLDER_NOT_CREATING;
   if (holder->connected_subchannel == NULL) {
+    gpr_atm_no_barrier_store(&holder->subchannel_call, 1);
     fail_locked(exec_ctx, holder);
   } else if (1 == gpr_atm_acq_load(&holder->subchannel_call)) {
     /* already cancelled before subchannel became ready */
diff --git a/src/core/ext/lb_policy/grpclb/load_balancer_api.c b/src/core/ext/lb_policy/grpclb/load_balancer_api.c
index 459d6d9..59b8999 100644
--- a/src/core/ext/lb_policy/grpclb/load_balancer_api.c
+++ b/src/core/ext/lb_policy/grpclb/load_balancer_api.c
@@ -50,7 +50,7 @@
   decode_serverlist_arg *dec_arg = *arg;
   if (dec_arg->first_pass != 0) { /* first pass */
     grpc_grpclb_server server;
-    if (!pb_decode(stream, grpc_lb_v0_Server_fields, &server)) {
+    if (!pb_decode(stream, grpc_lb_v1_Server_fields, &server)) {
       return false;
     }
     dec_arg->num_servers++;
@@ -61,7 +61,7 @@
       dec_arg->servers =
           gpr_malloc(sizeof(grpc_grpclb_server *) * dec_arg->num_servers);
     }
-    if (!pb_decode(stream, grpc_lb_v0_Server_fields, server)) {
+    if (!pb_decode(stream, grpc_lb_v1_Server_fields, server)) {
       return false;
     }
     dec_arg->servers[dec_arg->i++] = server;
@@ -87,13 +87,13 @@
   pb_ostream_t outputstream;
   gpr_slice slice;
   memset(&sizestream, 0, sizeof(pb_ostream_t));
-  pb_encode(&sizestream, grpc_lb_v0_LoadBalanceRequest_fields, request);
+  pb_encode(&sizestream, grpc_lb_v1_LoadBalanceRequest_fields, request);
   encoded_length = sizestream.bytes_written;
 
   slice = gpr_slice_malloc(encoded_length);
   outputstream =
       pb_ostream_from_buffer(GPR_SLICE_START_PTR(slice), encoded_length);
-  GPR_ASSERT(pb_encode(&outputstream, grpc_lb_v0_LoadBalanceRequest_fields,
+  GPR_ASSERT(pb_encode(&outputstream, grpc_lb_v1_LoadBalanceRequest_fields,
                        request) != 0);
   return slice;
 }
@@ -109,7 +109,7 @@
                              GPR_SLICE_LENGTH(encoded_response));
   grpc_grpclb_response *res = gpr_malloc(sizeof(grpc_grpclb_response));
   memset(res, 0, sizeof(*res));
-  status = pb_decode(&stream, grpc_lb_v0_LoadBalanceResponse_fields, res);
+  status = pb_decode(&stream, grpc_lb_v1_LoadBalanceResponse_fields, res);
   if (!status) {
     grpc_grpclb_response_destroy(res);
     return NULL;
@@ -132,7 +132,7 @@
   res->server_list.servers.funcs.decode = decode_serverlist;
   res->server_list.servers.arg = &arg;
   arg.first_pass = 1;
-  status = pb_decode(&stream, grpc_lb_v0_LoadBalanceResponse_fields, res);
+  status = pb_decode(&stream, grpc_lb_v1_LoadBalanceResponse_fields, res);
   if (!status) {
     grpc_grpclb_response_destroy(res);
     return NULL;
@@ -140,7 +140,7 @@
 
   arg.first_pass = 0;
   status =
-      pb_decode(&stream_at_start, grpc_lb_v0_LoadBalanceResponse_fields, res);
+      pb_decode(&stream_at_start, grpc_lb_v1_LoadBalanceResponse_fields, res);
   if (!status) {
     grpc_grpclb_response_destroy(res);
     return NULL;
diff --git a/src/core/ext/lb_policy/grpclb/load_balancer_api.h b/src/core/ext/lb_policy/grpclb/load_balancer_api.h
index 968f7d2..71b5616 100644
--- a/src/core/ext/lb_policy/grpclb/load_balancer_api.h
+++ b/src/core/ext/lb_policy/grpclb/load_balancer_api.h
@@ -37,7 +37,7 @@
 #include <grpc/support/slice_buffer.h>
 
 #include "src/core/ext/client_config/lb_policy_factory.h"
-#include "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h"
+#include "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -45,10 +45,10 @@
 
 #define GRPC_GRPCLB_SERVICE_NAME_MAX_LENGTH 128
 
-typedef grpc_lb_v0_LoadBalanceRequest grpc_grpclb_request;
-typedef grpc_lb_v0_LoadBalanceResponse grpc_grpclb_response;
-typedef grpc_lb_v0_Server grpc_grpclb_server;
-typedef grpc_lb_v0_Duration grpc_grpclb_duration;
+typedef grpc_lb_v1_LoadBalanceRequest grpc_grpclb_request;
+typedef grpc_lb_v1_LoadBalanceResponse grpc_grpclb_response;
+typedef grpc_lb_v1_Server grpc_grpclb_server;
+typedef grpc_lb_v1_Duration grpc_grpclb_duration;
 typedef struct grpc_grpclb_serverlist {
   grpc_grpclb_server **servers;
   size_t num_servers;
diff --git a/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c
deleted file mode 100644
index 9719673..0000000
--- a/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- *
- * Copyright 2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-/* Automatically generated nanopb constant definitions */
-/* Generated by nanopb-0.3.5-dev */
-
-#include "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h"
-
-#if PB_PROTO_HEADER_VERSION != 30
-#error Regenerate this file with the current version of nanopb generator.
-#endif
-
-
-
-const pb_field_t grpc_lb_v0_Duration_fields[3] = {
-    PB_FIELD(  1, INT64   , OPTIONAL, STATIC  , FIRST, grpc_lb_v0_Duration, seconds, seconds, 0),
-    PB_FIELD(  2, INT32   , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_Duration, nanos, seconds, 0),
-    PB_LAST_FIELD
-};
-
-const pb_field_t grpc_lb_v0_LoadBalanceRequest_fields[3] = {
-    PB_FIELD(  1, MESSAGE , OPTIONAL, STATIC  , FIRST, grpc_lb_v0_LoadBalanceRequest, initial_request, initial_request, &grpc_lb_v0_InitialLoadBalanceRequest_fields),
-    PB_FIELD(  2, MESSAGE , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_LoadBalanceRequest, client_stats, initial_request, &grpc_lb_v0_ClientStats_fields),
-    PB_LAST_FIELD
-};
-
-const pb_field_t grpc_lb_v0_InitialLoadBalanceRequest_fields[2] = {
-    PB_FIELD(  1, STRING  , OPTIONAL, STATIC  , FIRST, grpc_lb_v0_InitialLoadBalanceRequest, name, name, 0),
-    PB_LAST_FIELD
-};
-
-const pb_field_t grpc_lb_v0_ClientStats_fields[4] = {
-    PB_FIELD(  1, INT64   , OPTIONAL, STATIC  , FIRST, grpc_lb_v0_ClientStats, total_requests, total_requests, 0),
-    PB_FIELD(  2, INT64   , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_ClientStats, client_rpc_errors, total_requests, 0),
-    PB_FIELD(  3, INT64   , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_ClientStats, dropped_requests, client_rpc_errors, 0),
-    PB_LAST_FIELD
-};
-
-const pb_field_t grpc_lb_v0_LoadBalanceResponse_fields[3] = {
-    PB_FIELD(  1, MESSAGE , OPTIONAL, STATIC  , FIRST, grpc_lb_v0_LoadBalanceResponse, initial_response, initial_response, &grpc_lb_v0_InitialLoadBalanceResponse_fields),
-    PB_FIELD(  2, MESSAGE , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_LoadBalanceResponse, server_list, initial_response, &grpc_lb_v0_ServerList_fields),
-    PB_LAST_FIELD
-};
-
-const pb_field_t grpc_lb_v0_InitialLoadBalanceResponse_fields[4] = {
-    PB_FIELD(  1, STRING  , OPTIONAL, STATIC  , FIRST, grpc_lb_v0_InitialLoadBalanceResponse, client_config, client_config, 0),
-    PB_FIELD(  2, STRING  , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_InitialLoadBalanceResponse, load_balancer_delegate, client_config, 0),
-    PB_FIELD(  3, MESSAGE , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_InitialLoadBalanceResponse, client_stats_report_interval, load_balancer_delegate, &grpc_lb_v0_Duration_fields),
-    PB_LAST_FIELD
-};
-
-const pb_field_t grpc_lb_v0_ServerList_fields[3] = {
-    PB_FIELD(  1, MESSAGE , REPEATED, CALLBACK, FIRST, grpc_lb_v0_ServerList, servers, servers, &grpc_lb_v0_Server_fields),
-    PB_FIELD(  3, MESSAGE , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_ServerList, expiration_interval, servers, &grpc_lb_v0_Duration_fields),
-    PB_LAST_FIELD
-};
-
-const pb_field_t grpc_lb_v0_Server_fields[5] = {
-    PB_FIELD(  1, STRING  , OPTIONAL, STATIC  , FIRST, grpc_lb_v0_Server, ip_address, ip_address, 0),
-    PB_FIELD(  2, INT32   , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_Server, port, ip_address, 0),
-    PB_FIELD(  3, BYTES   , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_Server, load_balance_token, port, 0),
-    PB_FIELD(  4, BOOL    , OPTIONAL, STATIC  , OTHER, grpc_lb_v0_Server, drop_request, load_balance_token, 0),
-    PB_LAST_FIELD
-};
-
-
-/* Check that field information fits in pb_field_t */
-#if !defined(PB_FIELD_32BIT)
-/* If you get an error here, it means that you need to define PB_FIELD_32BIT
- * compile-time option. You can do that in pb.h or on compiler command line.
- * 
- * The reason you need to do this is that some of your messages contain tag
- * numbers or field sizes that are larger than what can fit in 8 or 16 bit
- * field descriptors.
- */
-PB_STATIC_ASSERT((pb_membersize(grpc_lb_v0_LoadBalanceRequest, initial_request) < 65536 && pb_membersize(grpc_lb_v0_LoadBalanceRequest, client_stats) < 65536 && pb_membersize(grpc_lb_v0_LoadBalanceResponse, initial_response) < 65536 && pb_membersize(grpc_lb_v0_LoadBalanceResponse, server_list) < 65536 && pb_membersize(grpc_lb_v0_InitialLoadBalanceResponse, client_stats_report_interval) < 65536 && pb_membersize(grpc_lb_v0_ServerList, servers) < 65536 && pb_membersize(grpc_lb_v0_ServerList, expiration_interval) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_grpc_lb_v0_Duration_grpc_lb_v0_LoadBalanceRequest_grpc_lb_v0_InitialLoadBalanceRequest_grpc_lb_v0_ClientStats_grpc_lb_v0_LoadBalanceResponse_grpc_lb_v0_InitialLoadBalanceResponse_grpc_lb_v0_ServerList_grpc_lb_v0_Server)
-#endif
-
-#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
-/* If you get an error here, it means that you need to define PB_FIELD_16BIT
- * compile-time option. You can do that in pb.h or on compiler command line.
- * 
- * The reason you need to do this is that some of your messages contain tag
- * numbers or field sizes that are larger than what can fit in the default
- * 8 bit descriptors.
- */
-PB_STATIC_ASSERT((pb_membersize(grpc_lb_v0_LoadBalanceRequest, initial_request) < 256 && pb_membersize(grpc_lb_v0_LoadBalanceRequest, client_stats) < 256 && pb_membersize(grpc_lb_v0_LoadBalanceResponse, initial_response) < 256 && pb_membersize(grpc_lb_v0_LoadBalanceResponse, server_list) < 256 && pb_membersize(grpc_lb_v0_InitialLoadBalanceResponse, client_stats_report_interval) < 256 && pb_membersize(grpc_lb_v0_ServerList, servers) < 256 && pb_membersize(grpc_lb_v0_ServerList, expiration_interval) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_grpc_lb_v0_Duration_grpc_lb_v0_LoadBalanceRequest_grpc_lb_v0_InitialLoadBalanceRequest_grpc_lb_v0_ClientStats_grpc_lb_v0_LoadBalanceResponse_grpc_lb_v0_InitialLoadBalanceResponse_grpc_lb_v0_ServerList_grpc_lb_v0_Server)
-#endif
-
-
diff --git a/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h
deleted file mode 100644
index 3599f88..0000000
--- a/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- *
- * Copyright 2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-/* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.5-dev */
-
-#ifndef PB_LOAD_BALANCER_PB_H_INCLUDED
-#define PB_LOAD_BALANCER_PB_H_INCLUDED
-#include "third_party/nanopb/pb.h"
-#if PB_PROTO_HEADER_VERSION != 30
-#error Regenerate this file with the current version of nanopb generator.
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Struct definitions */
-typedef struct _grpc_lb_v0_ClientStats {
-    bool has_total_requests;
-    int64_t total_requests;
-    bool has_client_rpc_errors;
-    int64_t client_rpc_errors;
-    bool has_dropped_requests;
-    int64_t dropped_requests;
-} grpc_lb_v0_ClientStats;
-
-typedef struct _grpc_lb_v0_Duration {
-    bool has_seconds;
-    int64_t seconds;
-    bool has_nanos;
-    int32_t nanos;
-} grpc_lb_v0_Duration;
-
-typedef struct _grpc_lb_v0_InitialLoadBalanceRequest {
-    bool has_name;
-    char name[128];
-} grpc_lb_v0_InitialLoadBalanceRequest;
-
-typedef PB_BYTES_ARRAY_T(64) grpc_lb_v0_Server_load_balance_token_t;
-typedef struct _grpc_lb_v0_Server {
-    bool has_ip_address;
-    char ip_address[46];
-    bool has_port;
-    int32_t port;
-    bool has_load_balance_token;
-    grpc_lb_v0_Server_load_balance_token_t load_balance_token;
-    bool has_drop_request;
-    bool drop_request;
-} grpc_lb_v0_Server;
-
-typedef struct _grpc_lb_v0_InitialLoadBalanceResponse {
-    bool has_client_config;
-    char client_config[64];
-    bool has_load_balancer_delegate;
-    char load_balancer_delegate[64];
-    bool has_client_stats_report_interval;
-    grpc_lb_v0_Duration client_stats_report_interval;
-} grpc_lb_v0_InitialLoadBalanceResponse;
-
-typedef struct _grpc_lb_v0_LoadBalanceRequest {
-    bool has_initial_request;
-    grpc_lb_v0_InitialLoadBalanceRequest initial_request;
-    bool has_client_stats;
-    grpc_lb_v0_ClientStats client_stats;
-} grpc_lb_v0_LoadBalanceRequest;
-
-typedef struct _grpc_lb_v0_ServerList {
-    pb_callback_t servers;
-    bool has_expiration_interval;
-    grpc_lb_v0_Duration expiration_interval;
-} grpc_lb_v0_ServerList;
-
-typedef struct _grpc_lb_v0_LoadBalanceResponse {
-    bool has_initial_response;
-    grpc_lb_v0_InitialLoadBalanceResponse initial_response;
-    bool has_server_list;
-    grpc_lb_v0_ServerList server_list;
-} grpc_lb_v0_LoadBalanceResponse;
-
-/* Default values for struct fields */
-
-/* Initializer values for message structs */
-#define grpc_lb_v0_Duration_init_default         {false, 0, false, 0}
-#define grpc_lb_v0_LoadBalanceRequest_init_default {false, grpc_lb_v0_InitialLoadBalanceRequest_init_default, false, grpc_lb_v0_ClientStats_init_default}
-#define grpc_lb_v0_InitialLoadBalanceRequest_init_default {false, ""}
-#define grpc_lb_v0_ClientStats_init_default      {false, 0, false, 0, false, 0}
-#define grpc_lb_v0_LoadBalanceResponse_init_default {false, grpc_lb_v0_InitialLoadBalanceResponse_init_default, false, grpc_lb_v0_ServerList_init_default}
-#define grpc_lb_v0_InitialLoadBalanceResponse_init_default {false, "", false, "", false, grpc_lb_v0_Duration_init_default}
-#define grpc_lb_v0_ServerList_init_default       {{{NULL}, NULL}, false, grpc_lb_v0_Duration_init_default}
-#define grpc_lb_v0_Server_init_default           {false, "", false, 0, false, {0, {0}}, false, 0}
-#define grpc_lb_v0_Duration_init_zero            {false, 0, false, 0}
-#define grpc_lb_v0_LoadBalanceRequest_init_zero  {false, grpc_lb_v0_InitialLoadBalanceRequest_init_zero, false, grpc_lb_v0_ClientStats_init_zero}
-#define grpc_lb_v0_InitialLoadBalanceRequest_init_zero {false, ""}
-#define grpc_lb_v0_ClientStats_init_zero         {false, 0, false, 0, false, 0}
-#define grpc_lb_v0_LoadBalanceResponse_init_zero {false, grpc_lb_v0_InitialLoadBalanceResponse_init_zero, false, grpc_lb_v0_ServerList_init_zero}
-#define grpc_lb_v0_InitialLoadBalanceResponse_init_zero {false, "", false, "", false, grpc_lb_v0_Duration_init_zero}
-#define grpc_lb_v0_ServerList_init_zero          {{{NULL}, NULL}, false, grpc_lb_v0_Duration_init_zero}
-#define grpc_lb_v0_Server_init_zero              {false, "", false, 0, false, {0, {0}}, false, 0}
-
-/* Field tags (for use in manual encoding/decoding) */
-#define grpc_lb_v0_ClientStats_total_requests_tag 1
-#define grpc_lb_v0_ClientStats_client_rpc_errors_tag 2
-#define grpc_lb_v0_ClientStats_dropped_requests_tag 3
-#define grpc_lb_v0_Duration_seconds_tag          1
-#define grpc_lb_v0_Duration_nanos_tag            2
-#define grpc_lb_v0_InitialLoadBalanceRequest_name_tag 1
-#define grpc_lb_v0_Server_ip_address_tag         1
-#define grpc_lb_v0_Server_port_tag               2
-#define grpc_lb_v0_Server_load_balance_token_tag 3
-#define grpc_lb_v0_Server_drop_request_tag       4
-#define grpc_lb_v0_InitialLoadBalanceResponse_client_config_tag 1
-#define grpc_lb_v0_InitialLoadBalanceResponse_load_balancer_delegate_tag 2
-#define grpc_lb_v0_InitialLoadBalanceResponse_client_stats_report_interval_tag 3
-#define grpc_lb_v0_LoadBalanceRequest_initial_request_tag 1
-#define grpc_lb_v0_LoadBalanceRequest_client_stats_tag 2
-#define grpc_lb_v0_ServerList_servers_tag        1
-#define grpc_lb_v0_ServerList_expiration_interval_tag 3
-#define grpc_lb_v0_LoadBalanceResponse_initial_response_tag 1
-#define grpc_lb_v0_LoadBalanceResponse_server_list_tag 2
-
-/* Struct field encoding specification for nanopb */
-extern const pb_field_t grpc_lb_v0_Duration_fields[3];
-extern const pb_field_t grpc_lb_v0_LoadBalanceRequest_fields[3];
-extern const pb_field_t grpc_lb_v0_InitialLoadBalanceRequest_fields[2];
-extern const pb_field_t grpc_lb_v0_ClientStats_fields[4];
-extern const pb_field_t grpc_lb_v0_LoadBalanceResponse_fields[3];
-extern const pb_field_t grpc_lb_v0_InitialLoadBalanceResponse_fields[4];
-extern const pb_field_t grpc_lb_v0_ServerList_fields[3];
-extern const pb_field_t grpc_lb_v0_Server_fields[5];
-
-/* Maximum encoded size of messages (where known) */
-#define grpc_lb_v0_Duration_size                 22
-#define grpc_lb_v0_LoadBalanceRequest_size       169
-#define grpc_lb_v0_InitialLoadBalanceRequest_size 131
-#define grpc_lb_v0_ClientStats_size              33
-#define grpc_lb_v0_LoadBalanceResponse_size      (165 + grpc_lb_v0_ServerList_size)
-#define grpc_lb_v0_InitialLoadBalanceResponse_size 156
-#define grpc_lb_v0_Server_size                   127
-
-/* Message IDs (where set with "msgid" option) */
-#ifdef PB_MSGID
-
-#define LOAD_BALANCER_MESSAGES \
-
-
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif
diff --git a/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c
new file mode 100644
index 0000000..52e11c4
--- /dev/null
+++ b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c
@@ -0,0 +1,118 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* Automatically generated nanopb constant definitions */
+/* Generated by nanopb-0.3.5-dev */
+
+#include "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h"
+
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+
+
+const pb_field_t grpc_lb_v1_Duration_fields[3] = {
+    PB_FIELD(  1, INT64   , OPTIONAL, STATIC  , FIRST, grpc_lb_v1_Duration, seconds, seconds, 0),
+    PB_FIELD(  2, INT32   , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_Duration, nanos, seconds, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t grpc_lb_v1_LoadBalanceRequest_fields[3] = {
+    PB_FIELD(  1, MESSAGE , OPTIONAL, STATIC  , FIRST, grpc_lb_v1_LoadBalanceRequest, initial_request, initial_request, &grpc_lb_v1_InitialLoadBalanceRequest_fields),
+    PB_FIELD(  2, MESSAGE , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_LoadBalanceRequest, client_stats, initial_request, &grpc_lb_v1_ClientStats_fields),
+    PB_LAST_FIELD
+};
+
+const pb_field_t grpc_lb_v1_InitialLoadBalanceRequest_fields[2] = {
+    PB_FIELD(  1, STRING  , OPTIONAL, STATIC  , FIRST, grpc_lb_v1_InitialLoadBalanceRequest, name, name, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t grpc_lb_v1_ClientStats_fields[4] = {
+    PB_FIELD(  1, INT64   , OPTIONAL, STATIC  , FIRST, grpc_lb_v1_ClientStats, total_requests, total_requests, 0),
+    PB_FIELD(  2, INT64   , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_ClientStats, client_rpc_errors, total_requests, 0),
+    PB_FIELD(  3, INT64   , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_ClientStats, dropped_requests, client_rpc_errors, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t grpc_lb_v1_LoadBalanceResponse_fields[3] = {
+    PB_FIELD(  1, MESSAGE , OPTIONAL, STATIC  , FIRST, grpc_lb_v1_LoadBalanceResponse, initial_response, initial_response, &grpc_lb_v1_InitialLoadBalanceResponse_fields),
+    PB_FIELD(  2, MESSAGE , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_LoadBalanceResponse, server_list, initial_response, &grpc_lb_v1_ServerList_fields),
+    PB_LAST_FIELD
+};
+
+const pb_field_t grpc_lb_v1_InitialLoadBalanceResponse_fields[3] = {
+    PB_FIELD(  2, STRING  , OPTIONAL, STATIC  , FIRST, grpc_lb_v1_InitialLoadBalanceResponse, load_balancer_delegate, load_balancer_delegate, 0),
+    PB_FIELD(  3, MESSAGE , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval, load_balancer_delegate, &grpc_lb_v1_Duration_fields),
+    PB_LAST_FIELD
+};
+
+const pb_field_t grpc_lb_v1_ServerList_fields[3] = {
+    PB_FIELD(  1, MESSAGE , REPEATED, CALLBACK, FIRST, grpc_lb_v1_ServerList, servers, servers, &grpc_lb_v1_Server_fields),
+    PB_FIELD(  3, MESSAGE , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_ServerList, expiration_interval, servers, &grpc_lb_v1_Duration_fields),
+    PB_LAST_FIELD
+};
+
+const pb_field_t grpc_lb_v1_Server_fields[5] = {
+    PB_FIELD(  1, STRING  , OPTIONAL, STATIC  , FIRST, grpc_lb_v1_Server, ip_address, ip_address, 0),
+    PB_FIELD(  2, INT32   , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_Server, port, ip_address, 0),
+    PB_FIELD(  3, STRING  , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_Server, load_balance_token, port, 0),
+    PB_FIELD(  4, BOOL    , OPTIONAL, STATIC  , OTHER, grpc_lb_v1_Server, drop_request, load_balance_token, 0),
+    PB_LAST_FIELD
+};
+
+
+/* Check that field information fits in pb_field_t */
+#if !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_32BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ * 
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in 8 or 16 bit
+ * field descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceRequest, client_stats) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, initial_response) < 65536 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, server_list) < 65536 && pb_membersize(grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval) < 65536 && pb_membersize(grpc_lb_v1_ServerList, servers) < 65536 && pb_membersize(grpc_lb_v1_ServerList, expiration_interval) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_grpc_lb_v1_Duration_grpc_lb_v1_LoadBalanceRequest_grpc_lb_v1_InitialLoadBalanceRequest_grpc_lb_v1_ClientStats_grpc_lb_v1_LoadBalanceResponse_grpc_lb_v1_InitialLoadBalanceResponse_grpc_lb_v1_ServerList_grpc_lb_v1_Server)
+#endif
+
+#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_16BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ * 
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in the default
+ * 8 bit descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(grpc_lb_v1_LoadBalanceRequest, initial_request) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceRequest, client_stats) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, initial_response) < 256 && pb_membersize(grpc_lb_v1_LoadBalanceResponse, server_list) < 256 && pb_membersize(grpc_lb_v1_InitialLoadBalanceResponse, client_stats_report_interval) < 256 && pb_membersize(grpc_lb_v1_ServerList, servers) < 256 && pb_membersize(grpc_lb_v1_ServerList, expiration_interval) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_grpc_lb_v1_Duration_grpc_lb_v1_LoadBalanceRequest_grpc_lb_v1_InitialLoadBalanceRequest_grpc_lb_v1_ClientStats_grpc_lb_v1_LoadBalanceResponse_grpc_lb_v1_InitialLoadBalanceResponse_grpc_lb_v1_ServerList_grpc_lb_v1_Server)
+#endif
+
+
diff --git a/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h
new file mode 100644
index 0000000..d5dc39a
--- /dev/null
+++ b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h
@@ -0,0 +1,178 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+/* Automatically generated nanopb header */
+/* Generated by nanopb-0.3.5-dev */
+
+#ifndef PB_LOAD_BALANCER_PB_H_INCLUDED
+#define PB_LOAD_BALANCER_PB_H_INCLUDED
+#include "third_party/nanopb/pb.h"
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Struct definitions */
+typedef struct _grpc_lb_v1_ClientStats {
+    bool has_total_requests;
+    int64_t total_requests;
+    bool has_client_rpc_errors;
+    int64_t client_rpc_errors;
+    bool has_dropped_requests;
+    int64_t dropped_requests;
+} grpc_lb_v1_ClientStats;
+
+typedef struct _grpc_lb_v1_Duration {
+    bool has_seconds;
+    int64_t seconds;
+    bool has_nanos;
+    int32_t nanos;
+} grpc_lb_v1_Duration;
+
+typedef struct _grpc_lb_v1_InitialLoadBalanceRequest {
+    bool has_name;
+    char name[128];
+} grpc_lb_v1_InitialLoadBalanceRequest;
+
+typedef struct _grpc_lb_v1_Server {
+    bool has_ip_address;
+    char ip_address[46];
+    bool has_port;
+    int32_t port;
+    bool has_load_balance_token;
+    char load_balance_token[64];
+    bool has_drop_request;
+    bool drop_request;
+} grpc_lb_v1_Server;
+
+typedef struct _grpc_lb_v1_InitialLoadBalanceResponse {
+    bool has_load_balancer_delegate;
+    char load_balancer_delegate[64];
+    bool has_client_stats_report_interval;
+    grpc_lb_v1_Duration client_stats_report_interval;
+} grpc_lb_v1_InitialLoadBalanceResponse;
+
+typedef struct _grpc_lb_v1_LoadBalanceRequest {
+    bool has_initial_request;
+    grpc_lb_v1_InitialLoadBalanceRequest initial_request;
+    bool has_client_stats;
+    grpc_lb_v1_ClientStats client_stats;
+} grpc_lb_v1_LoadBalanceRequest;
+
+typedef struct _grpc_lb_v1_ServerList {
+    pb_callback_t servers;
+    bool has_expiration_interval;
+    grpc_lb_v1_Duration expiration_interval;
+} grpc_lb_v1_ServerList;
+
+typedef struct _grpc_lb_v1_LoadBalanceResponse {
+    bool has_initial_response;
+    grpc_lb_v1_InitialLoadBalanceResponse initial_response;
+    bool has_server_list;
+    grpc_lb_v1_ServerList server_list;
+} grpc_lb_v1_LoadBalanceResponse;
+
+/* Default values for struct fields */
+
+/* Initializer values for message structs */
+#define grpc_lb_v1_Duration_init_default         {false, 0, false, 0}
+#define grpc_lb_v1_LoadBalanceRequest_init_default {false, grpc_lb_v1_InitialLoadBalanceRequest_init_default, false, grpc_lb_v1_ClientStats_init_default}
+#define grpc_lb_v1_InitialLoadBalanceRequest_init_default {false, ""}
+#define grpc_lb_v1_ClientStats_init_default      {false, 0, false, 0, false, 0}
+#define grpc_lb_v1_LoadBalanceResponse_init_default {false, grpc_lb_v1_InitialLoadBalanceResponse_init_default, false, grpc_lb_v1_ServerList_init_default}
+#define grpc_lb_v1_InitialLoadBalanceResponse_init_default {false, "", false, grpc_lb_v1_Duration_init_default}
+#define grpc_lb_v1_ServerList_init_default       {{{NULL}, NULL}, false, grpc_lb_v1_Duration_init_default}
+#define grpc_lb_v1_Server_init_default           {false, "", false, 0, false, "", false, 0}
+#define grpc_lb_v1_Duration_init_zero            {false, 0, false, 0}
+#define grpc_lb_v1_LoadBalanceRequest_init_zero  {false, grpc_lb_v1_InitialLoadBalanceRequest_init_zero, false, grpc_lb_v1_ClientStats_init_zero}
+#define grpc_lb_v1_InitialLoadBalanceRequest_init_zero {false, ""}
+#define grpc_lb_v1_ClientStats_init_zero         {false, 0, false, 0, false, 0}
+#define grpc_lb_v1_LoadBalanceResponse_init_zero {false, grpc_lb_v1_InitialLoadBalanceResponse_init_zero, false, grpc_lb_v1_ServerList_init_zero}
+#define grpc_lb_v1_InitialLoadBalanceResponse_init_zero {false, "", false, grpc_lb_v1_Duration_init_zero}
+#define grpc_lb_v1_ServerList_init_zero          {{{NULL}, NULL}, false, grpc_lb_v1_Duration_init_zero}
+#define grpc_lb_v1_Server_init_zero              {false, "", false, 0, false, "", false, 0}
+
+/* Field tags (for use in manual encoding/decoding) */
+#define grpc_lb_v1_ClientStats_total_requests_tag 1
+#define grpc_lb_v1_ClientStats_client_rpc_errors_tag 2
+#define grpc_lb_v1_ClientStats_dropped_requests_tag 3
+#define grpc_lb_v1_Duration_seconds_tag          1
+#define grpc_lb_v1_Duration_nanos_tag            2
+#define grpc_lb_v1_InitialLoadBalanceRequest_name_tag 1
+#define grpc_lb_v1_Server_ip_address_tag         1
+#define grpc_lb_v1_Server_port_tag               2
+#define grpc_lb_v1_Server_load_balance_token_tag 3
+#define grpc_lb_v1_Server_drop_request_tag       4
+#define grpc_lb_v1_InitialLoadBalanceResponse_load_balancer_delegate_tag 2
+#define grpc_lb_v1_InitialLoadBalanceResponse_client_stats_report_interval_tag 3
+#define grpc_lb_v1_LoadBalanceRequest_initial_request_tag 1
+#define grpc_lb_v1_LoadBalanceRequest_client_stats_tag 2
+#define grpc_lb_v1_ServerList_servers_tag        1
+#define grpc_lb_v1_ServerList_expiration_interval_tag 3
+#define grpc_lb_v1_LoadBalanceResponse_initial_response_tag 1
+#define grpc_lb_v1_LoadBalanceResponse_server_list_tag 2
+
+/* Struct field encoding specification for nanopb */
+extern const pb_field_t grpc_lb_v1_Duration_fields[3];
+extern const pb_field_t grpc_lb_v1_LoadBalanceRequest_fields[3];
+extern const pb_field_t grpc_lb_v1_InitialLoadBalanceRequest_fields[2];
+extern const pb_field_t grpc_lb_v1_ClientStats_fields[4];
+extern const pb_field_t grpc_lb_v1_LoadBalanceResponse_fields[3];
+extern const pb_field_t grpc_lb_v1_InitialLoadBalanceResponse_fields[3];
+extern const pb_field_t grpc_lb_v1_ServerList_fields[3];
+extern const pb_field_t grpc_lb_v1_Server_fields[5];
+
+/* Maximum encoded size of messages (where known) */
+#define grpc_lb_v1_Duration_size                 22
+#define grpc_lb_v1_LoadBalanceRequest_size       169
+#define grpc_lb_v1_InitialLoadBalanceRequest_size 131
+#define grpc_lb_v1_ClientStats_size              33
+#define grpc_lb_v1_LoadBalanceResponse_size      (98 + grpc_lb_v1_ServerList_size)
+#define grpc_lb_v1_InitialLoadBalanceResponse_size 90
+#define grpc_lb_v1_Server_size                   127
+
+/* Message IDs (where set with "msgid" option) */
+#ifdef PB_MSGID
+
+#define LOAD_BALANCER_MESSAGES \
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/core/ext/lb_policy/round_robin/round_robin.c b/src/core/ext/lb_policy/round_robin/round_robin.c
index 3f6051b..dcdc0c6 100644
--- a/src/core/ext/lb_policy/round_robin/round_robin.c
+++ b/src/core/ext/lb_policy/round_robin/round_robin.c
@@ -306,8 +306,10 @@
   size_t i;
   p->started_picking = 1;
 
-  gpr_log(GPR_DEBUG, "LB_POLICY: p=%p num_subchannels=%d", p,
-          p->num_subchannels);
+  if (grpc_lb_round_robin_trace) {
+    gpr_log(GPR_DEBUG, "LB_POLICY: p=%p num_subchannels=%d", p,
+            p->num_subchannels);
+  }
 
   for (i = 0; i < p->num_subchannels; i++) {
     subchannel_data *sd = p->subchannels[i];
diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.c b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
index fcf2abf..b6886a2 100644
--- a/src/core/ext/transport/chttp2/transport/chttp2_transport.c
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
@@ -56,6 +56,8 @@
 #define DEFAULT_CONNECTION_WINDOW_TARGET (1024 * 1024)
 #define MAX_WINDOW 0x7fffffffu
 
+#define DEFAULT_MAX_HEADER_LIST_SIZE (16 * 1024)
+
 #define MAX_CLIENT_STREAM_ID 0x7fffffffu
 
 int grpc_http_trace = 0;
@@ -65,8 +67,8 @@
   ((grpc_chttp2_transport *)((char *)(tw)-offsetof(grpc_chttp2_transport, \
                                                    writing)))
 
-#define TRANSPORT_FROM_PARSING(tw)                                        \
-  ((grpc_chttp2_transport *)((char *)(tw)-offsetof(grpc_chttp2_transport, \
+#define TRANSPORT_FROM_PARSING(tp)                                        \
+  ((grpc_chttp2_transport *)((char *)(tp)-offsetof(grpc_chttp2_transport, \
                                                    parsing)))
 
 #define TRANSPORT_FROM_GLOBAL(tg)                                         \
@@ -311,6 +313,8 @@
     push_setting(t, GRPC_CHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, 0);
   }
   push_setting(t, GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE, DEFAULT_WINDOW);
+  push_setting(t, GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE,
+               DEFAULT_MAX_HEADER_LIST_SIZE);
 
   if (channel_args) {
     for (i = 0; i < channel_args->num_args; i++) {
@@ -378,6 +382,18 @@
               &t->writing.hpack_compressor,
               (uint32_t)channel_args->args[i].value.integer);
         }
+      } else if (0 == strcmp(channel_args->args[i].key,
+                             GRPC_ARG_MAX_METADATA_SIZE)) {
+        if (channel_args->args[i].type != GRPC_ARG_INTEGER) {
+          gpr_log(GPR_ERROR, "%s: must be an integer",
+                  GRPC_ARG_MAX_METADATA_SIZE);
+        } else if (channel_args->args[i].value.integer < 0) {
+          gpr_log(GPR_ERROR, "%s: must be non-negative",
+                  GRPC_ARG_MAX_METADATA_SIZE);
+        } else {
+          push_setting(t, GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE,
+                       (uint32_t)channel_args->args[i].value.integer);
+        }
       }
     }
   }
@@ -510,7 +526,7 @@
                           [GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
     *t->accepting_stream = s;
     grpc_chttp2_stream_map_add(&t->parsing_stream_map, s->global.id, s);
-    s->global.in_stream_map = 1;
+    s->global.in_stream_map = true;
   }
 
   grpc_chttp2_run_with_global_lock(exec_ctx, t, s, finish_init_stream_locked,
@@ -629,9 +645,10 @@
     check_read_ops(exec_ctx, &t->global);
 
     gpr_mu_lock(&t->executor.mu);
-    if (t->executor.pending_actions != NULL) {
-      hdr = t->executor.pending_actions;
-      t->executor.pending_actions = NULL;
+    if (t->executor.pending_actions_head != NULL) {
+      hdr = t->executor.pending_actions_head;
+      t->executor.pending_actions_head = t->executor.pending_actions_tail =
+          NULL;
       gpr_mu_unlock(&t->executor.mu);
       while (hdr != NULL) {
         hdr->action(exec_ctx, t, hdr->stream, hdr->arg);
@@ -686,8 +703,14 @@
         gpr_free(hdr);
         continue;
       }
-      hdr->next = t->executor.pending_actions;
-      t->executor.pending_actions = hdr;
+      hdr->next = NULL;
+      if (t->executor.pending_actions_head != NULL) {
+        t->executor.pending_actions_tail =
+            t->executor.pending_actions_tail->next = hdr;
+      } else {
+        t->executor.pending_actions_tail = t->executor.pending_actions_head =
+            hdr;
+      }
       REF_TRANSPORT(t, "pending_action");
       gpr_mu_unlock(&t->executor.mu);
     }
@@ -776,7 +799,8 @@
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global,
     uint32_t goaway_error, gpr_slice goaway_text) {
   char *msg = gpr_dump_slice(goaway_text, GPR_DUMP_HEX | GPR_DUMP_ASCII);
-  gpr_log(GPR_DEBUG, "got goaway [%d]: %s", goaway_error, msg);
+  GRPC_CHTTP2_IF_TRACING(
+      gpr_log(GPR_DEBUG, "got goaway [%d]: %s", goaway_error, msg));
   gpr_free(msg);
   gpr_slice_unref(goaway_text);
   transport_global->seen_goaway = 1;
@@ -826,7 +850,7 @@
     grpc_chttp2_stream_map_add(
         &TRANSPORT_FROM_GLOBAL(transport_global)->new_stream_map,
         stream_global->id, STREAM_FROM_GLOBAL(stream_global));
-    stream_global->in_stream_map = 1;
+    stream_global->in_stream_map = true;
     transport_global->concurrent_stream_count++;
     grpc_chttp2_become_writable(transport_global, stream_global);
   }
@@ -925,24 +949,38 @@
     stream_global->send_initial_metadata_finished =
         add_closure_barrier(on_complete);
     stream_global->send_initial_metadata = op->send_initial_metadata;
-    if (contains_non_ok_status(transport_global, op->send_initial_metadata)) {
-      stream_global->seen_error = 1;
-      grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
-    }
-    if (!stream_global->write_closed) {
-      if (transport_global->is_client) {
-        GPR_ASSERT(stream_global->id == 0);
-        grpc_chttp2_list_add_waiting_for_concurrency(transport_global,
-                                                     stream_global);
-        maybe_start_some_streams(exec_ctx, transport_global);
-      } else {
-        GPR_ASSERT(stream_global->id != 0);
-        grpc_chttp2_become_writable(transport_global, stream_global);
-      }
+    const size_t metadata_size =
+        grpc_metadata_batch_size(op->send_initial_metadata);
+    const size_t metadata_peer_limit =
+        transport_global->settings[GRPC_PEER_SETTINGS]
+                                  [GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE];
+    if (metadata_size > metadata_peer_limit) {
+      gpr_log(GPR_DEBUG,
+              "to-be-sent initial metadata size exceeds peer limit "
+              "(%lu vs. %lu)",
+              metadata_size, metadata_peer_limit);
+      cancel_from_api(exec_ctx, transport_global, stream_global,
+                      GRPC_STATUS_RESOURCE_EXHAUSTED);
     } else {
-      grpc_chttp2_complete_closure_step(
-          exec_ctx, stream_global,
-          &stream_global->send_initial_metadata_finished, 0);
+      if (contains_non_ok_status(transport_global, op->send_initial_metadata)) {
+        stream_global->seen_error = true;
+        grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
+      }
+      if (!stream_global->write_closed) {
+        if (transport_global->is_client) {
+          GPR_ASSERT(stream_global->id == 0);
+          grpc_chttp2_list_add_waiting_for_concurrency(transport_global,
+                                                       stream_global);
+          maybe_start_some_streams(exec_ctx, transport_global);
+        } else {
+          GPR_ASSERT(stream_global->id != 0);
+          grpc_chttp2_become_writable(transport_global, stream_global);
+        }
+      } else {
+        grpc_chttp2_complete_closure_step(
+            exec_ctx, stream_global,
+            &stream_global->send_initial_metadata_finished, 0);
+      }
     }
   }
 
@@ -966,19 +1004,34 @@
     stream_global->send_trailing_metadata_finished =
         add_closure_barrier(on_complete);
     stream_global->send_trailing_metadata = op->send_trailing_metadata;
-    if (contains_non_ok_status(transport_global, op->send_trailing_metadata)) {
-      stream_global->seen_error = 1;
-      grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
-    }
-    if (stream_global->write_closed) {
-      grpc_chttp2_complete_closure_step(
-          exec_ctx, stream_global,
-          &stream_global->send_trailing_metadata_finished,
-          grpc_metadata_batch_is_empty(op->send_trailing_metadata));
-    } else if (stream_global->id != 0) {
-      /* TODO(ctiller): check if there's flow control for any outstanding
-         bytes before going writable */
-      grpc_chttp2_become_writable(transport_global, stream_global);
+    const size_t metadata_size =
+        grpc_metadata_batch_size(op->send_trailing_metadata);
+    const size_t metadata_peer_limit =
+        transport_global->settings[GRPC_PEER_SETTINGS]
+                                  [GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE];
+    if (metadata_size > metadata_peer_limit) {
+      gpr_log(GPR_DEBUG,
+              "to-be-sent trailing metadata size exceeds peer limit "
+              "(%lu vs. %lu)",
+              metadata_size, metadata_peer_limit);
+      cancel_from_api(exec_ctx, transport_global, stream_global,
+                      GRPC_STATUS_RESOURCE_EXHAUSTED);
+    } else {
+      if (contains_non_ok_status(transport_global,
+                                 op->send_trailing_metadata)) {
+        stream_global->seen_error = true;
+        grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
+      }
+      if (stream_global->write_closed) {
+        grpc_chttp2_complete_closure_step(
+            exec_ctx, stream_global,
+            &stream_global->send_trailing_metadata_finished,
+            grpc_metadata_batch_is_empty(op->send_trailing_metadata));
+      } else if (stream_global->id != 0) {
+        /* TODO(ctiller): check if there's flow control for any outstanding
+           bytes before going writable */
+        grpc_chttp2_become_writable(transport_global, stream_global);
+      }
     }
   }
 
@@ -1141,6 +1194,16 @@
       grpc_chttp2_list_pop_check_read_ops(transport_global, &stream_global)) {
     if (stream_global->recv_initial_metadata_ready != NULL &&
         stream_global->published_initial_metadata) {
+      if (stream_global->seen_error) {
+        while ((bs = grpc_chttp2_incoming_frame_queue_pop(
+                    &stream_global->incoming_frames)) != NULL) {
+          incoming_byte_stream_destroy_locked(exec_ctx, NULL, NULL, bs);
+        }
+        if (stream_global->exceeded_metadata_size) {
+          cancel_from_api(exec_ctx, transport_global, stream_global,
+                          GRPC_STATUS_RESOURCE_EXHAUSTED);
+        }
+      }
       grpc_chttp2_incoming_metadata_buffer_publish(
           &stream_global->received_initial_metadata,
           stream_global->recv_initial_metadata);
@@ -1170,10 +1233,15 @@
     }
     if (stream_global->recv_trailing_metadata_finished != NULL &&
         stream_global->read_closed && stream_global->write_closed) {
-      while (stream_global->seen_error &&
-             (bs = grpc_chttp2_incoming_frame_queue_pop(
-                  &stream_global->incoming_frames)) != NULL) {
-        incoming_byte_stream_destroy_locked(exec_ctx, NULL, NULL, bs);
+      if (stream_global->seen_error) {
+        while ((bs = grpc_chttp2_incoming_frame_queue_pop(
+                    &stream_global->incoming_frames)) != NULL) {
+          incoming_byte_stream_destroy_locked(exec_ctx, NULL, NULL, bs);
+        }
+        if (stream_global->exceeded_metadata_size) {
+          cancel_from_api(exec_ctx, transport_global, stream_global,
+                          GRPC_STATUS_RESOURCE_EXHAUSTED);
+        }
       }
       if (stream_global->all_incoming_byte_streams_finished) {
         grpc_chttp2_incoming_metadata_buffer_publish(
@@ -1205,7 +1273,7 @@
     s = grpc_chttp2_stream_map_delete(&t->new_stream_map, id);
   }
   GPR_ASSERT(s);
-  s->global.in_stream_map = 0;
+  s->global.in_stream_map = false;
   if (t->parsing.incoming_stream == &s->parsing) {
     t->parsing.incoming_stream = NULL;
     grpc_chttp2_parsing_become_skip_parser(exec_ctx, &t->parsing);
@@ -1249,7 +1317,7 @@
                             NULL);
   }
   if (status != GRPC_STATUS_OK && !stream_global->seen_error) {
-    stream_global->seen_error = 1;
+    stream_global->seen_error = true;
     grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
   }
   grpc_chttp2_mark_stream_closed(exec_ctx, transport_global, stream_global, 1,
@@ -1261,7 +1329,7 @@
                              grpc_chttp2_stream_global *stream_global,
                              grpc_status_code status, gpr_slice *slice) {
   if (status != GRPC_STATUS_OK) {
-    stream_global->seen_error = 1;
+    stream_global->seen_error = true;
     grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
   }
   /* stream_global->recv_trailing_metadata_finished gives us a
@@ -1285,7 +1353,7 @@
               GRPC_MDSTR_GRPC_MESSAGE,
               grpc_mdstr_from_slice(gpr_slice_ref(*slice))));
     }
-    stream_global->published_trailing_metadata = 1;
+    stream_global->published_trailing_metadata = true;
     grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
   }
   if (slice) {
@@ -1315,13 +1383,13 @@
   }
   grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
   if (close_reads && !stream_global->read_closed) {
-    stream_global->read_closed = 1;
-    stream_global->published_initial_metadata = 1;
-    stream_global->published_trailing_metadata = 1;
+    stream_global->read_closed = true;
+    stream_global->published_initial_metadata = true;
+    stream_global->published_trailing_metadata = true;
     decrement_active_streams_locked(exec_ctx, transport_global, stream_global);
   }
   if (close_writes && !stream_global->write_closed) {
-    stream_global->write_closed = 1;
+    stream_global->write_closed = true;
     if (TRANSPORT_FROM_GLOBAL(transport_global)->executor.writing_active) {
       GRPC_CHTTP2_STREAM_REF(stream_global, "finish_writes");
       grpc_chttp2_list_add_closed_waiting_for_writing(transport_global,
diff --git a/src/core/ext/transport/chttp2/transport/frame_rst_stream.c b/src/core/ext/transport/chttp2/transport/frame_rst_stream.c
index 22467e9..7f01105 100644
--- a/src/core/ext/transport/chttp2/transport/frame_rst_stream.c
+++ b/src/core/ext/transport/chttp2/transport/frame_rst_stream.c
@@ -45,15 +45,20 @@
   stats->framing_bytes += frame_size;
   uint8_t *p = GPR_SLICE_START_PTR(slice);
 
+  // Frame size.
   *p++ = 0;
   *p++ = 0;
   *p++ = 4;
+  // Frame type.
   *p++ = GRPC_CHTTP2_FRAME_RST_STREAM;
+  // Flags.
   *p++ = 0;
+  // Stream ID.
   *p++ = (uint8_t)(id >> 24);
   *p++ = (uint8_t)(id >> 16);
   *p++ = (uint8_t)(id >> 8);
   *p++ = (uint8_t)(id);
+  // Error code.
   *p++ = (uint8_t)(code >> 24);
   *p++ = (uint8_t)(code >> 16);
   *p++ = (uint8_t)(code >> 8);
diff --git a/src/core/ext/transport/chttp2/transport/hpack_encoder.c b/src/core/ext/transport/chttp2/transport/hpack_encoder.c
index 555027c..ebeee37 100644
--- a/src/core/ext/transport/chttp2/transport/hpack_encoder.c
+++ b/src/core/ext/transport/chttp2/transport/hpack_encoder.c
@@ -63,6 +63,8 @@
 /* don't consider adding anything bigger than this to the hpack table */
 #define MAX_DECODER_SPACE_USAGE 512
 
+extern int grpc_http_trace;
+
 typedef struct {
   int is_first_frame;
   /* number of bytes in 'output' when we started the frame - used to calculate
@@ -532,7 +534,9 @@
     }
   }
   c->advertise_table_size_change = 1;
-  gpr_log(GPR_DEBUG, "set max table size from encoder to %d", max_table_size);
+  if (grpc_http_trace) {
+    gpr_log(GPR_DEBUG, "set max table size from encoder to %d", max_table_size);
+  }
 }
 
 void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c,
diff --git a/src/core/ext/transport/chttp2/transport/hpack_table.c b/src/core/ext/transport/chttp2/transport/hpack_table.c
index 4d64506..295f31c 100644
--- a/src/core/ext/transport/chttp2/transport/hpack_table.c
+++ b/src/core/ext/transport/chttp2/transport/hpack_table.c
@@ -253,7 +253,9 @@
   if (tbl->max_bytes == max_bytes) {
     return;
   }
-  gpr_log(GPR_DEBUG, "Update hpack parser max size to %d", max_bytes);
+  if (grpc_http_trace) {
+    gpr_log(GPR_DEBUG, "Update hpack parser max size to %d", max_bytes);
+  }
   while (tbl->mem_used > max_bytes) {
     evict1(tbl);
   }
diff --git a/src/core/ext/transport/chttp2/transport/incoming_metadata.c b/src/core/ext/transport/chttp2/transport/incoming_metadata.c
index db21744..3e463a7 100644
--- a/src/core/ext/transport/chttp2/transport/incoming_metadata.c
+++ b/src/core/ext/transport/chttp2/transport/incoming_metadata.c
@@ -65,6 +65,7 @@
         gpr_realloc(buffer->elems, sizeof(*buffer->elems) * buffer->capacity);
   }
   buffer->elems[buffer->count++].md = elem;
+  buffer->size += GRPC_MDELEM_LENGTH(elem);
 }
 
 void grpc_chttp2_incoming_metadata_buffer_set_deadline(
diff --git a/src/core/ext/transport/chttp2/transport/incoming_metadata.h b/src/core/ext/transport/chttp2/transport/incoming_metadata.h
index 17ecf8e..df4343b 100644
--- a/src/core/ext/transport/chttp2/transport/incoming_metadata.h
+++ b/src/core/ext/transport/chttp2/transport/incoming_metadata.h
@@ -42,6 +42,7 @@
   size_t capacity;
   gpr_timespec deadline;
   int published;
+  size_t size;  // total size of metadata
 } grpc_chttp2_incoming_metadata_buffer;
 
 /** assumes everything initially zeroed */
diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h
index 7a80846..5872fd8 100644
--- a/src/core/ext/transport/chttp2/transport/internal.h
+++ b/src/core/ext/transport/chttp2/transport/internal.h
@@ -236,9 +236,6 @@
   /** was a goaway frame received? */
   uint8_t goaway_received;
 
-  /** the last sent max_table_size setting */
-  uint32_t last_sent_max_table_size;
-
   /** initial window change */
   int64_t initial_window_update;
 
@@ -272,6 +269,9 @@
   uint32_t incoming_frame_size;
   uint32_t incoming_stream_id;
 
+  /* current max frame size */
+  uint32_t max_frame_size;
+
   /* active parser */
   void *parser_data;
   grpc_chttp2_stream_parsing *incoming_stream;
@@ -282,6 +282,8 @@
 
   /* received settings */
   uint32_t settings[GRPC_CHTTP2_NUM_SETTINGS];
+  /* last settings that were sent */
+  uint32_t last_sent_settings[GRPC_CHTTP2_NUM_SETTINGS];
 
   /* goaway data */
   grpc_status_code goaway_error;
@@ -321,7 +323,8 @@
     /** is a thread currently parsing */
     bool parsing_active;
 
-    grpc_chttp2_executor_action_header *pending_actions;
+    grpc_chttp2_executor_action_header *pending_actions_head;
+    grpc_chttp2_executor_action_header *pending_actions_tail;
   } executor;
 
   /** is the transport destroying itself? */
@@ -419,23 +422,21 @@
   /** number of streams that are currently being read */
   gpr_refcount active_streams;
 
-  /** when the application requests writes be closed, the write_closed is
-      'queued'; when the close is flow controlled into the send path, we are
-      'sending' it; when the write has been performed it is 'sent' */
+  /** Is this stream closed for writing. */
   bool write_closed;
-  /** is this stream reading half-closed (boolean) */
+  /** Is this stream reading half-closed. */
   bool read_closed;
-  /** are all published incoming byte streams closed */
+  /** Are all published incoming byte streams closed. */
   bool all_incoming_byte_streams_finished;
-  /** is this stream in the stream map? (boolean) */
+  /** Is this stream in the stream map. */
   bool in_stream_map;
-  /** has this stream seen an error? if 1, then pending incoming frames
-      can be thrown away */
+  /** Has this stream seen an error.
+      If true, then pending incoming frames can be thrown away. */
   bool seen_error;
+  bool exceeded_metadata_size;
 
   bool published_initial_metadata;
   bool published_trailing_metadata;
-  bool faked_trailing_metadata;
 
   grpc_chttp2_incoming_metadata_buffer received_initial_metadata;
   grpc_chttp2_incoming_metadata_buffer received_trailing_metadata;
@@ -478,7 +479,8 @@
   /** which metadata did we get (on this parse) */
   uint8_t got_metadata_on_parse[2];
   /** should we raise the seen_error flag in transport_global */
-  uint8_t seen_error;
+  bool seen_error;
+  bool exceeded_metadata_size;
   /** window available for peer to send to us */
   int64_t incoming_window;
   /** parsing state for data frames */
diff --git a/src/core/ext/transport/chttp2/transport/parsing.c b/src/core/ext/transport/chttp2/transport/parsing.c
index e827a43..4bd374b 100644
--- a/src/core/ext/transport/chttp2/transport/parsing.c
+++ b/src/core/ext/transport/chttp2/transport/parsing.c
@@ -45,6 +45,10 @@
 #include "src/core/lib/profiling/timers.h"
 #include "src/core/lib/transport/static_metadata.h"
 
+#define TRANSPORT_FROM_PARSING(tp)                                        \
+  ((grpc_chttp2_transport *)((char *)(tp)-offsetof(grpc_chttp2_transport, \
+                                                   parsing)))
+
 static int init_frame_parser(grpc_exec_ctx *exec_ctx,
                              grpc_chttp2_transport_parsing *transport_parsing);
 static int init_header_frame_parser(
@@ -79,9 +83,12 @@
   GPR_TIMER_BEGIN("grpc_chttp2_prepare_to_read", 0);
 
   transport_parsing->next_stream_id = transport_global->next_stream_id;
-  transport_parsing->last_sent_max_table_size =
-      transport_global->settings[GRPC_SENT_SETTINGS]
-                                [GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE];
+  memcpy(transport_parsing->last_sent_settings,
+         transport_global->settings[GRPC_SENT_SETTINGS],
+         sizeof(transport_parsing->last_sent_settings));
+  transport_parsing->max_frame_size =
+      transport_global->settings[GRPC_ACKED_SETTINGS]
+                                [GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE];
 
   /* update the parsing view of incoming window */
   while (grpc_chttp2_list_pop_unannounced_incoming_window_available(
@@ -167,7 +174,9 @@
   while (grpc_chttp2_list_pop_parsing_seen_stream(
       transport_global, transport_parsing, &stream_global, &stream_parsing)) {
     if (stream_parsing->seen_error) {
-      stream_global->seen_error = 1;
+      stream_global->seen_error = true;
+      stream_global->exceeded_metadata_size =
+          stream_parsing->exceeded_metadata_size;
       grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
     }
 
@@ -388,6 +397,12 @@
           return 1;
         }
         goto dts_fh_0; /* loop */
+      } else if (transport_parsing->incoming_frame_size >
+                 transport_parsing->max_frame_size) {
+        gpr_log(GPR_DEBUG, "Frame size %d is larger than max frame size %d",
+                transport_parsing->incoming_frame_size,
+                transport_parsing->max_frame_size);
+        return 0;
       }
       if (++cur == end) {
         return 1;
@@ -603,7 +618,7 @@
 
   if (md->key == GRPC_MDSTR_GRPC_STATUS && md != GRPC_MDELEM_GRPC_STATUS_0) {
     /* TODO(ctiller): check for a status like " 0" */
-    stream_parsing->seen_error = 1;
+    stream_parsing->seen_error = true;
   }
 
   if (md->key == GRPC_MDSTR_GRPC_TIMEOUT) {
@@ -624,8 +639,26 @@
         gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC), *cached_timeout));
     GRPC_MDELEM_UNREF(md);
   } else {
-    grpc_chttp2_incoming_metadata_buffer_add(
-        &stream_parsing->metadata_buffer[0], md);
+    const size_t new_size =
+        stream_parsing->metadata_buffer[0].size + GRPC_MDELEM_LENGTH(md);
+    grpc_chttp2_transport_global *transport_global =
+        &TRANSPORT_FROM_PARSING(transport_parsing)->global;
+    const size_t metadata_size_limit =
+        transport_global->settings[GRPC_LOCAL_SETTINGS]
+                                  [GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE];
+    if (new_size > metadata_size_limit) {
+      if (!stream_parsing->exceeded_metadata_size) {
+        gpr_log(GPR_DEBUG,
+                "received initial metadata size exceeds limit (%lu vs. %lu)",
+                new_size, metadata_size_limit);
+        stream_parsing->seen_error = true;
+        stream_parsing->exceeded_metadata_size = true;
+      }
+      GRPC_MDELEM_UNREF(md);
+    } else {
+      grpc_chttp2_incoming_metadata_buffer_add(
+          &stream_parsing->metadata_buffer[0], md);
+    }
   }
 
   grpc_chttp2_list_add_parsing_seen_stream(transport_parsing, stream_parsing);
@@ -649,11 +682,29 @@
 
   if (md->key == GRPC_MDSTR_GRPC_STATUS && md != GRPC_MDELEM_GRPC_STATUS_0) {
     /* TODO(ctiller): check for a status like " 0" */
-    stream_parsing->seen_error = 1;
+    stream_parsing->seen_error = true;
   }
 
-  grpc_chttp2_incoming_metadata_buffer_add(&stream_parsing->metadata_buffer[1],
-                                           md);
+  const size_t new_size =
+      stream_parsing->metadata_buffer[1].size + GRPC_MDELEM_LENGTH(md);
+  grpc_chttp2_transport_global *transport_global =
+      &TRANSPORT_FROM_PARSING(transport_parsing)->global;
+  const size_t metadata_size_limit =
+      transport_global->settings[GRPC_LOCAL_SETTINGS]
+                                [GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE];
+  if (new_size > metadata_size_limit) {
+    if (!stream_parsing->exceeded_metadata_size) {
+      gpr_log(GPR_DEBUG,
+              "received trailing metadata size exceeds limit (%lu vs. %lu)",
+              new_size, metadata_size_limit);
+      stream_parsing->seen_error = true;
+      stream_parsing->exceeded_metadata_size = true;
+    }
+    GRPC_MDELEM_UNREF(md);
+  } else {
+    grpc_chttp2_incoming_metadata_buffer_add(
+        &stream_parsing->metadata_buffer[1], md);
+  }
 
   grpc_chttp2_list_add_parsing_seen_stream(transport_parsing, stream_parsing);
 
@@ -840,7 +891,11 @@
     transport_parsing->settings_ack_received = 1;
     grpc_chttp2_hptbl_set_max_bytes(
         &transport_parsing->hpack_parser.table,
-        transport_parsing->last_sent_max_table_size);
+        transport_parsing
+            ->last_sent_settings[GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE]);
+    transport_parsing->max_frame_size =
+        transport_parsing
+            ->last_sent_settings[GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE];
   }
   transport_parsing->parser = grpc_chttp2_settings_parser_parse;
   transport_parsing->parser_data = &transport_parsing->simple.settings;
diff --git a/src/core/ext/transport/cronet/client/secure/cronet_channel_create.c b/src/core/ext/transport/cronet/client/secure/cronet_channel_create.c
new file mode 100644
index 0000000..df1acdd
--- /dev/null
+++ b/src/core/ext/transport/cronet/client/secure/cronet_channel_create.c
@@ -0,0 +1,69 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc/impl/codegen/port_platform.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+
+#include "src/core/lib/surface/channel.h"
+#include "src/core/lib/transport/transport_impl.h"
+
+// Cronet transport object
+typedef struct cronet_transport {
+  grpc_transport base;  // must be first element in this structure
+  void *engine;
+  char *host;
+} cronet_transport;
+
+extern grpc_transport_vtable grpc_cronet_vtable;
+
+GRPCAPI grpc_channel *grpc_cronet_secure_channel_create(
+    void *engine, const char *target, const grpc_channel_args *args,
+    void *reserved) {
+  cronet_transport *ct = gpr_malloc(sizeof(cronet_transport));
+  ct->base.vtable = &grpc_cronet_vtable;
+  ct->engine = engine;
+  ct->host = gpr_malloc(strlen(target) + 1);
+  strcpy(ct->host, target);
+  gpr_log(GPR_DEBUG,
+          "grpc_create_cronet_transport: cronet_engine = %p, target=%s", engine,
+          ct->host);
+
+  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+  return grpc_channel_create(&exec_ctx, target, args,
+                             GRPC_CLIENT_DIRECT_CHANNEL, (grpc_transport *)ct);
+}
diff --git a/src/core/ext/transport/cronet/transport/cronet_api_dummy.c b/src/core/ext/transport/cronet/transport/cronet_api_dummy.c
new file mode 100644
index 0000000..687026c
--- /dev/null
+++ b/src/core/ext/transport/cronet/transport/cronet_api_dummy.c
@@ -0,0 +1,85 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* This file has empty implementation of all the functions exposed by the cronet
+library, so we can build it in all environments */
+
+#include <stdbool.h>
+
+#include <grpc/support/log.h>
+
+#include "third_party/objective_c/Cronet/cronet_c_for_grpc.h"
+
+#ifdef GRPC_COMPILE_WITH_CRONET
+/* link with the real CRONET library in the build system */
+#else
+/* Dummy implementation of cronet API just to test for build-ability */
+cronet_bidirectional_stream* cronet_bidirectional_stream_create(
+    cronet_engine* engine, void* annotation,
+    cronet_bidirectional_stream_callback* callback) {
+  GPR_ASSERT(0);
+  return NULL;
+}
+
+int cronet_bidirectional_stream_destroy(cronet_bidirectional_stream* stream) {
+  GPR_ASSERT(0);
+  return 0;
+}
+
+int cronet_bidirectional_stream_start(
+    cronet_bidirectional_stream* stream, const char* url, int priority,
+    const char* method, const cronet_bidirectional_stream_header_array* headers,
+    bool end_of_stream) {
+  GPR_ASSERT(0);
+  return 0;
+}
+
+int cronet_bidirectional_stream_read(cronet_bidirectional_stream* stream,
+                                     char* buffer, int capacity) {
+  GPR_ASSERT(0);
+  return 0;
+}
+
+int cronet_bidirectional_stream_write(cronet_bidirectional_stream* stream,
+                                      const char* buffer, int count,
+                                      bool end_of_stream) {
+  GPR_ASSERT(0);
+  return 0;
+}
+
+int cronet_bidirectional_stream_cancel(cronet_bidirectional_stream* stream) {
+  GPR_ASSERT(0);
+  return 0;
+}
+
+#endif /* GRPC_COMPILE_WITH_CRONET */
diff --git a/src/core/ext/transport/cronet/transport/cronet_transport.c b/src/core/ext/transport/cronet/transport/cronet_transport.c
new file mode 100644
index 0000000..5bb0851
--- /dev/null
+++ b/src/core/ext/transport/cronet/transport/cronet_transport.c
@@ -0,0 +1,640 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <string.h>
+
+#include <grpc/impl/codegen/port_platform.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/host_port.h>
+#include <grpc/support/log.h>
+#include <grpc/support/slice_buffer.h>
+#include <grpc/support/string_util.h>
+#include <grpc/support/useful.h>
+
+#include "src/core/ext/transport/chttp2/transport/incoming_metadata.h"
+#include "src/core/lib/iomgr/exec_ctx.h"
+#include "src/core/lib/support/string.h"
+#include "src/core/lib/surface/channel.h"
+#include "src/core/lib/transport/metadata_batch.h"
+#include "src/core/lib/transport/transport_impl.h"
+#include "third_party/objective_c/Cronet/cronet_c_for_grpc.h"
+
+#define GRPC_HEADER_SIZE_IN_BYTES 5
+
+// Global flag that gets set with GRPC_TRACE env variable
+int grpc_cronet_trace = 1;
+
+// Cronet transport object
+struct grpc_cronet_transport {
+  grpc_transport base; /* must be first element in this structure */
+  cronet_engine *engine;
+  char *host;
+};
+
+typedef struct grpc_cronet_transport grpc_cronet_transport;
+
+enum send_state {
+  CRONET_SEND_IDLE = 0,
+  CRONET_REQ_STARTED,
+  CRONET_SEND_HEADER,
+  CRONET_WRITE,
+  CRONET_WRITE_COMPLETED,
+};
+
+enum recv_state {
+  CRONET_RECV_IDLE = 0,
+  CRONET_RECV_READ_LENGTH,
+  CRONET_RECV_READ_DATA,
+  CRONET_RECV_CLOSED,
+};
+
+static const char *recv_state_name[] = {
+    "CRONET_RECV_IDLE", "CRONET_RECV_READ_LENGTH", "CRONET_RECV_READ_DATA,",
+    "CRONET_RECV_CLOSED"};
+
+// Enum that identifies calling function.
+enum e_caller {
+  PERFORM_STREAM_OP,
+  ON_READ_COMPLETE,
+  ON_RESPONSE_HEADERS_RECEIVED,
+  ON_RESPONSE_TRAILERS_RECEIVED
+};
+
+enum callback_id {
+  CB_SEND_INITIAL_METADATA = 0,
+  CB_SEND_MESSAGE,
+  CB_SEND_TRAILING_METADATA,
+  CB_RECV_MESSAGE,
+  CB_RECV_INITIAL_METADATA,
+  CB_RECV_TRAILING_METADATA,
+  CB_NUM_CALLBACKS
+};
+
+struct stream_obj {
+  // we store received bytes here as they trickle in.
+  gpr_slice_buffer write_slice_buffer;
+  cronet_bidirectional_stream *cbs;
+  gpr_slice slice;
+  gpr_slice_buffer read_slice_buffer;
+  struct grpc_slice_buffer_stream sbs;
+  char *read_buffer;
+  int remaining_read_bytes;
+  int total_read_bytes;
+
+  char *write_buffer;
+  size_t write_buffer_size;
+
+  // Hold the URL
+  char *url;
+
+  bool response_headers_received;
+  bool read_requested;
+  bool response_trailers_received;
+  bool read_closed;
+
+  // Recv message stuff
+  grpc_byte_buffer **recv_message;
+  // Initial metadata stuff
+  grpc_metadata_batch *recv_initial_metadata;
+  // Trailing metadata stuff
+  grpc_metadata_batch *recv_trailing_metadata;
+  grpc_chttp2_incoming_metadata_buffer imb;
+
+  // This mutex protects receive state machine execution
+  gpr_mu recv_mu;
+  // we can queue up up to 2 callbacks for each OP
+  grpc_closure *callback_list[CB_NUM_CALLBACKS][2];
+
+  // storage for header
+  cronet_bidirectional_stream_header *headers;
+  uint32_t num_headers;
+  cronet_bidirectional_stream_header_array header_array;
+  // state tracking
+  enum recv_state cronet_recv_state;
+  enum send_state cronet_send_state;
+};
+
+typedef struct stream_obj stream_obj;
+
+static void next_send_step(stream_obj *s);
+static void next_recv_step(stream_obj *s, enum e_caller caller);
+
+static void set_pollset_do_nothing(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
+                                   grpc_stream *gs, grpc_pollset *pollset) {}
+
+static void enqueue_callbacks(grpc_closure *callback_list[]) {
+  grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+  if (callback_list[0]) {
+    grpc_exec_ctx_enqueue(&exec_ctx, callback_list[0], true, NULL);
+    callback_list[0] = NULL;
+  }
+  if (callback_list[1]) {
+    grpc_exec_ctx_enqueue(&exec_ctx, callback_list[1], true, NULL);
+    callback_list[1] = NULL;
+  }
+  grpc_exec_ctx_finish(&exec_ctx);
+}
+
+static void on_canceled(cronet_bidirectional_stream *stream) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "on_canceled %p", stream);
+  }
+}
+
+static void on_failed(cronet_bidirectional_stream *stream, int net_error) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "on_failed %p, error = %d", stream, net_error);
+  }
+}
+
+static void on_succeeded(cronet_bidirectional_stream *stream) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "on_succeeded %p", stream);
+  }
+}
+
+static void on_response_trailers_received(
+    cronet_bidirectional_stream *stream,
+    const cronet_bidirectional_stream_header_array *trailers) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "R: on_response_trailers_received");
+  }
+  stream_obj *s = (stream_obj *)stream->annotation;
+
+  memset(&s->imb, 0, sizeof(s->imb));
+  grpc_chttp2_incoming_metadata_buffer_init(&s->imb);
+  unsigned int i = 0;
+  for (i = 0; i < trailers->count; i++) {
+    grpc_chttp2_incoming_metadata_buffer_add(
+        &s->imb, grpc_mdelem_from_metadata_strings(
+                     grpc_mdstr_from_string(trailers->headers[i].key),
+                     grpc_mdstr_from_string(trailers->headers[i].value)));
+  }
+  s->response_trailers_received = true;
+  next_recv_step(s, ON_RESPONSE_TRAILERS_RECEIVED);
+}
+
+static void on_write_completed(cronet_bidirectional_stream *stream,
+                               const char *data) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "W: on_write_completed");
+  }
+  stream_obj *s = (stream_obj *)stream->annotation;
+  enqueue_callbacks(s->callback_list[CB_SEND_MESSAGE]);
+  s->cronet_send_state = CRONET_WRITE_COMPLETED;
+  next_send_step(s);
+}
+
+static void process_recv_message(stream_obj *s, const uint8_t *recv_data) {
+  gpr_slice read_data_slice = gpr_slice_malloc((uint32_t)s->total_read_bytes);
+  uint8_t *dst_p = GPR_SLICE_START_PTR(read_data_slice);
+  memcpy(dst_p, recv_data, (size_t)s->total_read_bytes);
+  gpr_slice_buffer_add(&s->read_slice_buffer, read_data_slice);
+  grpc_slice_buffer_stream_init(&s->sbs, &s->read_slice_buffer, 0);
+  *s->recv_message = (grpc_byte_buffer *)&s->sbs;
+}
+
+static int parse_grpc_header(const uint8_t *data) {
+  const uint8_t *p = data + 1;
+  int length = 0;
+  length |= ((uint8_t)*p++) << 24;
+  length |= ((uint8_t)*p++) << 16;
+  length |= ((uint8_t)*p++) << 8;
+  length |= ((uint8_t)*p++);
+  return length;
+}
+
+static void on_read_completed(cronet_bidirectional_stream *stream, char *data,
+                              int count) {
+  stream_obj *s = (stream_obj *)stream->annotation;
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "R: on_read_completed count=%d, total=%d, remaining=%d",
+            count, s->total_read_bytes, s->remaining_read_bytes);
+  }
+  if (count > 0) {
+    GPR_ASSERT(s->recv_message);
+    s->remaining_read_bytes -= count;
+    next_recv_step(s, ON_READ_COMPLETE);
+  } else {
+    s->read_closed = true;
+    next_recv_step(s, ON_READ_COMPLETE);
+  }
+}
+
+static void on_response_headers_received(
+    cronet_bidirectional_stream *stream,
+    const cronet_bidirectional_stream_header_array *headers,
+    const char *negotiated_protocol) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "R: on_response_headers_received");
+  }
+  stream_obj *s = (stream_obj *)stream->annotation;
+  enqueue_callbacks(s->callback_list[CB_RECV_INITIAL_METADATA]);
+  s->response_headers_received = true;
+  next_recv_step(s, ON_RESPONSE_HEADERS_RECEIVED);
+}
+
+static void on_request_headers_sent(cronet_bidirectional_stream *stream) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "W: on_request_headers_sent");
+  }
+  stream_obj *s = (stream_obj *)stream->annotation;
+  enqueue_callbacks(s->callback_list[CB_SEND_INITIAL_METADATA]);
+  s->cronet_send_state = CRONET_SEND_HEADER;
+  next_send_step(s);
+}
+
+// Callback function pointers (invoked by cronet in response to events)
+static cronet_bidirectional_stream_callback callbacks = {
+    on_request_headers_sent,
+    on_response_headers_received,
+    on_read_completed,
+    on_write_completed,
+    on_response_trailers_received,
+    on_succeeded,
+    on_failed,
+    on_canceled};
+
+static void invoke_closing_callback(stream_obj *s) {
+  grpc_chttp2_incoming_metadata_buffer_publish(&s->imb,
+                                               s->recv_trailing_metadata);
+  if (s->callback_list[CB_RECV_TRAILING_METADATA]) {
+    enqueue_callbacks(s->callback_list[CB_RECV_TRAILING_METADATA]);
+  }
+}
+
+static void set_recv_state(stream_obj *s, enum recv_state state) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "next_state = %s", recv_state_name[state]);
+  }
+  s->cronet_recv_state = state;
+}
+
+// This is invoked from perform_stream_op, and all on_xxxx callbacks.
+static void next_recv_step(stream_obj *s, enum e_caller caller) {
+  gpr_mu_lock(&s->recv_mu);
+  switch (s->cronet_recv_state) {
+    case CRONET_RECV_IDLE:
+      if (grpc_cronet_trace) {
+        gpr_log(GPR_DEBUG, "cronet_recv_state = CRONET_RECV_IDLE");
+      }
+      if (caller == PERFORM_STREAM_OP ||
+          caller == ON_RESPONSE_HEADERS_RECEIVED) {
+        if (s->read_closed && s->response_trailers_received) {
+          invoke_closing_callback(s);
+          set_recv_state(s, CRONET_RECV_CLOSED);
+        } else if (s->response_headers_received == true &&
+                   s->read_requested == true) {
+          set_recv_state(s, CRONET_RECV_READ_LENGTH);
+          s->total_read_bytes = s->remaining_read_bytes =
+              GRPC_HEADER_SIZE_IN_BYTES;
+          GPR_ASSERT(s->read_buffer);
+          if (grpc_cronet_trace) {
+            gpr_log(GPR_DEBUG, "R: cronet_bidirectional_stream_read()");
+          }
+          cronet_bidirectional_stream_read(s->cbs, s->read_buffer,
+                                           s->remaining_read_bytes);
+        }
+      }
+      break;
+    case CRONET_RECV_READ_LENGTH:
+      if (grpc_cronet_trace) {
+        gpr_log(GPR_DEBUG, "cronet_recv_state = CRONET_RECV_READ_LENGTH");
+      }
+      if (caller == ON_READ_COMPLETE) {
+        if (s->read_closed) {
+          invoke_closing_callback(s);
+          enqueue_callbacks(s->callback_list[CB_RECV_MESSAGE]);
+          set_recv_state(s, CRONET_RECV_CLOSED);
+        } else {
+          GPR_ASSERT(s->remaining_read_bytes == 0);
+          set_recv_state(s, CRONET_RECV_READ_DATA);
+          s->total_read_bytes = s->remaining_read_bytes =
+              parse_grpc_header((const uint8_t *)s->read_buffer);
+          s->read_buffer =
+              gpr_realloc(s->read_buffer, (uint32_t)s->remaining_read_bytes);
+          GPR_ASSERT(s->read_buffer);
+          if (grpc_cronet_trace) {
+            gpr_log(GPR_DEBUG, "R: cronet_bidirectional_stream_read()");
+          }
+          cronet_bidirectional_stream_read(s->cbs, (char *)s->read_buffer,
+                                           s->remaining_read_bytes);
+        }
+      }
+      break;
+    case CRONET_RECV_READ_DATA:
+      if (grpc_cronet_trace) {
+        gpr_log(GPR_DEBUG, "cronet_recv_state = CRONET_RECV_READ_DATA");
+      }
+      if (caller == ON_READ_COMPLETE) {
+        if (s->remaining_read_bytes > 0) {
+          int offset = s->total_read_bytes - s->remaining_read_bytes;
+          GPR_ASSERT(s->read_buffer);
+          if (grpc_cronet_trace) {
+            gpr_log(GPR_DEBUG, "R: cronet_bidirectional_stream_read()");
+          }
+          cronet_bidirectional_stream_read(
+              s->cbs, (char *)s->read_buffer + offset, s->remaining_read_bytes);
+        } else {
+          gpr_slice_buffer_init(&s->read_slice_buffer);
+          uint8_t *p = (uint8_t *)s->read_buffer;
+          process_recv_message(s, p);
+          set_recv_state(s, CRONET_RECV_IDLE);
+          enqueue_callbacks(s->callback_list[CB_RECV_MESSAGE]);
+        }
+      }
+      break;
+    case CRONET_RECV_CLOSED:
+      break;
+    default:
+      GPR_ASSERT(0);  // Should not reach here
+      break;
+  }
+  gpr_mu_unlock(&s->recv_mu);
+}
+
+// This function takes the data from s->write_slice_buffer and assembles into
+// a contiguous byte stream with 5 byte gRPC header prepended.
+static void create_grpc_frame(stream_obj *s) {
+  gpr_slice slice = gpr_slice_buffer_take_first(&s->write_slice_buffer);
+  uint8_t *raw_data = GPR_SLICE_START_PTR(slice);
+  size_t length = GPR_SLICE_LENGTH(slice);
+  s->write_buffer_size = length + GRPC_HEADER_SIZE_IN_BYTES;
+  s->write_buffer = gpr_realloc(s->write_buffer, s->write_buffer_size);
+  uint8_t *p = (uint8_t *)s->write_buffer;
+  // Append 5 byte header
+  *p++ = 0;
+  *p++ = (uint8_t)(length >> 24);
+  *p++ = (uint8_t)(length >> 16);
+  *p++ = (uint8_t)(length >> 8);
+  *p++ = (uint8_t)(length);
+  // append actual data
+  memcpy(p, raw_data, length);
+}
+
+static void do_write(stream_obj *s) {
+  gpr_slice_buffer *sb = &s->write_slice_buffer;
+  GPR_ASSERT(sb->count <= 1);
+  if (sb->count > 0) {
+    create_grpc_frame(s);
+    if (grpc_cronet_trace) {
+      gpr_log(GPR_DEBUG, "W: cronet_bidirectional_stream_write");
+    }
+    cronet_bidirectional_stream_write(s->cbs, s->write_buffer,
+                                      (int)s->write_buffer_size, false);
+  }
+}
+
+//
+static void next_send_step(stream_obj *s) {
+  switch (s->cronet_send_state) {
+    case CRONET_SEND_IDLE:
+      GPR_ASSERT(
+          s->cbs);  // cronet_bidirectional_stream is not initialized yet.
+      s->cronet_send_state = CRONET_REQ_STARTED;
+      if (grpc_cronet_trace) {
+        gpr_log(GPR_DEBUG, "cronet_bidirectional_stream_start to %s", s->url);
+      }
+      cronet_bidirectional_stream_start(s->cbs, s->url, 0, "POST",
+                                        &s->header_array, false);
+      // we no longer need the memory that was allocated earlier.
+      gpr_free(s->header_array.headers);
+      break;
+    case CRONET_SEND_HEADER:
+      do_write(s);
+      s->cronet_send_state = CRONET_WRITE;
+      break;
+    case CRONET_WRITE_COMPLETED:
+      do_write(s);
+      break;
+    default:
+      GPR_ASSERT(0);
+      break;
+  }
+}
+
+static void convert_metadata_to_cronet_headers(grpc_linked_mdelem *head,
+                                               const char *host,
+                                               stream_obj *s) {
+  grpc_linked_mdelem *curr = head;
+  // Walk the linked list and get number of header fields
+  uint32_t num_headers_available = 0;
+  while (curr != NULL) {
+    curr = curr->next;
+    num_headers_available++;
+  }
+  // Allocate enough memory
+  s->headers = (cronet_bidirectional_stream_header *)gpr_malloc(
+      sizeof(cronet_bidirectional_stream_header) * num_headers_available);
+
+  // Walk the linked list again, this time copying the header fields.
+  // s->num_headers
+  // can be less than num_headers_available, as some headers are not used for
+  // cronet
+  curr = head;
+  s->num_headers = 0;
+  while (s->num_headers < num_headers_available) {
+    grpc_mdelem *mdelem = curr->md;
+    curr = curr->next;
+    const char *key = grpc_mdstr_as_c_string(mdelem->key);
+    const char *value = grpc_mdstr_as_c_string(mdelem->value);
+    if (strcmp(key, ":scheme") == 0 || strcmp(key, ":method") == 0 ||
+        strcmp(key, ":authority") == 0) {
+      // Cronet populates these fields on its own.
+      continue;
+    }
+    if (strcmp(key, ":path") == 0) {
+      // Create URL by appending :path value to the hostname
+      gpr_asprintf(&s->url, "https://%s%s", host, value);
+      if (grpc_cronet_trace) {
+        gpr_log(GPR_DEBUG, "extracted URL = %s", s->url);
+      }
+      continue;
+    }
+    s->headers[s->num_headers].key = key;
+    s->headers[s->num_headers].value = value;
+    s->num_headers++;
+    if (curr == NULL) {
+      break;
+    }
+  }
+}
+
+static void perform_stream_op(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
+                              grpc_stream *gs, grpc_transport_stream_op *op) {
+  grpc_cronet_transport *ct = (grpc_cronet_transport *)gt;
+  GPR_ASSERT(ct->engine);
+  stream_obj *s = (stream_obj *)gs;
+  if (op->recv_trailing_metadata) {
+    if (grpc_cronet_trace) {
+      gpr_log(GPR_DEBUG,
+              "perform_stream_op - recv_trailing_metadata: on_complete=%p",
+              op->on_complete);
+    }
+    s->recv_trailing_metadata = op->recv_trailing_metadata;
+    GPR_ASSERT(!s->callback_list[CB_RECV_TRAILING_METADATA][0]);
+    s->callback_list[CB_RECV_TRAILING_METADATA][0] = op->on_complete;
+  }
+  if (op->recv_message) {
+    if (grpc_cronet_trace) {
+      gpr_log(GPR_DEBUG, "perform_stream_op - recv_message: on_complete=%p",
+              op->on_complete);
+    }
+    s->recv_message = (grpc_byte_buffer **)op->recv_message;
+    GPR_ASSERT(!s->callback_list[CB_RECV_MESSAGE][0]);
+    GPR_ASSERT(!s->callback_list[CB_RECV_MESSAGE][1]);
+    s->callback_list[CB_RECV_MESSAGE][0] = op->recv_message_ready;
+    s->callback_list[CB_RECV_MESSAGE][1] = op->on_complete;
+    s->read_requested = true;
+    next_recv_step(s, PERFORM_STREAM_OP);
+  }
+  if (op->recv_initial_metadata) {
+    if (grpc_cronet_trace) {
+      gpr_log(GPR_DEBUG, "perform_stream_op - recv_initial_metadata:=%p",
+              op->on_complete);
+    }
+    s->recv_initial_metadata = op->recv_initial_metadata;
+    GPR_ASSERT(!s->callback_list[CB_RECV_INITIAL_METADATA][0]);
+    GPR_ASSERT(!s->callback_list[CB_RECV_INITIAL_METADATA][1]);
+    s->callback_list[CB_RECV_INITIAL_METADATA][0] =
+        op->recv_initial_metadata_ready;
+    s->callback_list[CB_RECV_INITIAL_METADATA][1] = op->on_complete;
+  }
+  if (op->send_initial_metadata) {
+    if (grpc_cronet_trace) {
+      gpr_log(GPR_DEBUG,
+              "perform_stream_op - send_initial_metadata: on_complete=%p",
+              op->on_complete);
+    }
+    s->num_headers = 0;
+    convert_metadata_to_cronet_headers(op->send_initial_metadata->list.head,
+                                       ct->host, s);
+    s->header_array.count = s->num_headers;
+    s->header_array.capacity = s->num_headers;
+    s->header_array.headers = s->headers;
+    GPR_ASSERT(!s->callback_list[CB_SEND_INITIAL_METADATA][0]);
+    s->callback_list[CB_SEND_INITIAL_METADATA][0] = op->on_complete;
+  }
+  if (op->send_message) {
+    if (grpc_cronet_trace) {
+      gpr_log(GPR_DEBUG, "perform_stream_op - send_message: on_complete=%p",
+              op->on_complete);
+    }
+    grpc_byte_stream_next(exec_ctx, op->send_message, &s->slice,
+                          op->send_message->length, NULL);
+    // Check that compression flag is not ON. We don't support compression yet.
+    // TODO (makdharma): add compression support
+    GPR_ASSERT(op->send_message->flags == 0);
+    gpr_slice_buffer_add(&s->write_slice_buffer, s->slice);
+    if (s->cbs == NULL) {
+      if (grpc_cronet_trace) {
+        gpr_log(GPR_DEBUG, "cronet_bidirectional_stream_create");
+      }
+      s->cbs = cronet_bidirectional_stream_create(ct->engine, s, &callbacks);
+      GPR_ASSERT(s->cbs);
+      s->read_closed = false;
+      s->response_trailers_received = false;
+      s->response_headers_received = false;
+      s->cronet_send_state = CRONET_SEND_IDLE;
+      s->cronet_recv_state = CRONET_RECV_IDLE;
+    }
+    GPR_ASSERT(!s->callback_list[CB_SEND_MESSAGE][0]);
+    s->callback_list[CB_SEND_MESSAGE][0] = op->on_complete;
+    next_send_step(s);
+  }
+  if (op->send_trailing_metadata) {
+    if (grpc_cronet_trace) {
+      gpr_log(GPR_DEBUG,
+              "perform_stream_op - send_trailing_metadata: on_complete=%p",
+              op->on_complete);
+    }
+    GPR_ASSERT(!s->callback_list[CB_SEND_TRAILING_METADATA][0]);
+    s->callback_list[CB_SEND_TRAILING_METADATA][0] = op->on_complete;
+    if (s->cbs) {
+      // Send an "empty" write to the far end to signal that we're done.
+      // This will induce the server to send down trailers.
+      if (grpc_cronet_trace) {
+        gpr_log(GPR_DEBUG, "W: cronet_bidirectional_stream_write");
+      }
+      cronet_bidirectional_stream_write(s->cbs, "abc", 0, true);
+    } else {
+      // We never created a stream. This was probably an empty request.
+      invoke_closing_callback(s);
+    }
+  }
+}
+
+static int init_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
+                       grpc_stream *gs, grpc_stream_refcount *refcount,
+                       const void *server_data) {
+  stream_obj *s = (stream_obj *)gs;
+  memset(s->callback_list, 0, sizeof(s->callback_list));
+  s->cbs = NULL;
+  gpr_mu_init(&s->recv_mu);
+  s->read_buffer = gpr_malloc(GRPC_HEADER_SIZE_IN_BYTES);
+  s->write_buffer = gpr_malloc(GRPC_HEADER_SIZE_IN_BYTES);
+  gpr_slice_buffer_init(&s->write_slice_buffer);
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "cronet_transport - init_stream");
+  }
+  return 0;
+}
+
+static void destroy_stream(grpc_exec_ctx *exec_ctx, grpc_transport *gt,
+                           grpc_stream *gs, void *and_free_memory) {
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "Destroy stream");
+  }
+  stream_obj *s = (stream_obj *)gs;
+  s->cbs = NULL;
+  gpr_free(s->read_buffer);
+  gpr_free(s->write_buffer);
+  gpr_free(s->url);
+  gpr_mu_destroy(&s->recv_mu);
+  if (and_free_memory) {
+    gpr_free(and_free_memory);
+  }
+}
+
+static void destroy_transport(grpc_exec_ctx *exec_ctx, grpc_transport *gt) {
+  grpc_cronet_transport *ct = (grpc_cronet_transport *)gt;
+  gpr_free(ct->host);
+  if (grpc_cronet_trace) {
+    gpr_log(GPR_DEBUG, "Destroy transport");
+  }
+}
+
+const grpc_transport_vtable grpc_cronet_vtable = {
+    sizeof(stream_obj),     "cronet_http",     init_stream,
+    set_pollset_do_nothing, perform_stream_op, NULL,
+    destroy_stream,         destroy_transport, NULL};
diff --git a/src/core/lib/channel/channel_args.c b/src/core/lib/channel/channel_args.c
index 28d2d78..893cf07 100644
--- a/src/core/lib/channel/channel_args.c
+++ b/src/core/lib/channel/channel_args.c
@@ -170,7 +170,7 @@
   if (a == NULL) return 0;
   for (i = 0; i < a->num_args; ++i) {
     if (a->args[i].type == GRPC_ARG_INTEGER &&
-        !strcmp(GRPC_COMPRESSION_ALGORITHM_ARG, a->args[i].key)) {
+        !strcmp(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM, a->args[i].key)) {
       return (grpc_compression_algorithm)a->args[i].value.integer;
       break;
     }
@@ -182,7 +182,7 @@
     grpc_channel_args *a, grpc_compression_algorithm algorithm) {
   grpc_arg tmp;
   tmp.type = GRPC_ARG_INTEGER;
-  tmp.key = GRPC_COMPRESSION_ALGORITHM_ARG;
+  tmp.key = GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM;
   tmp.value.integer = algorithm;
   return grpc_channel_args_copy_and_add(a, &tmp, 1);
 }
@@ -196,7 +196,8 @@
     size_t i;
     for (i = 0; i < a->num_args; ++i) {
       if (a->args[i].type == GRPC_ARG_INTEGER &&
-          !strcmp(GRPC_COMPRESSION_ALGORITHM_STATE_ARG, a->args[i].key)) {
+          !strcmp(GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
+                  a->args[i].key)) {
         *states_arg = &a->args[i].value.integer;
         return 1; /* GPR_TRUE */
       }
@@ -222,7 +223,7 @@
     /* create a new arg */
     grpc_arg tmp;
     tmp.type = GRPC_ARG_INTEGER;
-    tmp.key = GRPC_COMPRESSION_ALGORITHM_STATE_ARG;
+    tmp.key = GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET;
     /* all enabled by default */
     tmp.value.integer = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
     if (state != 0) {
diff --git a/src/core/lib/channel/channel_args.h b/src/core/lib/channel/channel_args.h
index 0a51780..23c7b7b 100644
--- a/src/core/lib/channel/channel_args.h
+++ b/src/core/lib/channel/channel_args.h
@@ -56,10 +56,6 @@
 /** Destroy arguments created by \a grpc_channel_args_copy */
 void grpc_channel_args_destroy(grpc_channel_args *a);
 
-/** Reads census_enabled settings from channel args. Returns 1 if census_enabled
- * is specified in channel args, otherwise returns 0. */
-int grpc_channel_args_is_census_enabled(const grpc_channel_args *a);
-
 /** Returns the compression algorithm set in \a a. */
 grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
     const grpc_channel_args *a);
diff --git a/src/core/lib/http/parser.c b/src/core/lib/http/parser.c
index a7efb5e..09b2ed4 100644
--- a/src/core/lib/http/parser.c
+++ b/src/core/lib/http/parser.c
@@ -161,8 +161,9 @@
     cur++;
   }
   if (cur == end) {
-    if (grpc_http1_trace)
+    if (grpc_http1_trace) {
       gpr_log(GPR_ERROR, "Didn't find ':' in header string");
+    }
     goto error;
   }
   GPR_ASSERT(cur >= beg);
diff --git a/src/core/lib/iomgr/ev_poll_and_epoll_posix.c b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
index 3c8127e..aeb6e28 100644
--- a/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
+++ b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
@@ -790,7 +790,6 @@
 static void pollset_global_init(void) {
   gpr_tls_init(&g_current_thread_poller);
   gpr_tls_init(&g_current_thread_worker);
-  grpc_wakeup_fd_global_init();
   grpc_wakeup_fd_init(&grpc_global_wakeup_fd);
 }
 
@@ -798,7 +797,6 @@
   grpc_wakeup_fd_destroy(&grpc_global_wakeup_fd);
   gpr_tls_destroy(&g_current_thread_poller);
   gpr_tls_destroy(&g_current_thread_worker);
-  grpc_wakeup_fd_global_destroy();
 }
 
 static void kick_poller(void) { grpc_wakeup_fd_wakeup(&grpc_global_wakeup_fd); }
diff --git a/src/core/lib/iomgr/ev_poll_posix.c b/src/core/lib/iomgr/ev_poll_posix.c
new file mode 100644
index 0000000..d175232
--- /dev/null
+++ b/src/core/lib/iomgr/ev_poll_posix.c
@@ -0,0 +1,1212 @@
+/*
+ *
+ * Copyright 2015-2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc/support/port_platform.h>
+
+#ifdef GPR_POSIX_SOCKET
+
+#include "src/core/lib/iomgr/ev_poll_posix.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <poll.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <unistd.h>
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/string_util.h>
+#include <grpc/support/tls.h>
+#include <grpc/support/useful.h>
+
+#include "src/core/lib/iomgr/iomgr_internal.h"
+#include "src/core/lib/iomgr/wakeup_fd_posix.h"
+#include "src/core/lib/profiling/timers.h"
+#include "src/core/lib/support/block_annotate.h"
+
+/*******************************************************************************
+ * FD declarations
+ */
+
+typedef struct grpc_fd_watcher {
+  struct grpc_fd_watcher *next;
+  struct grpc_fd_watcher *prev;
+  grpc_pollset *pollset;
+  grpc_pollset_worker *worker;
+  grpc_fd *fd;
+} grpc_fd_watcher;
+
+struct grpc_fd {
+  int fd;
+  /* refst format:
+     bit0:   1=active/0=orphaned
+     bit1-n: refcount
+     meaning that mostly we ref by two to avoid altering the orphaned bit,
+     and just unref by 1 when we're ready to flag the object as orphaned */
+  gpr_atm refst;
+
+  gpr_mu mu;
+  int shutdown;
+  int closed;
+  int released;
+
+  /* The watcher list.
+
+     The following watcher related fields are protected by watcher_mu.
+
+     An fd_watcher is an ephemeral object created when an fd wants to
+     begin polling, and destroyed after the poll.
+
+     It denotes the fd's interest in whether to read poll or write poll
+     or both or neither on this fd.
+
+     If a watcher is asked to poll for reads or writes, the read_watcher
+     or write_watcher fields are set respectively. A watcher may be asked
+     to poll for both, in which case both fields will be set.
+
+     read_watcher and write_watcher may be NULL if no watcher has been
+     asked to poll for reads or writes.
+
+     If an fd_watcher is not asked to poll for reads or writes, it's added
+     to a linked list of inactive watchers, rooted at inactive_watcher_root.
+     If at a later time there becomes need of a poller to poll, one of
+     the inactive pollers may be kicked out of their poll loops to take
+     that responsibility. */
+  grpc_fd_watcher inactive_watcher_root;
+  grpc_fd_watcher *read_watcher;
+  grpc_fd_watcher *write_watcher;
+
+  grpc_closure *read_closure;
+  grpc_closure *write_closure;
+
+  grpc_closure *on_done_closure;
+
+  grpc_iomgr_object iomgr_object;
+};
+
+/* Begin polling on an fd.
+   Registers that the given pollset is interested in this fd - so that if read
+   or writability interest changes, the pollset can be kicked to pick up that
+   new interest.
+   Return value is:
+     (fd_needs_read? read_mask : 0) | (fd_needs_write? write_mask : 0)
+   i.e. a combination of read_mask and write_mask determined by the fd's current
+   interest in said events.
+   Polling strategies that do not need to alter their behavior depending on the
+   fd's current interest (such as epoll) do not need to call this function.
+   MUST NOT be called with a pollset lock taken */
+static uint32_t fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
+                              grpc_pollset_worker *worker, uint32_t read_mask,
+                              uint32_t write_mask, grpc_fd_watcher *rec);
+/* Complete polling previously started with fd_begin_poll
+   MUST NOT be called with a pollset lock taken
+   if got_read or got_write are 1, also does the become_{readable,writable} as
+   appropriate. */
+static void fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *rec,
+                        int got_read, int got_write);
+
+/* Return 1 if this fd is orphaned, 0 otherwise */
+static bool fd_is_orphaned(grpc_fd *fd);
+
+/* Reference counting for fds */
+/*#define GRPC_FD_REF_COUNT_DEBUG*/
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void fd_ref(grpc_fd *fd, const char *reason, const char *file, int line);
+static void fd_unref(grpc_fd *fd, const char *reason, const char *file,
+                     int line);
+#define GRPC_FD_REF(fd, reason) fd_ref(fd, reason, __FILE__, __LINE__)
+#define GRPC_FD_UNREF(fd, reason) fd_unref(fd, reason, __FILE__, __LINE__)
+#else
+static void fd_ref(grpc_fd *fd);
+static void fd_unref(grpc_fd *fd);
+#define GRPC_FD_REF(fd, reason) fd_ref(fd)
+#define GRPC_FD_UNREF(fd, reason) fd_unref(fd)
+#endif
+
+#define CLOSURE_NOT_READY ((grpc_closure *)0)
+#define CLOSURE_READY ((grpc_closure *)1)
+
+/*******************************************************************************
+ * pollset declarations
+ */
+
+typedef struct grpc_cached_wakeup_fd {
+  grpc_wakeup_fd fd;
+  struct grpc_cached_wakeup_fd *next;
+} grpc_cached_wakeup_fd;
+
+struct grpc_pollset_worker {
+  grpc_cached_wakeup_fd *wakeup_fd;
+  int reevaluate_polling_on_wakeup;
+  int kicked_specifically;
+  struct grpc_pollset_worker *next;
+  struct grpc_pollset_worker *prev;
+};
+
+struct grpc_pollset {
+  gpr_mu mu;
+  grpc_pollset_worker root_worker;
+  int in_flight_cbs;
+  int shutting_down;
+  int called_shutdown;
+  int kicked_without_pollers;
+  grpc_closure *shutdown_done;
+  grpc_closure_list idle_jobs;
+  /* all polled fds */
+  size_t fd_count;
+  size_t fd_capacity;
+  grpc_fd **fds;
+  /* fds that have been removed from the pollset explicitly */
+  size_t del_count;
+  size_t del_capacity;
+  grpc_fd **dels;
+  /* Local cache of eventfds for workers */
+  grpc_cached_wakeup_fd *local_wakeup_cache;
+};
+
+/* Add an fd to a pollset */
+static void pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+                           struct grpc_fd *fd);
+
+static void pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+                               grpc_pollset_set *pollset_set, grpc_fd *fd);
+
+/* Convert a timespec to milliseconds:
+   - very small or negative poll times are clamped to zero to do a
+     non-blocking poll (which becomes spin polling)
+   - other small values are rounded up to one millisecond
+   - longer than a millisecond polls are rounded up to the next nearest
+     millisecond to avoid spinning
+   - infinite timeouts are converted to -1 */
+static int poll_deadline_to_millis_timeout(gpr_timespec deadline,
+                                           gpr_timespec now);
+
+/* Allow kick to wakeup the currently polling worker */
+#define GRPC_POLLSET_CAN_KICK_SELF 1
+/* Force the wakee to repoll when awoken */
+#define GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP 2
+/* As per pollset_kick, with an extended set of flags (defined above)
+   -- mostly for fd_posix's use. */
+static void pollset_kick_ext(grpc_pollset *p,
+                             grpc_pollset_worker *specific_worker,
+                             uint32_t flags);
+
+/* Return 1 if the pollset has active threads in pollset_work (pollset must
+ * be locked) */
+static int pollset_has_workers(grpc_pollset *pollset);
+
+/*******************************************************************************
+ * pollset_set definitions
+ */
+
+struct grpc_pollset_set {
+  gpr_mu mu;
+
+  size_t pollset_count;
+  size_t pollset_capacity;
+  grpc_pollset **pollsets;
+
+  size_t pollset_set_count;
+  size_t pollset_set_capacity;
+  struct grpc_pollset_set **pollset_sets;
+
+  size_t fd_count;
+  size_t fd_capacity;
+  grpc_fd **fds;
+};
+
+/*******************************************************************************
+ * fd_posix.c
+ */
+
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+#define REF_BY(fd, n, reason) ref_by(fd, n, reason, __FILE__, __LINE__)
+#define UNREF_BY(fd, n, reason) unref_by(fd, n, reason, __FILE__, __LINE__)
+static void ref_by(grpc_fd *fd, int n, const char *reason, const char *file,
+                   int line) {
+  gpr_log(GPR_DEBUG, "FD %d %p   ref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
+          gpr_atm_no_barrier_load(&fd->refst),
+          gpr_atm_no_barrier_load(&fd->refst) + n, reason, file, line);
+#else
+#define REF_BY(fd, n, reason) ref_by(fd, n)
+#define UNREF_BY(fd, n, reason) unref_by(fd, n)
+static void ref_by(grpc_fd *fd, int n) {
+#endif
+  GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&fd->refst, n) > 0);
+}
+
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void unref_by(grpc_fd *fd, int n, const char *reason, const char *file,
+                     int line) {
+  gpr_atm old;
+  gpr_log(GPR_DEBUG, "FD %d %p unref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
+          gpr_atm_no_barrier_load(&fd->refst),
+          gpr_atm_no_barrier_load(&fd->refst) - n, reason, file, line);
+#else
+static void unref_by(grpc_fd *fd, int n) {
+  gpr_atm old;
+#endif
+  old = gpr_atm_full_fetch_add(&fd->refst, -n);
+  if (old == n) {
+    gpr_mu_destroy(&fd->mu);
+    grpc_iomgr_unregister_object(&fd->iomgr_object);
+    gpr_free(fd);
+  } else {
+    GPR_ASSERT(old > n);
+  }
+}
+
+static grpc_fd *fd_create(int fd, const char *name) {
+  grpc_fd *r = gpr_malloc(sizeof(*r));
+  gpr_mu_init(&r->mu);
+  gpr_atm_rel_store(&r->refst, 1);
+  r->shutdown = 0;
+  r->read_closure = CLOSURE_NOT_READY;
+  r->write_closure = CLOSURE_NOT_READY;
+  r->fd = fd;
+  r->inactive_watcher_root.next = r->inactive_watcher_root.prev =
+      &r->inactive_watcher_root;
+  r->read_watcher = r->write_watcher = NULL;
+  r->on_done_closure = NULL;
+  r->closed = 0;
+  r->released = 0;
+
+  char *name2;
+  gpr_asprintf(&name2, "%s fd=%d", name, fd);
+  grpc_iomgr_register_object(&r->iomgr_object, name2);
+  gpr_free(name2);
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+  gpr_log(GPR_DEBUG, "FD %d %p create %s", fd, r, name);
+#endif
+  return r;
+}
+
+static bool fd_is_orphaned(grpc_fd *fd) {
+  return (gpr_atm_acq_load(&fd->refst) & 1) == 0;
+}
+
+static void pollset_kick_locked(grpc_fd_watcher *watcher) {
+  gpr_mu_lock(&watcher->pollset->mu);
+  GPR_ASSERT(watcher->worker);
+  pollset_kick_ext(watcher->pollset, watcher->worker,
+                   GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
+  gpr_mu_unlock(&watcher->pollset->mu);
+}
+
+static void maybe_wake_one_watcher_locked(grpc_fd *fd) {
+  if (fd->inactive_watcher_root.next != &fd->inactive_watcher_root) {
+    pollset_kick_locked(fd->inactive_watcher_root.next);
+  } else if (fd->read_watcher) {
+    pollset_kick_locked(fd->read_watcher);
+  } else if (fd->write_watcher) {
+    pollset_kick_locked(fd->write_watcher);
+  }
+}
+
+static void wake_all_watchers_locked(grpc_fd *fd) {
+  grpc_fd_watcher *watcher;
+  for (watcher = fd->inactive_watcher_root.next;
+       watcher != &fd->inactive_watcher_root; watcher = watcher->next) {
+    pollset_kick_locked(watcher);
+  }
+  if (fd->read_watcher) {
+    pollset_kick_locked(fd->read_watcher);
+  }
+  if (fd->write_watcher && fd->write_watcher != fd->read_watcher) {
+    pollset_kick_locked(fd->write_watcher);
+  }
+}
+
+static int has_watchers(grpc_fd *fd) {
+  return fd->read_watcher != NULL || fd->write_watcher != NULL ||
+         fd->inactive_watcher_root.next != &fd->inactive_watcher_root;
+}
+
+static void close_fd_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+  fd->closed = 1;
+  if (!fd->released) {
+    close(fd->fd);
+  }
+  grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, true, NULL);
+}
+
+static int fd_wrapped_fd(grpc_fd *fd) {
+  if (fd->released || fd->closed) {
+    return -1;
+  } else {
+    return fd->fd;
+  }
+}
+
+static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+                      grpc_closure *on_done, int *release_fd,
+                      const char *reason) {
+  fd->on_done_closure = on_done;
+  fd->released = release_fd != NULL;
+  if (!fd->released) {
+    shutdown(fd->fd, SHUT_RDWR);
+  } else {
+    *release_fd = fd->fd;
+  }
+  gpr_mu_lock(&fd->mu);
+  REF_BY(fd, 1, reason); /* remove active status, but keep referenced */
+  if (!has_watchers(fd)) {
+    close_fd_locked(exec_ctx, fd);
+  } else {
+    wake_all_watchers_locked(fd);
+  }
+  gpr_mu_unlock(&fd->mu);
+  UNREF_BY(fd, 2, reason); /* drop the reference */
+}
+
+/* increment refcount by two to avoid changing the orphan bit */
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void fd_ref(grpc_fd *fd, const char *reason, const char *file,
+                   int line) {
+  ref_by(fd, 2, reason, file, line);
+}
+
+static void fd_unref(grpc_fd *fd, const char *reason, const char *file,
+                     int line) {
+  unref_by(fd, 2, reason, file, line);
+}
+#else
+static void fd_ref(grpc_fd *fd) { ref_by(fd, 2); }
+
+static void fd_unref(grpc_fd *fd) { unref_by(fd, 2); }
+#endif
+
+static void notify_on_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+                             grpc_closure **st, grpc_closure *closure) {
+  if (*st == CLOSURE_NOT_READY) {
+    /* not ready ==> switch to a waiting state by setting the closure */
+    *st = closure;
+  } else if (*st == CLOSURE_READY) {
+    /* already ready ==> queue the closure to run immediately */
+    *st = CLOSURE_NOT_READY;
+    grpc_exec_ctx_enqueue(exec_ctx, closure, !fd->shutdown, NULL);
+    maybe_wake_one_watcher_locked(fd);
+  } else {
+    /* upcallptr was set to a different closure.  This is an error! */
+    gpr_log(GPR_ERROR,
+            "User called a notify_on function with a previous callback still "
+            "pending");
+    abort();
+  }
+}
+
+/* returns 1 if state becomes not ready */
+static int set_ready_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+                            grpc_closure **st) {
+  if (*st == CLOSURE_READY) {
+    /* duplicate ready ==> ignore */
+    return 0;
+  } else if (*st == CLOSURE_NOT_READY) {
+    /* not ready, and not waiting ==> flag ready */
+    *st = CLOSURE_READY;
+    return 0;
+  } else {
+    /* waiting ==> queue closure */
+    grpc_exec_ctx_enqueue(exec_ctx, *st, !fd->shutdown, NULL);
+    *st = CLOSURE_NOT_READY;
+    return 1;
+  }
+}
+
+static void fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+  gpr_mu_lock(&fd->mu);
+  GPR_ASSERT(!fd->shutdown);
+  fd->shutdown = 1;
+  set_ready_locked(exec_ctx, fd, &fd->read_closure);
+  set_ready_locked(exec_ctx, fd, &fd->write_closure);
+  gpr_mu_unlock(&fd->mu);
+}
+
+static void fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+                              grpc_closure *closure) {
+  gpr_mu_lock(&fd->mu);
+  notify_on_locked(exec_ctx, fd, &fd->read_closure, closure);
+  gpr_mu_unlock(&fd->mu);
+}
+
+static void fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+                               grpc_closure *closure) {
+  gpr_mu_lock(&fd->mu);
+  notify_on_locked(exec_ctx, fd, &fd->write_closure, closure);
+  gpr_mu_unlock(&fd->mu);
+}
+
+static uint32_t fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
+                              grpc_pollset_worker *worker, uint32_t read_mask,
+                              uint32_t write_mask, grpc_fd_watcher *watcher) {
+  uint32_t mask = 0;
+  grpc_closure *cur;
+  int requested;
+  /* keep track of pollers that have requested our events, in case they change
+   */
+  GRPC_FD_REF(fd, "poll");
+
+  gpr_mu_lock(&fd->mu);
+
+  /* if we are shutdown, then don't add to the watcher set */
+  if (fd->shutdown) {
+    watcher->fd = NULL;
+    watcher->pollset = NULL;
+    watcher->worker = NULL;
+    gpr_mu_unlock(&fd->mu);
+    GRPC_FD_UNREF(fd, "poll");
+    return 0;
+  }
+
+  /* if there is nobody polling for read, but we need to, then start doing so */
+  cur = fd->read_closure;
+  requested = cur != CLOSURE_READY;
+  if (read_mask && fd->read_watcher == NULL && requested) {
+    fd->read_watcher = watcher;
+    mask |= read_mask;
+  }
+  /* if there is nobody polling for write, but we need to, then start doing so
+   */
+  cur = fd->write_closure;
+  requested = cur != CLOSURE_READY;
+  if (write_mask && fd->write_watcher == NULL && requested) {
+    fd->write_watcher = watcher;
+    mask |= write_mask;
+  }
+  /* if not polling, remember this watcher in case we need someone to later */
+  if (mask == 0 && worker != NULL) {
+    watcher->next = &fd->inactive_watcher_root;
+    watcher->prev = watcher->next->prev;
+    watcher->next->prev = watcher->prev->next = watcher;
+  }
+  watcher->pollset = pollset;
+  watcher->worker = worker;
+  watcher->fd = fd;
+  gpr_mu_unlock(&fd->mu);
+
+  return mask;
+}
+
+static void fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
+                        int got_read, int got_write) {
+  int was_polling = 0;
+  int kick = 0;
+  grpc_fd *fd = watcher->fd;
+
+  if (fd == NULL) {
+    return;
+  }
+
+  gpr_mu_lock(&fd->mu);
+
+  if (watcher == fd->read_watcher) {
+    /* remove read watcher, kick if we still need a read */
+    was_polling = 1;
+    if (!got_read) {
+      kick = 1;
+    }
+    fd->read_watcher = NULL;
+  }
+  if (watcher == fd->write_watcher) {
+    /* remove write watcher, kick if we still need a write */
+    was_polling = 1;
+    if (!got_write) {
+      kick = 1;
+    }
+    fd->write_watcher = NULL;
+  }
+  if (!was_polling && watcher->worker != NULL) {
+    /* remove from inactive list */
+    watcher->next->prev = watcher->prev;
+    watcher->prev->next = watcher->next;
+  }
+  if (got_read) {
+    if (set_ready_locked(exec_ctx, fd, &fd->read_closure)) {
+      kick = 1;
+    }
+  }
+  if (got_write) {
+    if (set_ready_locked(exec_ctx, fd, &fd->write_closure)) {
+      kick = 1;
+    }
+  }
+  if (kick) {
+    maybe_wake_one_watcher_locked(fd);
+  }
+  if (fd_is_orphaned(fd) && !has_watchers(fd) && !fd->closed) {
+    close_fd_locked(exec_ctx, fd);
+  }
+  gpr_mu_unlock(&fd->mu);
+
+  GRPC_FD_UNREF(fd, "poll");
+}
+
+/*******************************************************************************
+ * pollset_posix.c
+ */
+
+GPR_TLS_DECL(g_current_thread_poller);
+GPR_TLS_DECL(g_current_thread_worker);
+
+static void remove_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+  worker->prev->next = worker->next;
+  worker->next->prev = worker->prev;
+}
+
+static int pollset_has_workers(grpc_pollset *p) {
+  return p->root_worker.next != &p->root_worker;
+}
+
+static grpc_pollset_worker *pop_front_worker(grpc_pollset *p) {
+  if (pollset_has_workers(p)) {
+    grpc_pollset_worker *w = p->root_worker.next;
+    remove_worker(p, w);
+    return w;
+  } else {
+    return NULL;
+  }
+}
+
+static void push_back_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+  worker->next = &p->root_worker;
+  worker->prev = worker->next->prev;
+  worker->prev->next = worker->next->prev = worker;
+}
+
+static void push_front_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+  worker->prev = &p->root_worker;
+  worker->next = worker->prev->next;
+  worker->prev->next = worker->next->prev = worker;
+}
+
+static void pollset_kick_ext(grpc_pollset *p,
+                             grpc_pollset_worker *specific_worker,
+                             uint32_t flags) {
+  GPR_TIMER_BEGIN("pollset_kick_ext", 0);
+
+  /* pollset->mu already held */
+  if (specific_worker != NULL) {
+    if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
+      GPR_TIMER_BEGIN("pollset_kick_ext.broadcast", 0);
+      GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
+      for (specific_worker = p->root_worker.next;
+           specific_worker != &p->root_worker;
+           specific_worker = specific_worker->next) {
+        grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+      }
+      p->kicked_without_pollers = 1;
+      GPR_TIMER_END("pollset_kick_ext.broadcast", 0);
+    } else if (gpr_tls_get(&g_current_thread_worker) !=
+               (intptr_t)specific_worker) {
+      GPR_TIMER_MARK("different_thread_worker", 0);
+      if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
+        specific_worker->reevaluate_polling_on_wakeup = 1;
+      }
+      specific_worker->kicked_specifically = 1;
+      grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+    } else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) {
+      GPR_TIMER_MARK("kick_yoself", 0);
+      if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
+        specific_worker->reevaluate_polling_on_wakeup = 1;
+      }
+      specific_worker->kicked_specifically = 1;
+      grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+    }
+  } else if (gpr_tls_get(&g_current_thread_poller) != (intptr_t)p) {
+    GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
+    GPR_TIMER_MARK("kick_anonymous", 0);
+    specific_worker = pop_front_worker(p);
+    if (specific_worker != NULL) {
+      if (gpr_tls_get(&g_current_thread_worker) == (intptr_t)specific_worker) {
+        GPR_TIMER_MARK("kick_anonymous_not_self", 0);
+        push_back_worker(p, specific_worker);
+        specific_worker = pop_front_worker(p);
+        if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
+            gpr_tls_get(&g_current_thread_worker) ==
+                (intptr_t)specific_worker) {
+          push_back_worker(p, specific_worker);
+          specific_worker = NULL;
+        }
+      }
+      if (specific_worker != NULL) {
+        GPR_TIMER_MARK("finally_kick", 0);
+        push_back_worker(p, specific_worker);
+        grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+      }
+    } else {
+      GPR_TIMER_MARK("kicked_no_pollers", 0);
+      p->kicked_without_pollers = 1;
+    }
+  }
+
+  GPR_TIMER_END("pollset_kick_ext", 0);
+}
+
+static void pollset_kick(grpc_pollset *p,
+                         grpc_pollset_worker *specific_worker) {
+  pollset_kick_ext(p, specific_worker, 0);
+}
+
+/* global state management */
+
+static void pollset_global_init(void) {
+  gpr_tls_init(&g_current_thread_poller);
+  gpr_tls_init(&g_current_thread_worker);
+  grpc_wakeup_fd_init(&grpc_global_wakeup_fd);
+}
+
+static void pollset_global_shutdown(void) {
+  grpc_wakeup_fd_destroy(&grpc_global_wakeup_fd);
+  gpr_tls_destroy(&g_current_thread_poller);
+  gpr_tls_destroy(&g_current_thread_worker);
+}
+
+static void kick_poller(void) { grpc_wakeup_fd_wakeup(&grpc_global_wakeup_fd); }
+
+/* main interface */
+
+static void pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
+  gpr_mu_init(&pollset->mu);
+  *mu = &pollset->mu;
+  pollset->root_worker.next = pollset->root_worker.prev = &pollset->root_worker;
+  pollset->in_flight_cbs = 0;
+  pollset->shutting_down = 0;
+  pollset->called_shutdown = 0;
+  pollset->kicked_without_pollers = 0;
+  pollset->idle_jobs.head = pollset->idle_jobs.tail = NULL;
+  pollset->local_wakeup_cache = NULL;
+  pollset->kicked_without_pollers = 0;
+  pollset->fd_count = 0;
+  pollset->fd_capacity = 0;
+  pollset->del_count = 0;
+  pollset->del_capacity = 0;
+  pollset->fds = NULL;
+  pollset->dels = NULL;
+}
+
+static void pollset_destroy(grpc_pollset *pollset) {
+  GPR_ASSERT(pollset->in_flight_cbs == 0);
+  GPR_ASSERT(!pollset_has_workers(pollset));
+  GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
+  while (pollset->local_wakeup_cache) {
+    grpc_cached_wakeup_fd *next = pollset->local_wakeup_cache->next;
+    grpc_wakeup_fd_destroy(&pollset->local_wakeup_cache->fd);
+    gpr_free(pollset->local_wakeup_cache);
+    pollset->local_wakeup_cache = next;
+  }
+  gpr_free(pollset->fds);
+  gpr_free(pollset->dels);
+  gpr_mu_destroy(&pollset->mu);
+}
+
+static void pollset_reset(grpc_pollset *pollset) {
+  GPR_ASSERT(pollset->shutting_down);
+  GPR_ASSERT(pollset->in_flight_cbs == 0);
+  GPR_ASSERT(!pollset_has_workers(pollset));
+  GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
+  GPR_ASSERT(pollset->fd_count == 0);
+  GPR_ASSERT(pollset->del_count == 0);
+  pollset->shutting_down = 0;
+  pollset->called_shutdown = 0;
+  pollset->kicked_without_pollers = 0;
+}
+
+static void pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+                           grpc_fd *fd) {
+  gpr_mu_lock(&pollset->mu);
+  size_t i;
+  /* TODO(ctiller): this is O(num_fds^2); maybe switch to a hash set here */
+  for (i = 0; i < pollset->fd_count; i++) {
+    if (pollset->fds[i] == fd) goto exit;
+  }
+  if (pollset->fd_count == pollset->fd_capacity) {
+    pollset->fd_capacity =
+        GPR_MAX(pollset->fd_capacity + 8, pollset->fd_count * 3 / 2);
+    pollset->fds =
+        gpr_realloc(pollset->fds, sizeof(grpc_fd *) * pollset->fd_capacity);
+  }
+  pollset->fds[pollset->fd_count++] = fd;
+  GRPC_FD_REF(fd, "multipoller");
+  pollset_kick(pollset, NULL);
+exit:
+  gpr_mu_unlock(&pollset->mu);
+}
+
+static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
+  GPR_ASSERT(grpc_closure_list_empty(pollset->idle_jobs));
+  size_t i;
+  for (i = 0; i < pollset->fd_count; i++) {
+    GRPC_FD_UNREF(pollset->fds[i], "multipoller");
+  }
+  for (i = 0; i < pollset->del_count; i++) {
+    GRPC_FD_UNREF(pollset->dels[i], "multipoller_del");
+  }
+  pollset->fd_count = 0;
+  pollset->del_count = 0;
+  grpc_exec_ctx_enqueue(exec_ctx, pollset->shutdown_done, true, NULL);
+}
+
+static void pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+                         grpc_pollset_worker **worker_hdl, gpr_timespec now,
+                         gpr_timespec deadline) {
+  grpc_pollset_worker worker;
+  *worker_hdl = &worker;
+
+  /* pollset->mu already held */
+  int added_worker = 0;
+  int locked = 1;
+  int queued_work = 0;
+  int keep_polling = 0;
+  GPR_TIMER_BEGIN("pollset_work", 0);
+  /* this must happen before we (potentially) drop pollset->mu */
+  worker.next = worker.prev = NULL;
+  worker.reevaluate_polling_on_wakeup = 0;
+  if (pollset->local_wakeup_cache != NULL) {
+    worker.wakeup_fd = pollset->local_wakeup_cache;
+    pollset->local_wakeup_cache = worker.wakeup_fd->next;
+  } else {
+    worker.wakeup_fd = gpr_malloc(sizeof(*worker.wakeup_fd));
+    grpc_wakeup_fd_init(&worker.wakeup_fd->fd);
+  }
+  worker.kicked_specifically = 0;
+  /* If there's work waiting for the pollset to be idle, and the
+     pollset is idle, then do that work */
+  if (!pollset_has_workers(pollset) &&
+      !grpc_closure_list_empty(pollset->idle_jobs)) {
+    GPR_TIMER_MARK("pollset_work.idle_jobs", 0);
+    grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+    goto done;
+  }
+  /* If we're shutting down then we don't execute any extended work */
+  if (pollset->shutting_down) {
+    GPR_TIMER_MARK("pollset_work.shutting_down", 0);
+    goto done;
+  }
+  /* Give do_promote priority so we don't starve it out */
+  if (pollset->in_flight_cbs) {
+    GPR_TIMER_MARK("pollset_work.in_flight_cbs", 0);
+    gpr_mu_unlock(&pollset->mu);
+    locked = 0;
+    goto done;
+  }
+  /* Start polling, and keep doing so while we're being asked to
+     re-evaluate our pollers (this allows poll() based pollers to
+     ensure they don't miss wakeups) */
+  keep_polling = 1;
+  while (keep_polling) {
+    keep_polling = 0;
+    if (!pollset->kicked_without_pollers) {
+      if (!added_worker) {
+        push_front_worker(pollset, &worker);
+        added_worker = 1;
+        gpr_tls_set(&g_current_thread_worker, (intptr_t)&worker);
+      }
+      gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
+      GPR_TIMER_BEGIN("maybe_work_and_unlock", 0);
+#define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
+#define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
+
+      int timeout;
+      int r;
+      size_t i, j, fd_count;
+      nfds_t pfd_count;
+      /* TODO(ctiller): inline some elements to avoid an allocation */
+      grpc_fd_watcher *watchers;
+      struct pollfd *pfds;
+
+      timeout = poll_deadline_to_millis_timeout(deadline, now);
+      /* TODO(ctiller): perform just one malloc here if we exceed the inline
+       * case */
+      pfds = gpr_malloc(sizeof(*pfds) * (pollset->fd_count + 2));
+      watchers = gpr_malloc(sizeof(*watchers) * (pollset->fd_count + 2));
+      fd_count = 0;
+      pfd_count = 2;
+      pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
+      pfds[0].events = POLLIN;
+      pfds[0].revents = 0;
+      pfds[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker.wakeup_fd->fd);
+      pfds[1].events = POLLIN;
+      pfds[1].revents = 0;
+      for (i = 0; i < pollset->fd_count; i++) {
+        int remove = fd_is_orphaned(pollset->fds[i]);
+        for (j = 0; !remove && j < pollset->del_count; j++) {
+          if (pollset->fds[i] == pollset->dels[j]) remove = 1;
+        }
+        if (remove) {
+          GRPC_FD_UNREF(pollset->fds[i], "multipoller");
+        } else {
+          pollset->fds[fd_count++] = pollset->fds[i];
+          watchers[pfd_count].fd = pollset->fds[i];
+          GRPC_FD_REF(watchers[pfd_count].fd, "multipoller_start");
+          pfds[pfd_count].fd = pollset->fds[i]->fd;
+          pfds[pfd_count].revents = 0;
+          pfd_count++;
+        }
+      }
+      for (j = 0; j < pollset->del_count; j++) {
+        GRPC_FD_UNREF(pollset->dels[j], "multipoller_del");
+      }
+      pollset->del_count = 0;
+      pollset->fd_count = fd_count;
+      gpr_mu_unlock(&pollset->mu);
+
+      for (i = 2; i < pfd_count; i++) {
+        grpc_fd *fd = watchers[i].fd;
+        pfds[i].events = (short)fd_begin_poll(fd, pollset, &worker, POLLIN,
+                                              POLLOUT, &watchers[i]);
+        GRPC_FD_UNREF(fd, "multipoller_start");
+      }
+
+      /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
+         even going into the blocking annotation if possible */
+      GRPC_SCHEDULING_START_BLOCKING_REGION;
+      r = grpc_poll_function(pfds, pfd_count, timeout);
+      GRPC_SCHEDULING_END_BLOCKING_REGION;
+
+      if (r < 0) {
+        if (errno != EINTR) {
+          gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+        }
+        for (i = 2; i < pfd_count; i++) {
+          fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+        }
+      } else if (r == 0) {
+        for (i = 2; i < pfd_count; i++) {
+          fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+        }
+      } else {
+        if (pfds[0].revents & POLLIN_CHECK) {
+          grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
+        }
+        if (pfds[1].revents & POLLIN_CHECK) {
+          grpc_wakeup_fd_consume_wakeup(&worker.wakeup_fd->fd);
+        }
+        for (i = 2; i < pfd_count; i++) {
+          if (watchers[i].fd == NULL) {
+            fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+          } else {
+            fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN_CHECK,
+                        pfds[i].revents & POLLOUT_CHECK);
+          }
+        }
+      }
+
+      gpr_free(pfds);
+      gpr_free(watchers);
+      GPR_TIMER_END("maybe_work_and_unlock", 0);
+      locked = 0;
+      gpr_tls_set(&g_current_thread_poller, 0);
+    } else {
+      GPR_TIMER_MARK("pollset_work.kicked_without_pollers", 0);
+      pollset->kicked_without_pollers = 0;
+    }
+  /* Finished execution - start cleaning up.
+     Note that we may arrive here from outside the enclosing while() loop.
+     In that case we won't loop though as we haven't added worker to the
+     worker list, which means nobody could ask us to re-evaluate polling). */
+  done:
+    if (!locked) {
+      queued_work |= grpc_exec_ctx_flush(exec_ctx);
+      gpr_mu_lock(&pollset->mu);
+      locked = 1;
+    }
+    /* If we're forced to re-evaluate polling (via pollset_kick with
+       GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) then we land here and force
+       a loop */
+    if (worker.reevaluate_polling_on_wakeup) {
+      worker.reevaluate_polling_on_wakeup = 0;
+      pollset->kicked_without_pollers = 0;
+      if (queued_work || worker.kicked_specifically) {
+        /* If there's queued work on the list, then set the deadline to be
+           immediate so we get back out of the polling loop quickly */
+        deadline = gpr_inf_past(GPR_CLOCK_MONOTONIC);
+      }
+      keep_polling = 1;
+    }
+    if (keep_polling) {
+      now = gpr_now(now.clock_type);
+    }
+  }
+  if (added_worker) {
+    remove_worker(pollset, &worker);
+    gpr_tls_set(&g_current_thread_worker, 0);
+  }
+  /* release wakeup fd to the local pool */
+  worker.wakeup_fd->next = pollset->local_wakeup_cache;
+  pollset->local_wakeup_cache = worker.wakeup_fd;
+  /* check shutdown conditions */
+  if (pollset->shutting_down) {
+    if (pollset_has_workers(pollset)) {
+      pollset_kick(pollset, NULL);
+    } else if (!pollset->called_shutdown && pollset->in_flight_cbs == 0) {
+      pollset->called_shutdown = 1;
+      gpr_mu_unlock(&pollset->mu);
+      finish_shutdown(exec_ctx, pollset);
+      grpc_exec_ctx_flush(exec_ctx);
+      /* Continuing to access pollset here is safe -- it is the caller's
+       * responsibility to not destroy when it has outstanding calls to
+       * pollset_work.
+       * TODO(dklempner): Can we refactor the shutdown logic to avoid this? */
+      gpr_mu_lock(&pollset->mu);
+    } else if (!grpc_closure_list_empty(pollset->idle_jobs)) {
+      grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+      gpr_mu_unlock(&pollset->mu);
+      grpc_exec_ctx_flush(exec_ctx);
+      gpr_mu_lock(&pollset->mu);
+    }
+  }
+  *worker_hdl = NULL;
+  GPR_TIMER_END("pollset_work", 0);
+}
+
+static void pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+                             grpc_closure *closure) {
+  GPR_ASSERT(!pollset->shutting_down);
+  pollset->shutting_down = 1;
+  pollset->shutdown_done = closure;
+  pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
+  if (!pollset_has_workers(pollset)) {
+    grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+  }
+  if (!pollset->called_shutdown && pollset->in_flight_cbs == 0 &&
+      !pollset_has_workers(pollset)) {
+    pollset->called_shutdown = 1;
+    finish_shutdown(exec_ctx, pollset);
+  }
+}
+
+static int poll_deadline_to_millis_timeout(gpr_timespec deadline,
+                                           gpr_timespec now) {
+  gpr_timespec timeout;
+  static const int64_t max_spin_polling_us = 10;
+  if (gpr_time_cmp(deadline, gpr_inf_future(deadline.clock_type)) == 0) {
+    return -1;
+  }
+  if (gpr_time_cmp(deadline, gpr_time_add(now, gpr_time_from_micros(
+                                                   max_spin_polling_us,
+                                                   GPR_TIMESPAN))) <= 0) {
+    return 0;
+  }
+  timeout = gpr_time_sub(deadline, now);
+  return gpr_time_to_millis(gpr_time_add(
+      timeout, gpr_time_from_nanos(GPR_NS_PER_MS - 1, GPR_TIMESPAN)));
+}
+
+/*******************************************************************************
+ * pollset_set_posix.c
+ */
+
+static grpc_pollset_set *pollset_set_create(void) {
+  grpc_pollset_set *pollset_set = gpr_malloc(sizeof(*pollset_set));
+  memset(pollset_set, 0, sizeof(*pollset_set));
+  gpr_mu_init(&pollset_set->mu);
+  return pollset_set;
+}
+
+static void pollset_set_destroy(grpc_pollset_set *pollset_set) {
+  size_t i;
+  gpr_mu_destroy(&pollset_set->mu);
+  for (i = 0; i < pollset_set->fd_count; i++) {
+    GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
+  }
+  gpr_free(pollset_set->pollsets);
+  gpr_free(pollset_set->pollset_sets);
+  gpr_free(pollset_set->fds);
+  gpr_free(pollset_set);
+}
+
+static void pollset_set_add_pollset(grpc_exec_ctx *exec_ctx,
+                                    grpc_pollset_set *pollset_set,
+                                    grpc_pollset *pollset) {
+  size_t i, j;
+  gpr_mu_lock(&pollset_set->mu);
+  if (pollset_set->pollset_count == pollset_set->pollset_capacity) {
+    pollset_set->pollset_capacity =
+        GPR_MAX(8, 2 * pollset_set->pollset_capacity);
+    pollset_set->pollsets =
+        gpr_realloc(pollset_set->pollsets, pollset_set->pollset_capacity *
+                                               sizeof(*pollset_set->pollsets));
+  }
+  pollset_set->pollsets[pollset_set->pollset_count++] = pollset;
+  for (i = 0, j = 0; i < pollset_set->fd_count; i++) {
+    if (fd_is_orphaned(pollset_set->fds[i])) {
+      GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
+    } else {
+      pollset_add_fd(exec_ctx, pollset, pollset_set->fds[i]);
+      pollset_set->fds[j++] = pollset_set->fds[i];
+    }
+  }
+  pollset_set->fd_count = j;
+  gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_del_pollset(grpc_exec_ctx *exec_ctx,
+                                    grpc_pollset_set *pollset_set,
+                                    grpc_pollset *pollset) {
+  size_t i;
+  gpr_mu_lock(&pollset_set->mu);
+  for (i = 0; i < pollset_set->pollset_count; i++) {
+    if (pollset_set->pollsets[i] == pollset) {
+      pollset_set->pollset_count--;
+      GPR_SWAP(grpc_pollset *, pollset_set->pollsets[i],
+               pollset_set->pollsets[pollset_set->pollset_count]);
+      break;
+    }
+  }
+  gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_add_pollset_set(grpc_exec_ctx *exec_ctx,
+                                        grpc_pollset_set *bag,
+                                        grpc_pollset_set *item) {
+  size_t i, j;
+  gpr_mu_lock(&bag->mu);
+  if (bag->pollset_set_count == bag->pollset_set_capacity) {
+    bag->pollset_set_capacity = GPR_MAX(8, 2 * bag->pollset_set_capacity);
+    bag->pollset_sets =
+        gpr_realloc(bag->pollset_sets,
+                    bag->pollset_set_capacity * sizeof(*bag->pollset_sets));
+  }
+  bag->pollset_sets[bag->pollset_set_count++] = item;
+  for (i = 0, j = 0; i < bag->fd_count; i++) {
+    if (fd_is_orphaned(bag->fds[i])) {
+      GRPC_FD_UNREF(bag->fds[i], "pollset_set");
+    } else {
+      pollset_set_add_fd(exec_ctx, item, bag->fds[i]);
+      bag->fds[j++] = bag->fds[i];
+    }
+  }
+  bag->fd_count = j;
+  gpr_mu_unlock(&bag->mu);
+}
+
+static void pollset_set_del_pollset_set(grpc_exec_ctx *exec_ctx,
+                                        grpc_pollset_set *bag,
+                                        grpc_pollset_set *item) {
+  size_t i;
+  gpr_mu_lock(&bag->mu);
+  for (i = 0; i < bag->pollset_set_count; i++) {
+    if (bag->pollset_sets[i] == item) {
+      bag->pollset_set_count--;
+      GPR_SWAP(grpc_pollset_set *, bag->pollset_sets[i],
+               bag->pollset_sets[bag->pollset_set_count]);
+      break;
+    }
+  }
+  gpr_mu_unlock(&bag->mu);
+}
+
+static void pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+                               grpc_pollset_set *pollset_set, grpc_fd *fd) {
+  size_t i;
+  gpr_mu_lock(&pollset_set->mu);
+  if (pollset_set->fd_count == pollset_set->fd_capacity) {
+    pollset_set->fd_capacity = GPR_MAX(8, 2 * pollset_set->fd_capacity);
+    pollset_set->fds = gpr_realloc(
+        pollset_set->fds, pollset_set->fd_capacity * sizeof(*pollset_set->fds));
+  }
+  GRPC_FD_REF(fd, "pollset_set");
+  pollset_set->fds[pollset_set->fd_count++] = fd;
+  for (i = 0; i < pollset_set->pollset_count; i++) {
+    pollset_add_fd(exec_ctx, pollset_set->pollsets[i], fd);
+  }
+  for (i = 0; i < pollset_set->pollset_set_count; i++) {
+    pollset_set_add_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
+  }
+  gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
+                               grpc_pollset_set *pollset_set, grpc_fd *fd) {
+  size_t i;
+  gpr_mu_lock(&pollset_set->mu);
+  for (i = 0; i < pollset_set->fd_count; i++) {
+    if (pollset_set->fds[i] == fd) {
+      pollset_set->fd_count--;
+      GPR_SWAP(grpc_fd *, pollset_set->fds[i],
+               pollset_set->fds[pollset_set->fd_count]);
+      GRPC_FD_UNREF(fd, "pollset_set");
+      break;
+    }
+  }
+  for (i = 0; i < pollset_set->pollset_set_count; i++) {
+    pollset_set_del_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
+  }
+  gpr_mu_unlock(&pollset_set->mu);
+}
+
+/*******************************************************************************
+ * event engine binding
+ */
+
+static void shutdown_engine(void) { pollset_global_shutdown(); }
+
+static const grpc_event_engine_vtable vtable = {
+    .pollset_size = sizeof(grpc_pollset),
+
+    .fd_create = fd_create,
+    .fd_wrapped_fd = fd_wrapped_fd,
+    .fd_orphan = fd_orphan,
+    .fd_shutdown = fd_shutdown,
+    .fd_notify_on_read = fd_notify_on_read,
+    .fd_notify_on_write = fd_notify_on_write,
+
+    .pollset_init = pollset_init,
+    .pollset_shutdown = pollset_shutdown,
+    .pollset_reset = pollset_reset,
+    .pollset_destroy = pollset_destroy,
+    .pollset_work = pollset_work,
+    .pollset_kick = pollset_kick,
+    .pollset_add_fd = pollset_add_fd,
+
+    .pollset_set_create = pollset_set_create,
+    .pollset_set_destroy = pollset_set_destroy,
+    .pollset_set_add_pollset = pollset_set_add_pollset,
+    .pollset_set_del_pollset = pollset_set_del_pollset,
+    .pollset_set_add_pollset_set = pollset_set_add_pollset_set,
+    .pollset_set_del_pollset_set = pollset_set_del_pollset_set,
+    .pollset_set_add_fd = pollset_set_add_fd,
+    .pollset_set_del_fd = pollset_set_del_fd,
+
+    .kick_poller = kick_poller,
+
+    .shutdown_engine = shutdown_engine,
+};
+
+const grpc_event_engine_vtable *grpc_init_poll_posix(void) {
+  pollset_global_init();
+  return &vtable;
+}
+
+#endif
diff --git a/examples/node/greeter_client.js b/src/core/lib/iomgr/ev_poll_posix.h
similarity index 72%
copy from examples/node/greeter_client.js
copy to src/core/lib/iomgr/ev_poll_posix.h
index 2820acb..291736a 100644
--- a/examples/node/greeter_client.js
+++ b/src/core/lib/iomgr/ev_poll_posix.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,23 +31,11 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+#ifndef GRPC_CORE_LIB_IOMGR_EV_POLL_POSIX_H
+#define GRPC_CORE_LIB_IOMGR_EV_POLL_POSIX_H
 
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
+#include "src/core/lib/iomgr/ev_posix.h"
 
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
-}
+const grpc_event_engine_vtable *grpc_init_poll_posix(void);
 
-main();
+#endif /* GRPC_CORE_LIB_IOMGR_EV_POLL_POSIX_H */
diff --git a/src/core/lib/iomgr/ev_posix.c b/src/core/lib/iomgr/ev_posix.c
index 7df1751..a7dfc95 100644
--- a/src/core/lib/iomgr/ev_posix.c
+++ b/src/core/lib/iomgr/ev_posix.c
@@ -37,23 +37,104 @@
 
 #include "src/core/lib/iomgr/ev_posix.h"
 
+#include <string.h>
+
+#include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
+#include <grpc/support/string_util.h>
+#include <grpc/support/useful.h>
 
 #include "src/core/lib/iomgr/ev_poll_and_epoll_posix.h"
+#include "src/core/lib/iomgr/ev_poll_posix.h"
+#include "src/core/lib/support/env.h"
+
+/** Default poll() function - a pointer so that it can be overridden by some
+ *  tests */
+grpc_poll_function_type grpc_poll_function = poll;
 
 static const grpc_event_engine_vtable *g_event_engine;
 
-grpc_poll_function_type grpc_poll_function = poll;
+typedef const grpc_event_engine_vtable *(*event_engine_factory_fn)(void);
 
-void grpc_event_engine_init(void) {
-  if ((g_event_engine = grpc_init_poll_and_epoll_posix())) {
-    return;
-  }
-  gpr_log(GPR_ERROR, "No event engine could be initialized");
-  abort();
+typedef struct {
+  const char *name;
+  event_engine_factory_fn factory;
+} event_engine_factory;
+
+static const event_engine_factory g_factories[] = {
+    {"poll", grpc_init_poll_posix}, {"legacy", grpc_init_poll_and_epoll_posix},
+};
+
+static void add(const char *beg, const char *end, char ***ss, size_t *ns) {
+  size_t n = *ns;
+  size_t np = n + 1;
+  char *s;
+  size_t len;
+  GPR_ASSERT(end >= beg);
+  len = (size_t)(end - beg);
+  s = gpr_malloc(len + 1);
+  memcpy(s, beg, len);
+  s[len] = 0;
+  *ss = gpr_realloc(*ss, sizeof(char **) * np);
+  (*ss)[n] = s;
+  *ns = np;
 }
 
-void grpc_event_engine_shutdown(void) { g_event_engine->shutdown_engine(); }
+static void split(const char *s, char ***ss, size_t *ns) {
+  const char *c = strchr(s, ',');
+  if (c == NULL) {
+    add(s, s + strlen(s), ss, ns);
+  } else {
+    add(s, c, ss, ns);
+    split(c + 1, ss, ns);
+  }
+}
+
+static bool is(const char *want, const char *have) {
+  return 0 == strcmp(want, "all") || 0 == strcmp(want, have);
+}
+
+static void try_engine(const char *engine) {
+  for (size_t i = 0; i < GPR_ARRAY_SIZE(g_factories); i++) {
+    if (is(engine, g_factories[i].name)) {
+      if ((g_event_engine = g_factories[i].factory())) {
+        gpr_log(GPR_DEBUG, "Using polling engine: %s", g_factories[i].name);
+        return;
+      }
+    }
+  }
+}
+
+void grpc_event_engine_init(void) {
+  char *s = gpr_getenv("GRPC_POLL_STRATEGY");
+  if (s == NULL) {
+    s = gpr_strdup("all");
+  }
+
+  char **strings = NULL;
+  size_t nstrings = 0;
+  split(s, &strings, &nstrings);
+
+  for (size_t i = 0; g_event_engine == NULL && i < nstrings; i++) {
+    try_engine(strings[i]);
+  }
+
+  for (size_t i = 0; i < nstrings; i++) {
+    gpr_free(strings[i]);
+  }
+  gpr_free(strings);
+  gpr_free(s);
+
+  if (g_event_engine == NULL) {
+    gpr_log(GPR_ERROR, "No event engine could be initialized");
+    abort();
+  }
+}
+
+void grpc_event_engine_shutdown(void) {
+  g_event_engine->shutdown_engine();
+  g_event_engine = NULL;
+}
 
 grpc_fd *grpc_fd_create(int fd, const char *name) {
   return g_event_engine->fd_create(fd, name);
diff --git a/src/core/lib/iomgr/iomgr_posix.c b/src/core/lib/iomgr/iomgr_posix.c
index 016c501..cede97f 100644
--- a/src/core/lib/iomgr/iomgr_posix.c
+++ b/src/core/lib/iomgr/iomgr_posix.c
@@ -41,12 +41,16 @@
 #include "src/core/lib/iomgr/tcp_posix.h"
 
 void grpc_iomgr_platform_init(void) {
+  grpc_wakeup_fd_global_init();
   grpc_event_engine_init();
   grpc_register_tracer("tcp", &grpc_tcp_trace);
 }
 
 void grpc_iomgr_platform_flush(void) {}
 
-void grpc_iomgr_platform_shutdown(void) { grpc_event_engine_shutdown(); }
+void grpc_iomgr_platform_shutdown(void) {
+  grpc_event_engine_shutdown();
+  grpc_wakeup_fd_global_destroy();
+}
 
 #endif /* GRPC_POSIX_SOCKET */
diff --git a/src/core/lib/iomgr/tcp_posix.c b/src/core/lib/iomgr/tcp_posix.c
index 7210aef..e286922 100644
--- a/src/core/lib/iomgr/tcp_posix.c
+++ b/src/core/lib/iomgr/tcp_posix.c
@@ -164,7 +164,7 @@
     for (i = 0; i < tcp->incoming_buffer->count; i++) {
       char *dump = gpr_dump_slice(tcp->incoming_buffer->slices[i],
                                   GPR_DUMP_HEX | GPR_DUMP_ASCII);
-      gpr_log(GPR_DEBUG, "READ %p: %s", tcp, dump);
+      gpr_log(GPR_DEBUG, "READ %p (peer=%s): %s", tcp, tcp->peer_string, dump);
       gpr_free(dump);
     }
   }
@@ -398,7 +398,7 @@
     for (i = 0; i < buf->count; i++) {
       char *data =
           gpr_dump_slice(buf->slices[i], GPR_DUMP_HEX | GPR_DUMP_ASCII);
-      gpr_log(GPR_DEBUG, "WRITE %p: %s", tcp, data);
+      gpr_log(GPR_DEBUG, "WRITE %p (peer=%s): %s", tcp, tcp->peer_string, data);
       gpr_free(data);
     }
   }
diff --git a/src/core/lib/iomgr/udp_server.c b/src/core/lib/iomgr/udp_server.c
index df6cf95..98ffccd 100644
--- a/src/core/lib/iomgr/udp_server.c
+++ b/src/core/lib/iomgr/udp_server.c
@@ -81,6 +81,7 @@
   grpc_closure read_closure;
   grpc_closure destroyed_closure;
   grpc_udp_server_read_cb read_cb;
+  grpc_udp_server_orphan_cb orphan_cb;
 } server_port;
 
 /* the overall server */
@@ -168,6 +169,10 @@
       server_port *sp = &s->ports[i];
       sp->destroyed_closure.cb = destroyed_port;
       sp->destroyed_closure.cb_arg = s;
+
+      GPR_ASSERT(sp->orphan_cb);
+      sp->orphan_cb(sp->emfd);
+
       grpc_fd_orphan(exec_ctx, sp->emfd, &sp->destroyed_closure, NULL,
                      "udp_listener_shutdown");
     }
@@ -268,7 +273,8 @@
 
 static int add_socket_to_server(grpc_udp_server *s, int fd,
                                 const struct sockaddr *addr, size_t addr_len,
-                                grpc_udp_server_read_cb read_cb) {
+                                grpc_udp_server_read_cb read_cb,
+                                grpc_udp_server_orphan_cb orphan_cb) {
   server_port *sp;
   int port;
   char *addr_str;
@@ -292,6 +298,7 @@
     memcpy(sp->addr.untyped, addr, addr_len);
     sp->addr_len = addr_len;
     sp->read_cb = read_cb;
+    sp->orphan_cb = orphan_cb;
     GPR_ASSERT(sp->emfd);
     gpr_mu_unlock(&s->mu);
     gpr_free(name);
@@ -301,7 +308,8 @@
 }
 
 int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr,
-                             size_t addr_len, grpc_udp_server_read_cb read_cb) {
+                             size_t addr_len, grpc_udp_server_read_cb read_cb,
+                             grpc_udp_server_orphan_cb orphan_cb) {
   int allocated_port1 = -1;
   int allocated_port2 = -1;
   unsigned i;
@@ -348,7 +356,8 @@
     addr = (struct sockaddr *)&wild6;
     addr_len = sizeof(wild6);
     fd = grpc_create_dualstack_socket(addr, SOCK_DGRAM, IPPROTO_UDP, &dsmode);
-    allocated_port1 = add_socket_to_server(s, fd, addr, addr_len, read_cb);
+    allocated_port1 =
+        add_socket_to_server(s, fd, addr, addr_len, read_cb, orphan_cb);
     if (fd >= 0 && dsmode == GRPC_DSMODE_DUALSTACK) {
       goto done;
     }
@@ -370,7 +379,8 @@
     addr = (struct sockaddr *)&addr4_copy;
     addr_len = sizeof(addr4_copy);
   }
-  allocated_port2 = add_socket_to_server(s, fd, addr, addr_len, read_cb);
+  allocated_port2 =
+      add_socket_to_server(s, fd, addr, addr_len, read_cb, orphan_cb);
 
 done:
   gpr_free(allocated_addr);
diff --git a/src/core/lib/iomgr/udp_server.h b/src/core/lib/iomgr/udp_server.h
index d8cf957..33c5ce1 100644
--- a/src/core/lib/iomgr/udp_server.h
+++ b/src/core/lib/iomgr/udp_server.h
@@ -48,6 +48,9 @@
 typedef void (*grpc_udp_server_read_cb)(grpc_exec_ctx *exec_ctx, grpc_fd *emfd,
                                         struct grpc_server *server);
 
+/* Called when the grpc_fd is about to be orphaned (and the FD closed). */
+typedef void (*grpc_udp_server_orphan_cb)(grpc_fd *emfd);
+
 /* Create a server, initially not bound to any ports */
 grpc_udp_server *grpc_udp_server_create(void);
 
@@ -69,7 +72,8 @@
 /* TODO(ctiller): deprecate this, and make grpc_udp_server_add_ports to handle
                   all of the multiple socket port matching logic in one place */
 int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr,
-                             size_t addr_len, grpc_udp_server_read_cb read_cb);
+                             size_t addr_len, grpc_udp_server_read_cb read_cb,
+                             grpc_udp_server_orphan_cb orphan_cb);
 
 void grpc_udp_server_destroy(grpc_exec_ctx *exec_ctx, grpc_udp_server *server,
                              grpc_closure *on_done);
diff --git a/src/core/lib/surface/version.c b/src/core/lib/surface/version.c
index fe954cb..aca76d2 100644
--- a/src/core/lib/surface/version.c
+++ b/src/core/lib/surface/version.c
@@ -36,4 +36,4 @@
 
 #include <grpc/grpc.h>
 
-const char *grpc_version_string(void) { return "0.14.0-dev"; }
+const char *grpc_version_string(void) { return "0.15.0-dev"; }
diff --git a/src/core/lib/transport/metadata.h b/src/core/lib/transport/metadata.h
index 713d9e6..6d82f4d 100644
--- a/src/core/lib/transport/metadata.h
+++ b/src/core/lib/transport/metadata.h
@@ -147,6 +147,10 @@
 
 #define GRPC_MDSTR_LENGTH(s) (GPR_SLICE_LENGTH(s->slice))
 
+/* We add 32 bytes of padding as per RFC-7540 section 6.5.2. */
+#define GRPC_MDELEM_LENGTH(e) \
+  (GRPC_MDSTR_LENGTH((e)->key) + GRPC_MDSTR_LENGTH((e)->value) + 32)
+
 int grpc_mdstr_is_legal_header(grpc_mdstr *s);
 int grpc_mdstr_is_legal_nonbin_header(grpc_mdstr *s);
 int grpc_mdstr_is_bin_suffixed(grpc_mdstr *s);
diff --git a/src/core/lib/transport/metadata_batch.c b/src/core/lib/transport/metadata_batch.c
index 4567221..e4398ab 100644
--- a/src/core/lib/transport/metadata_batch.c
+++ b/src/core/lib/transport/metadata_batch.c
@@ -192,3 +192,12 @@
          gpr_time_cmp(gpr_inf_future(batch->deadline.clock_type),
                       batch->deadline) == 0;
 }
+
+size_t grpc_metadata_batch_size(grpc_metadata_batch *batch) {
+  size_t size = 0;
+  for (grpc_linked_mdelem *elem = batch->list.head; elem != NULL;
+       elem = elem->next) {
+    size += GRPC_MDELEM_LENGTH(elem->md);
+  }
+  return size;
+}
diff --git a/src/core/lib/transport/metadata_batch.h b/src/core/lib/transport/metadata_batch.h
index b626688..7af823f 100644
--- a/src/core/lib/transport/metadata_batch.h
+++ b/src/core/lib/transport/metadata_batch.h
@@ -66,6 +66,9 @@
 void grpc_metadata_batch_clear(grpc_metadata_batch *batch);
 int grpc_metadata_batch_is_empty(grpc_metadata_batch *batch);
 
+/* Returns the transport size of the batch. */
+size_t grpc_metadata_batch_size(grpc_metadata_batch *batch);
+
 /** Moves the metadata information from \a src to \a dst. Upon return, \a src is
  * zeroed. */
 void grpc_metadata_batch_move(grpc_metadata_batch *dst,
diff --git a/src/cpp/common/channel_arguments.cc b/src/cpp/common/channel_arguments.cc
index db3558f..f297ae8 100644
--- a/src/cpp/common/channel_arguments.cc
+++ b/src/cpp/common/channel_arguments.cc
@@ -85,7 +85,7 @@
 
 void ChannelArguments::SetCompressionAlgorithm(
     grpc_compression_algorithm algorithm) {
-  SetInt(GRPC_COMPRESSION_ALGORITHM_ARG, algorithm);
+  SetInt(GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM, algorithm);
 }
 
 // Note: a second call to this will add in front the result of the first call.
diff --git a/src/cpp/common/core_codegen.cc b/src/cpp/common/core_codegen.cc
index 33a8f75..8e8d42e 100644
--- a/src/cpp/common/core_codegen.cc
+++ b/src/cpp/common/core_codegen.cc
@@ -48,124 +48,6 @@
 
 #include "src/core/lib/profiling/timers.h"
 
-namespace {
-
-const int kGrpcBufferWriterMaxBufferLength = 8192;
-
-class GrpcBufferWriter GRPC_FINAL
-    : public ::grpc::protobuf::io::ZeroCopyOutputStream {
- public:
-  explicit GrpcBufferWriter(grpc_byte_buffer** bp, int block_size)
-      : block_size_(block_size), byte_count_(0), have_backup_(false) {
-    *bp = grpc_raw_byte_buffer_create(NULL, 0);
-    slice_buffer_ = &(*bp)->data.raw.slice_buffer;
-  }
-
-  ~GrpcBufferWriter() GRPC_OVERRIDE {
-    if (have_backup_) {
-      gpr_slice_unref(backup_slice_);
-    }
-  }
-
-  bool Next(void** data, int* size) GRPC_OVERRIDE {
-    if (have_backup_) {
-      slice_ = backup_slice_;
-      have_backup_ = false;
-    } else {
-      slice_ = gpr_slice_malloc(block_size_);
-    }
-    *data = GPR_SLICE_START_PTR(slice_);
-    // On win x64, int is only 32bit
-    GPR_ASSERT(GPR_SLICE_LENGTH(slice_) <= INT_MAX);
-    byte_count_ += * size = (int)GPR_SLICE_LENGTH(slice_);
-    gpr_slice_buffer_add(slice_buffer_, slice_);
-    return true;
-  }
-
-  void BackUp(int count) GRPC_OVERRIDE {
-    gpr_slice_buffer_pop(slice_buffer_);
-    if (count == block_size_) {
-      backup_slice_ = slice_;
-    } else {
-      backup_slice_ =
-          gpr_slice_split_tail(&slice_, GPR_SLICE_LENGTH(slice_) - count);
-      gpr_slice_buffer_add(slice_buffer_, slice_);
-    }
-    have_backup_ = true;
-    byte_count_ -= count;
-  }
-
-  grpc::protobuf::int64 ByteCount() const GRPC_OVERRIDE { return byte_count_; }
-
- private:
-  const int block_size_;
-  int64_t byte_count_;
-  gpr_slice_buffer* slice_buffer_;
-  bool have_backup_;
-  gpr_slice backup_slice_;
-  gpr_slice slice_;
-};
-
-class GrpcBufferReader GRPC_FINAL
-    : public ::grpc::protobuf::io::ZeroCopyInputStream {
- public:
-  explicit GrpcBufferReader(grpc_byte_buffer* buffer)
-      : byte_count_(0), backup_count_(0) {
-    grpc_byte_buffer_reader_init(&reader_, buffer);
-  }
-  ~GrpcBufferReader() GRPC_OVERRIDE {
-    grpc_byte_buffer_reader_destroy(&reader_);
-  }
-
-  bool Next(const void** data, int* size) GRPC_OVERRIDE {
-    if (backup_count_ > 0) {
-      *data = GPR_SLICE_START_PTR(slice_) + GPR_SLICE_LENGTH(slice_) -
-              backup_count_;
-      GPR_ASSERT(backup_count_ <= INT_MAX);
-      *size = (int)backup_count_;
-      backup_count_ = 0;
-      return true;
-    }
-    if (!grpc_byte_buffer_reader_next(&reader_, &slice_)) {
-      return false;
-    }
-    gpr_slice_unref(slice_);
-    *data = GPR_SLICE_START_PTR(slice_);
-    // On win x64, int is only 32bit
-    GPR_ASSERT(GPR_SLICE_LENGTH(slice_) <= INT_MAX);
-    byte_count_ += * size = (int)GPR_SLICE_LENGTH(slice_);
-    return true;
-  }
-
-  void BackUp(int count) GRPC_OVERRIDE { backup_count_ = count; }
-
-  bool Skip(int count) GRPC_OVERRIDE {
-    const void* data;
-    int size;
-    while (Next(&data, &size)) {
-      if (size >= count) {
-        BackUp(size - count);
-        return true;
-      }
-      // size < count;
-      count -= size;
-    }
-    // error or we have too large count;
-    return false;
-  }
-
-  grpc::protobuf::int64 ByteCount() const GRPC_OVERRIDE {
-    return byte_count_ - backup_count_;
-  }
-
- private:
-  int64_t byte_count_;
-  int64_t backup_count_;
-  grpc_byte_buffer_reader reader_;
-  gpr_slice slice_;
-};
-}  // namespace
-
 namespace grpc {
 
 grpc_completion_queue* CoreCodegen::grpc_completion_queue_create(
@@ -192,6 +74,44 @@
   ::grpc_byte_buffer_destroy(bb);
 }
 
+void CoreCodegen::grpc_byte_buffer_reader_init(grpc_byte_buffer_reader* reader,
+                                               grpc_byte_buffer* buffer) {
+  ::grpc_byte_buffer_reader_init(reader, buffer);
+}
+
+void CoreCodegen::grpc_byte_buffer_reader_destroy(
+    grpc_byte_buffer_reader* reader) {
+  ::grpc_byte_buffer_reader_destroy(reader);
+}
+
+int CoreCodegen::grpc_byte_buffer_reader_next(grpc_byte_buffer_reader* reader,
+                                              gpr_slice* slice) {
+  return ::grpc_byte_buffer_reader_next(reader, slice);
+}
+
+grpc_byte_buffer* CoreCodegen::grpc_raw_byte_buffer_create(gpr_slice* slice,
+                                                           size_t nslices) {
+  return ::grpc_raw_byte_buffer_create(slice, nslices);
+}
+
+gpr_slice CoreCodegen::gpr_slice_malloc(size_t length) {
+  return ::gpr_slice_malloc(length);
+}
+
+void CoreCodegen::gpr_slice_unref(gpr_slice slice) { ::gpr_slice_unref(slice); }
+
+gpr_slice CoreCodegen::gpr_slice_split_tail(gpr_slice* s, size_t split) {
+  return ::gpr_slice_split_tail(s, split);
+}
+
+void CoreCodegen::gpr_slice_buffer_add(gpr_slice_buffer* sb, gpr_slice slice) {
+  ::gpr_slice_buffer_add(sb, slice);
+}
+
+void CoreCodegen::gpr_slice_buffer_pop(gpr_slice_buffer* sb) {
+  ::gpr_slice_buffer_pop(sb);
+}
+
 void CoreCodegen::grpc_metadata_array_init(grpc_metadata_array* array) {
   ::grpc_metadata_array_init(array);
 }
@@ -200,6 +120,10 @@
   ::grpc_metadata_array_destroy(array);
 }
 
+const Status& CoreCodegen::ok() { return grpc::Status::OK; }
+
+const Status& CoreCodegen::cancelled() { return grpc::Status::CANCELLED; }
+
 gpr_timespec CoreCodegen::gpr_inf_future(gpr_clock_type type) {
   return ::gpr_inf_future(type);
 }
@@ -209,48 +133,4 @@
   abort();
 }
 
-Status CoreCodegen::SerializeProto(const grpc::protobuf::Message& msg,
-                                   grpc_byte_buffer** bp) {
-  GPR_TIMER_SCOPE("SerializeProto", 0);
-  int byte_size = msg.ByteSize();
-  if (byte_size <= kGrpcBufferWriterMaxBufferLength) {
-    gpr_slice slice = gpr_slice_malloc(byte_size);
-    GPR_ASSERT(GPR_SLICE_END_PTR(slice) ==
-               msg.SerializeWithCachedSizesToArray(GPR_SLICE_START_PTR(slice)));
-    *bp = grpc_raw_byte_buffer_create(&slice, 1);
-    gpr_slice_unref(slice);
-    return Status::OK;
-  } else {
-    GrpcBufferWriter writer(bp, kGrpcBufferWriterMaxBufferLength);
-    return msg.SerializeToZeroCopyStream(&writer)
-               ? Status::OK
-               : Status(StatusCode::INTERNAL, "Failed to serialize message");
-  }
-}
-
-Status CoreCodegen::DeserializeProto(grpc_byte_buffer* buffer,
-                                     grpc::protobuf::Message* msg,
-                                     int max_message_size) {
-  GPR_TIMER_SCOPE("DeserializeProto", 0);
-  if (buffer == nullptr) {
-    return Status(StatusCode::INTERNAL, "No payload");
-  }
-  Status result = Status::OK;
-  {
-    GrpcBufferReader reader(buffer);
-    ::grpc::protobuf::io::CodedInputStream decoder(&reader);
-    if (max_message_size > 0) {
-      decoder.SetTotalBytesLimit(max_message_size, max_message_size);
-    }
-    if (!msg->ParseFromCodedStream(&decoder)) {
-      result = Status(StatusCode::INTERNAL, msg->InitializationErrorString());
-    }
-    if (!decoder.ConsumedEntireMessage()) {
-      result = Status(StatusCode::INTERNAL, "Did not read entire message");
-    }
-  }
-  grpc_byte_buffer_destroy(buffer);
-  return result;
-}
-
 }  // namespace grpc
diff --git a/src/cpp/common/core_codegen.h b/src/cpp/common/core_codegen.h
index e15cb4c..656b11e 100644
--- a/src/cpp/common/core_codegen.h
+++ b/src/cpp/common/core_codegen.h
@@ -42,13 +42,6 @@
 /// Implementation of the core codegen interface.
 class CoreCodegen : public CoreCodegenInterface {
  private:
-  Status SerializeProto(const grpc::protobuf::Message& msg,
-                        grpc_byte_buffer** bp) override;
-
-  Status DeserializeProto(grpc_byte_buffer* buffer,
-                          grpc::protobuf::Message* msg,
-                          int max_message_size) override;
-
   grpc_completion_queue* grpc_completion_queue_create(void* reserved) override;
   void grpc_completion_queue_destroy(grpc_completion_queue* cq) override;
   grpc_event grpc_completion_queue_pluck(grpc_completion_queue* cq, void* tag,
@@ -60,11 +53,30 @@
 
   void grpc_byte_buffer_destroy(grpc_byte_buffer* bb) override;
 
+  void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader* reader,
+                                    grpc_byte_buffer* buffer) override;
+  void grpc_byte_buffer_reader_destroy(
+      grpc_byte_buffer_reader* reader) override;
+  int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader* reader,
+                                   gpr_slice* slice) override;
+
+  grpc_byte_buffer* grpc_raw_byte_buffer_create(gpr_slice* slice,
+                                                size_t nslices) override;
+
+  gpr_slice gpr_slice_malloc(size_t length) override;
+  void gpr_slice_unref(gpr_slice slice) override;
+  gpr_slice gpr_slice_split_tail(gpr_slice* s, size_t split) override;
+  void gpr_slice_buffer_add(gpr_slice_buffer* sb, gpr_slice slice) override;
+  void gpr_slice_buffer_pop(gpr_slice_buffer* sb) override;
+
   void grpc_metadata_array_init(grpc_metadata_array* array) override;
   void grpc_metadata_array_destroy(grpc_metadata_array* array) override;
 
   gpr_timespec gpr_inf_future(gpr_clock_type type) override;
 
+  virtual const Status& ok() override;
+  virtual const Status& cancelled() override;
+
   void assert_fail(const char* failed_assertion) override;
 };
 
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index fafe31e..f955a31 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -33,6 +33,7 @@
 
 #include <grpc++/server.h>
 
+#include <sstream>
 #include <utility>
 
 #include <grpc++/completion_queue.h>
@@ -41,6 +42,7 @@
 #include <grpc++/impl/grpc_library.h>
 #include <grpc++/impl/method_handler_impl.h>
 #include <grpc++/impl/rpc_service_method.h>
+#include <grpc++/impl/server_initializer.h>
 #include <grpc++/impl/service_type.h>
 #include <grpc++/security/server_credentials.h>
 #include <grpc++/server_context.h>
@@ -284,7 +286,8 @@
       has_generic_service_(false),
       server_(nullptr),
       thread_pool_(thread_pool),
-      thread_pool_owned_(thread_pool_owned) {
+      thread_pool_owned_(thread_pool_owned),
+      server_initializer_(new ServerInitializer(this)) {
   g_gli_initializer.summon();
   gpr_once_init(&g_once_init_callbacks, InitGlobalCallbacks);
   global_callbacks_ = g_callbacks;
@@ -341,6 +344,7 @@
                "Can only register an asynchronous service against one server.");
     service->server_ = this;
   }
+  const char* method_name = nullptr;
   for (auto it = service->methods_.begin(); it != service->methods_.end();
        ++it) {
     if (it->get() == nullptr) {  // Handled by generic service if any.
@@ -360,6 +364,17 @@
     } else {
       sync_methods_->emplace_back(method, tag);
     }
+    method_name = method->name();
+  }
+
+  // Parse service name.
+  if (method_name != nullptr) {
+    std::stringstream ss(method_name);
+    grpc::string service_name;
+    if (std::getline(ss, service_name, '/') &&
+        std::getline(ss, service_name, '/')) {
+      services_.push_back(service_name);
+    }
   }
   return true;
 }
@@ -598,4 +613,6 @@
   }
 }
 
+ServerInitializer* Server::initializer() { return server_initializer_.get(); }
+
 }  // namespace grpc
diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc
index 68cc382..61f0f6a 100644
--- a/src/cpp/server/server_builder.cc
+++ b/src/cpp/server/server_builder.cc
@@ -41,9 +41,23 @@
 
 namespace grpc {
 
+static std::vector<std::unique_ptr<ServerBuilderPlugin> (*)()>*
+    g_plugin_factory_list;
+static gpr_once once_init_plugin_list = GPR_ONCE_INIT;
+
+static void do_plugin_list_init(void) {
+  g_plugin_factory_list =
+      new std::vector<std::unique_ptr<ServerBuilderPlugin> (*)()>();
+}
+
 ServerBuilder::ServerBuilder()
     : max_message_size_(-1), generic_service_(nullptr) {
   grpc_compression_options_init(&compression_options_);
+  gpr_once_init(&once_init_plugin_list, do_plugin_list_init);
+  for (auto factory : (*g_plugin_factory_list)) {
+    std::unique_ptr<ServerBuilderPlugin> plugin = factory();
+    plugins_[plugin->name()] = std::move(plugin);
+  }
 }
 
 std::unique_ptr<ServerCompletionQueue> ServerBuilder::AddCompletionQueue() {
@@ -96,14 +110,24 @@
   ChannelArguments args;
   for (auto option = options_.begin(); option != options_.end(); ++option) {
     (*option)->UpdateArguments(&args);
+    (*option)->UpdatePlugins(&plugins_);
+  }
+  if (thread_pool == nullptr) {
+    for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) {
+      if ((*plugin).second->has_sync_methods()) {
+        thread_pool.reset(CreateDefaultThreadPool());
+        break;
+      }
+    }
   }
   if (max_message_size_ > 0) {
     args.SetInt(GRPC_ARG_MAX_MESSAGE_LENGTH, max_message_size_);
   }
-  args.SetInt(GRPC_COMPRESSION_ALGORITHM_STATE_ARG,
+  args.SetInt(GRPC_COMPRESSION_CHANNEL_ENABLED_ALGORITHMS_BITSET,
               compression_options_.enabled_algorithms_bitset);
   std::unique_ptr<Server> server(
       new Server(thread_pool.release(), true, max_message_size_, &args));
+  ServerInitializer* initializer = server->initializer();
   for (auto cq = cqs_.begin(); cq != cqs_.end(); ++cq) {
     grpc_server_register_completion_queue(server->server_, (*cq)->cq(),
                                           nullptr);
@@ -114,6 +138,9 @@
       return nullptr;
     }
   }
+  for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) {
+    (*plugin).second->InitServer(initializer);
+  }
   if (generic_service_) {
     server->RegisterAsyncGenericService(generic_service_);
   } else {
@@ -137,7 +164,16 @@
   if (!server->Start(cqs_data, cqs_.size())) {
     return nullptr;
   }
+  for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) {
+    (*plugin).second->Finish(initializer);
+  }
   return server;
 }
 
+void ServerBuilder::InternalAddPluginFactory(
+    std::unique_ptr<ServerBuilderPlugin> (*CreatePlugin)()) {
+  gpr_once_init(&once_init_plugin_list, do_plugin_list_init);
+  (*g_plugin_factory_list).push_back(CreatePlugin);
+}
+
 }  // namespace grpc
diff --git a/src/csharp/Grpc.Core.Tests/ChannelTest.cs b/src/csharp/Grpc.Core.Tests/ChannelTest.cs
index 6330f50..850d70c 100644
--- a/src/csharp/Grpc.Core.Tests/ChannelTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ChannelTest.cs
@@ -32,6 +32,7 @@
 #endregion
 
 using System;
+using System.Threading.Tasks;
 using Grpc.Core;
 using Grpc.Core.Internal;
 using Grpc.Core.Utils;
@@ -89,5 +90,43 @@
             channel.ShutdownAsync().Wait();
             Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await channel.ShutdownAsync());
         }
+
+        [Test]
+        public async Task ShutdownTokenCancelledAfterShutdown()
+        {
+            var channel = new Channel("localhost", ChannelCredentials.Insecure);
+            Assert.IsFalse(channel.ShutdownToken.IsCancellationRequested);
+            var shutdownTask = channel.ShutdownAsync();
+            Assert.IsTrue(channel.ShutdownToken.IsCancellationRequested);
+            await shutdownTask;
+        }
+
+        [Test]
+        public async Task StateIsFatalFailureAfterShutdown()
+        {
+            var channel = new Channel("localhost", ChannelCredentials.Insecure);
+            await channel.ShutdownAsync();
+            Assert.AreEqual(ChannelState.FatalFailure, channel.State);
+        }
+
+        [Test]
+        public async Task ShutdownFinishesWaitForStateChangedAsync()
+        {
+            var channel = new Channel("localhost", ChannelCredentials.Insecure);
+            var stateChangedTask = channel.WaitForStateChangedAsync(ChannelState.Idle);
+            var shutdownTask = channel.ShutdownAsync();
+            await stateChangedTask;
+            await shutdownTask;
+        }
+
+        [Test]
+        public async Task OperationsThrowAfterShutdown()
+        {
+            var channel = new Channel("localhost", ChannelCredentials.Insecure);
+            await channel.ShutdownAsync();
+            Assert.ThrowsAsync(typeof(ObjectDisposedException), async () => await channel.WaitForStateChangedAsync(ChannelState.Idle));
+            Assert.Throws(typeof(ObjectDisposedException), () => { var x = channel.ResolvedTarget; });
+            Assert.ThrowsAsync(typeof(TaskCanceledException), async () => await channel.ConnectAsync());
+        }
     }
 }
diff --git a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
index 6c13a4f..d92addb 100644
--- a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
@@ -167,6 +167,37 @@
         }
 
         [Test]
+        public async Task ServerStreamingCall_EndOfStreamIsIdempotent()
+        {
+            helper.ServerStreamingHandler = new ServerStreamingServerMethod<string, string>(async (request, responseStream, context) =>
+            {
+            });
+
+            var call = Calls.AsyncServerStreamingCall(helper.CreateServerStreamingCall(), "");
+
+            Assert.IsFalse(await call.ResponseStream.MoveNext());
+            Assert.IsFalse(await call.ResponseStream.MoveNext());
+        }
+
+        [Test]
+        public async Task ServerStreamingCall_ErrorCanBeAwaitedTwice()
+        {
+            helper.ServerStreamingHandler = new ServerStreamingServerMethod<string, string>(async (request, responseStream, context) =>
+            {
+                context.Status = new Status(StatusCode.InvalidArgument, "");
+            });
+
+            var call = Calls.AsyncServerStreamingCall(helper.CreateServerStreamingCall(), "");
+
+            var ex = Assert.ThrowsAsync<RpcException>(async () => await call.ResponseStream.MoveNext());
+            Assert.AreEqual(StatusCode.InvalidArgument, ex.Status.StatusCode);
+
+            // attempting MoveNext again should result in throwing the same exception.
+            var ex2 = Assert.ThrowsAsync<RpcException>(async () => await call.ResponseStream.MoveNext());
+            Assert.AreEqual(StatusCode.InvalidArgument, ex2.Status.StatusCode);
+        }
+
+        [Test]
         public async Task DuplexStreamingCall()
         {
             helper.DuplexStreamingHandler = new DuplexStreamingServerMethod<string, string>(async (requestStream, responseStream, context) =>
@@ -209,6 +240,38 @@
         }
 
         [Test]
+        public async Task ClientStreamingCall_ServerSideReadAfterCancelNotificationReturnsNull()
+        {
+            var handlerStartedBarrier = new TaskCompletionSource<object>();
+            var cancelNotificationReceivedBarrier = new TaskCompletionSource<object>();
+            var successTcs = new TaskCompletionSource<string>();
+
+            helper.ClientStreamingHandler = new ClientStreamingServerMethod<string, string>(async (requestStream, context) =>
+            {
+                handlerStartedBarrier.SetResult(null);
+
+                // wait for cancellation to be delivered.
+                context.CancellationToken.Register(() => cancelNotificationReceivedBarrier.SetResult(null));
+                await cancelNotificationReceivedBarrier.Task;
+
+                var moveNextResult = await requestStream.MoveNext();
+                successTcs.SetResult(!moveNextResult ? "SUCCESS" : "FAIL");
+                return "";
+            });
+
+            var cts = new CancellationTokenSource();
+            var call = Calls.AsyncClientStreamingCall(helper.CreateClientStreamingCall(new CallOptions(cancellationToken: cts.Token)));
+
+            await handlerStartedBarrier.Task;
+            cts.Cancel();
+
+            var ex = Assert.ThrowsAsync<RpcException>(async () => await call.ResponseAsync);
+            Assert.AreEqual(StatusCode.Cancelled, ex.Status.StatusCode);
+
+            Assert.AreEqual("SUCCESS", await successTcs.Task);
+        }
+
+        [Test]
         public async Task AsyncUnaryCall_EchoMetadata()
         {
             helper.UnaryHandler = new UnaryServerMethod<string, string>(async (request, context) =>
diff --git a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
index 0cd059c..47131fc 100644
--- a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
+++ b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
@@ -84,6 +84,8 @@
     <Compile Include="SanityTest.cs" />
     <Compile Include="HalfcloseTest.cs" />
     <Compile Include="NUnitMain.cs" />
+    <Compile Include="Internal\FakeNativeCall.cs" />
+    <Compile Include="Internal\AsyncCallServerTest.cs" />
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <ItemGroup>
diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallServerTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallServerTest.cs
new file mode 100644
index 0000000..0e20476
--- /dev/null
+++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallServerTest.cs
@@ -0,0 +1,191 @@
+#region Copyright notice and license
+
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Threading.Tasks;
+
+using Grpc.Core.Internal;
+using NUnit.Framework;
+
+namespace Grpc.Core.Internal.Tests
+{
+    /// <summary>
+    /// Uses fake native call to test interaction of <c>AsyncCallServer</c> wrapping code with C core in different situations.
+    /// </summary>
+    public class AsyncCallServerTest
+    {
+        Server server;
+        FakeNativeCall fakeCall;
+        AsyncCallServer<string, string> asyncCallServer;
+
+        [SetUp]
+        public void Init()
+        {
+            var environment = GrpcEnvironment.AddRef();
+
+            // Create a fake server just so we have an instance to refer to.
+            // The server won't actually be used at all.
+            server = new Server()
+            {
+                Ports = { { "localhost", 0, ServerCredentials.Insecure } }
+            };
+            server.Start();
+
+            fakeCall = new FakeNativeCall();
+            asyncCallServer = new AsyncCallServer<string, string>(
+                Marshallers.StringMarshaller.Serializer, Marshallers.StringMarshaller.Deserializer,
+                environment,
+                server);
+            asyncCallServer.InitializeForTesting(fakeCall);
+        }
+
+        [TearDown]
+        public void Cleanup()
+        {
+            server.ShutdownAsync().Wait();
+            GrpcEnvironment.Release();
+        }
+
+        [Test]
+        public void CancelNotificationAfterStartDisposes()
+        {
+            var finishedTask = asyncCallServer.ServerSideCallAsync();
+            fakeCall.ReceivedCloseOnServerHandler(true, cancelled: true);
+            AssertFinished(asyncCallServer, fakeCall, finishedTask);
+        }
+
+        [Test]
+        public void CancelNotificationAfterStartDisposesAfterPendingReadFinishes()
+        {
+            var finishedTask = asyncCallServer.ServerSideCallAsync();
+            var requestStream = new ServerRequestStream<string, string>(asyncCallServer);
+
+            var moveNextTask = requestStream.MoveNext();
+
+            fakeCall.ReceivedCloseOnServerHandler(true, cancelled: true);
+            fakeCall.ReceivedMessageHandler(true, null);
+            Assert.IsFalse(moveNextTask.Result);
+
+            AssertFinished(asyncCallServer, fakeCall, finishedTask);
+        }
+
+        [Test]
+        public void ReadAfterCancelNotificationCanSucceed()
+        {
+            var finishedTask = asyncCallServer.ServerSideCallAsync();
+            var requestStream = new ServerRequestStream<string, string>(asyncCallServer);
+
+            fakeCall.ReceivedCloseOnServerHandler(true, cancelled: true);
+
+            // Check that starting a read after cancel notification has been processed is legal.
+            var moveNextTask = requestStream.MoveNext();
+            Assert.IsFalse(moveNextTask.Result);
+
+            AssertFinished(asyncCallServer, fakeCall, finishedTask);
+        }
+
+        [Test]
+        public void ReadCompletionFailureClosesRequestStream()
+        {
+            var finishedTask = asyncCallServer.ServerSideCallAsync();
+            var requestStream = new ServerRequestStream<string, string>(asyncCallServer);
+
+            // if a read completion's success==false, the request stream will silently finish
+            // and we rely on C core cancelling the call.
+            var moveNextTask = requestStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(false, null);
+            Assert.IsFalse(moveNextTask.Result);
+
+            fakeCall.ReceivedCloseOnServerHandler(true, cancelled: true);
+            AssertFinished(asyncCallServer, fakeCall, finishedTask);
+        }
+
+        [Test]
+        public void WriteAfterCancelNotificationFails()
+        {
+            var finishedTask = asyncCallServer.ServerSideCallAsync();
+            var requestStream = new ServerRequestStream<string, string>(asyncCallServer);
+            var responseStream = new ServerResponseStream<string, string>(asyncCallServer);
+
+            fakeCall.ReceivedCloseOnServerHandler(true, cancelled: true);
+
+            // TODO(jtattermusch): should we throw a different exception type instead?
+            Assert.Throws(typeof(InvalidOperationException), () => responseStream.WriteAsync("request1"));
+            AssertFinished(asyncCallServer, fakeCall, finishedTask);
+        }
+
+        [Test]
+        public void WriteCompletionFailureThrows()
+        {
+            var finishedTask = asyncCallServer.ServerSideCallAsync();
+            var responseStream = new ServerResponseStream<string, string>(asyncCallServer);
+
+            var writeTask = responseStream.WriteAsync("request1");
+            fakeCall.SendCompletionHandler(false);
+            // TODO(jtattermusch): should we throw a different exception type instead?
+            Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await writeTask);
+
+            fakeCall.ReceivedCloseOnServerHandler(true, cancelled: true);
+            AssertFinished(asyncCallServer, fakeCall, finishedTask);
+        }
+
+        [Test]
+        public void WriteAndWriteStatusCanRunConcurrently()
+        {
+            var finishedTask = asyncCallServer.ServerSideCallAsync();
+            var responseStream = new ServerResponseStream<string, string>(asyncCallServer);
+
+            var writeTask = responseStream.WriteAsync("request1");
+            var writeStatusTask = asyncCallServer.SendStatusFromServerAsync(Status.DefaultSuccess, new Metadata(), null);
+
+            fakeCall.SendCompletionHandler(true);
+            fakeCall.SendStatusFromServerHandler(true);
+
+            Assert.DoesNotThrowAsync(async () => await writeTask);
+            Assert.DoesNotThrowAsync(async () => await writeStatusTask);
+
+            fakeCall.ReceivedCloseOnServerHandler(true, cancelled: true);
+
+            AssertFinished(asyncCallServer, fakeCall, finishedTask);
+        }
+
+        static void AssertFinished(AsyncCallServer<string, string> asyncCallServer, FakeNativeCall fakeCall, Task finishedTask)
+        {
+            Assert.IsTrue(fakeCall.IsDisposed);
+            Assert.IsTrue(finishedTask.IsCompleted);
+            Assert.DoesNotThrow(() => finishedTask.Wait());
+        }
+    }
+}
diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
index 60530d3..777a1c8 100644
--- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
+++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
@@ -32,6 +32,7 @@
 #endregion
 
 using System;
+using System.Collections.Generic;
 using System.Runtime.InteropServices;
 using System.Threading.Tasks;
 
@@ -40,6 +41,9 @@
 
 namespace Grpc.Core.Internal.Tests
 {
+    /// <summary>
+    /// Uses fake native call to test interaction of <c>AsyncCall</c> wrapping code with C core in different situations.
+    /// </summary>
     public class AsyncCallTest
     {
         Channel channel;
@@ -64,159 +68,460 @@
         }
 
         [Test]
-        public void AsyncUnary_CompletionSuccess()
+        public void AsyncUnary_CanBeStartedOnlyOnce()
         {
-            var resultTask = asyncCall.UnaryCallAsync("abc");
-            fakeCall.UnaryResponseClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()), new byte[] { 1, 2, 3 }, new Metadata());
-            Assert.IsTrue(resultTask.IsCompleted);
-            Assert.IsTrue(fakeCall.IsDisposed);
-            Assert.AreEqual(Status.DefaultSuccess, asyncCall.GetStatus());
+            asyncCall.UnaryCallAsync("request1");
+            Assert.Throws(typeof(InvalidOperationException),
+                () => asyncCall.UnaryCallAsync("abc"));
         }
 
         [Test]
-        public void AsyncUnary_CompletionFailure()
+        public void AsyncUnary_StreamingOperationsNotAllowed()
         {
-            var resultTask = asyncCall.UnaryCallAsync("abc");
-            fakeCall.UnaryResponseClientHandler(false, new ClientSideStatus(new Status(StatusCode.Internal, ""), null), new byte[] { 1, 2, 3 }, new Metadata());
+            asyncCall.UnaryCallAsync("request1");
+            Assert.ThrowsAsync(typeof(InvalidOperationException),
+                async () => await asyncCall.ReadMessageAsync());
+            Assert.Throws(typeof(InvalidOperationException),
+                () => asyncCall.StartSendMessage("abc", new WriteFlags(), (x,y) => {}));
+        }
 
+        [Test]
+        public void AsyncUnary_Success()
+        {
+            var resultTask = asyncCall.UnaryCallAsync("request1");
+            fakeCall.UnaryResponseClientHandler(true,
+                new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
+        }
+
+        [Test]
+        public void AsyncUnary_NonSuccessStatusCode()
+        {
+            var resultTask = asyncCall.UnaryCallAsync("request1");
+            fakeCall.UnaryResponseClientHandler(true,
+                CreateClientSideStatus(StatusCode.InvalidArgument),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.InvalidArgument);
+        }
+
+        [Test]
+        public void AsyncUnary_NullResponsePayload()
+        {
+            var resultTask = asyncCall.UnaryCallAsync("request1");
+            fakeCall.UnaryResponseClientHandler(true,
+                new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
+                null,
+                new Metadata());
+
+            // failure to deserialize will result in InvalidArgument status.
+            AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.Internal);
+        }
+
+        [Test]
+        public void ClientStreaming_StreamingReadNotAllowed()
+        {
+            asyncCall.ClientStreamingCallAsync();
+            Assert.ThrowsAsync(typeof(InvalidOperationException),
+                async () => await asyncCall.ReadMessageAsync());
+        }
+
+        [Test]
+        public void ClientStreaming_NoRequest_Success()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            fakeCall.UnaryResponseClientHandler(true,
+                new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
+        }
+
+        [Test]
+        public void ClientStreaming_NoRequest_NonSuccessStatusCode()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            fakeCall.UnaryResponseClientHandler(true,
+                CreateClientSideStatus(StatusCode.InvalidArgument),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.InvalidArgument);
+        }
+
+        [Test]
+        public void ClientStreaming_MoreRequests_Success()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+            var writeTask = requestStream.WriteAsync("request1");
+            fakeCall.SendCompletionHandler(true);
+            writeTask.Wait();
+
+            var writeTask2 = requestStream.WriteAsync("request2");
+            fakeCall.SendCompletionHandler(true);
+            writeTask2.Wait();
+
+            var completeTask = requestStream.CompleteAsync();
+            fakeCall.SendCompletionHandler(true);
+            completeTask.Wait();
+
+            fakeCall.UnaryResponseClientHandler(true,
+                new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
+        }
+
+        [Test]
+        public void ClientStreaming_WriteCompletionFailure()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+            var writeTask = requestStream.WriteAsync("request1");
+            fakeCall.SendCompletionHandler(false);
+            // TODO: maybe IOException or waiting for RPCException is more appropriate here.
+            Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await writeTask);
+
+            fakeCall.UnaryResponseClientHandler(true,
+                CreateClientSideStatus(StatusCode.Internal),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.Internal);
+        }
+
+        [Test]
+        public void ClientStreaming_WriteAfterReceivingStatusThrowsRpcException()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+            fakeCall.UnaryResponseClientHandler(true,
+                new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
+            var ex = Assert.Throws<RpcException>(() => requestStream.WriteAsync("request1"));
+            Assert.AreEqual(Status.DefaultSuccess, ex.Status);
+        }
+
+        [Test]
+        public void ClientStreaming_WriteAfterReceivingStatusThrowsRpcException2()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+            fakeCall.UnaryResponseClientHandler(true,
+                new ClientSideStatus(new Status(StatusCode.OutOfRange, ""), new Metadata()),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.OutOfRange);
+            var ex = Assert.Throws<RpcException>(() => requestStream.WriteAsync("request1"));
+            Assert.AreEqual(StatusCode.OutOfRange, ex.Status.StatusCode);
+        }
+
+        [Test]
+        public void ClientStreaming_WriteAfterCompleteThrowsInvalidOperationException()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+            requestStream.CompleteAsync();
+
+            Assert.Throws(typeof(InvalidOperationException), () => requestStream.WriteAsync("request1"));
+
+            fakeCall.SendCompletionHandler(true);
+
+            fakeCall.UnaryResponseClientHandler(true,
+                new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
+        }
+
+        [Test]
+        public void ClientStreaming_CompleteAfterReceivingStatusSucceeds()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+            fakeCall.UnaryResponseClientHandler(true,
+                new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
+            Assert.DoesNotThrowAsync(async () => await requestStream.CompleteAsync());
+        }
+
+        [Test]
+        public void ClientStreaming_WriteAfterCancellationRequestThrowsOperationCancelledException()
+        {
+            var resultTask = asyncCall.ClientStreamingCallAsync();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+
+            asyncCall.Cancel();
+            Assert.IsTrue(fakeCall.IsCancelled);
+
+            Assert.Throws(typeof(OperationCanceledException), () => requestStream.WriteAsync("request1"));
+
+            fakeCall.UnaryResponseClientHandler(true,
+                CreateClientSideStatus(StatusCode.Cancelled),
+                CreateResponsePayload(),
+                new Metadata());
+
+            AssertUnaryResponseError(asyncCall, fakeCall, resultTask, StatusCode.Cancelled);
+        }
+
+        [Test]
+        public void ServerStreaming_StreamingSendNotAllowed()
+        {
+            asyncCall.StartServerStreamingCall("request1");
+            Assert.Throws(typeof(InvalidOperationException),
+                () => asyncCall.StartSendMessage("abc", new WriteFlags(), (x,y) => {}));
+        }
+
+        [Test]
+        public void ServerStreaming_NoResponse_Success1()
+        {
+            asyncCall.StartServerStreamingCall("request1");
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+            var readTask = responseStream.MoveNext();
+
+            fakeCall.ReceivedResponseHeadersHandler(true, new Metadata());
+            Assert.AreEqual(0, asyncCall.ResponseHeadersAsync.Result.Count);
+
+            fakeCall.ReceivedMessageHandler(true, null);
+            fakeCall.ReceivedStatusOnClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()));
+
+            AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask);
+        }
+
+        [Test]
+        public void ServerStreaming_NoResponse_Success2()
+        {
+            asyncCall.StartServerStreamingCall("request1");
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+            var readTask = responseStream.MoveNext();
+
+            // try alternative order of completions
+            fakeCall.ReceivedStatusOnClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()));
+            fakeCall.ReceivedMessageHandler(true, null);
+
+            AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask);
+        }
+
+        [Test]
+        public void ServerStreaming_NoResponse_ReadFailure()
+        {
+            asyncCall.StartServerStreamingCall("request1");
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+            var readTask = responseStream.MoveNext();
+
+            fakeCall.ReceivedMessageHandler(false, null);  // after a failed read, we rely on C core to deliver appropriate status code.
+            fakeCall.ReceivedStatusOnClientHandler(true, CreateClientSideStatus(StatusCode.Internal));
+
+            AssertStreamingResponseError(asyncCall, fakeCall, readTask, StatusCode.Internal);
+        }
+
+        [Test]
+        public void ServerStreaming_MoreResponses_Success()
+        {
+            asyncCall.StartServerStreamingCall("request1");
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+
+            var readTask1 = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, CreateResponsePayload());
+            Assert.IsTrue(readTask1.Result);
+            Assert.AreEqual("response1", responseStream.Current);
+
+            var readTask2 = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, CreateResponsePayload());
+            Assert.IsTrue(readTask2.Result);
+            Assert.AreEqual("response1", responseStream.Current);
+
+            var readTask3 = responseStream.MoveNext();
+            fakeCall.ReceivedStatusOnClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()));
+            fakeCall.ReceivedMessageHandler(true, null);
+
+            AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask3);
+        }
+
+        [Test]
+        public void DuplexStreaming_NoRequestNoResponse_Success()
+        {
+            asyncCall.StartDuplexStreamingCall();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+
+            var writeTask1 = requestStream.CompleteAsync();
+            fakeCall.SendCompletionHandler(true);
+            Assert.DoesNotThrowAsync(async () => await writeTask1);
+
+            var readTask = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, null);
+            fakeCall.ReceivedStatusOnClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()));
+
+            AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask);
+        }
+
+        [Test]
+        public void DuplexStreaming_WriteAfterReceivingStatusThrowsRpcException()
+        {
+            asyncCall.StartDuplexStreamingCall();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+
+            var readTask = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, null);
+            fakeCall.ReceivedStatusOnClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()));
+
+            AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask);
+
+            var ex = Assert.ThrowsAsync<RpcException>(async () => await requestStream.WriteAsync("request1"));
+            Assert.AreEqual(Status.DefaultSuccess, ex.Status);
+        }
+
+        [Test]
+        public void DuplexStreaming_CompleteAfterReceivingStatusFails()
+        {
+            asyncCall.StartDuplexStreamingCall();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+
+            var readTask = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, null);
+            fakeCall.ReceivedStatusOnClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()));
+
+            AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask);
+
+            Assert.DoesNotThrowAsync(async () => await requestStream.CompleteAsync());
+        }
+
+        [Test]
+        public void DuplexStreaming_WriteAfterCancellationRequestThrowsOperationCancelledException()
+        {
+            asyncCall.StartDuplexStreamingCall();
+            var requestStream = new ClientRequestStream<string, string>(asyncCall);
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+
+            asyncCall.Cancel();
+            Assert.IsTrue(fakeCall.IsCancelled);
+            Assert.Throws(typeof(OperationCanceledException), () => requestStream.WriteAsync("request1"));
+
+            var readTask = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, null);
+            fakeCall.ReceivedStatusOnClientHandler(true, CreateClientSideStatus(StatusCode.Cancelled));
+
+            AssertStreamingResponseError(asyncCall, fakeCall, readTask, StatusCode.Cancelled);
+        }
+
+        [Test]
+        public void DuplexStreaming_ReadAfterCancellationRequestCanSucceed()
+        {
+            asyncCall.StartDuplexStreamingCall();
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+
+            asyncCall.Cancel();
+            Assert.IsTrue(fakeCall.IsCancelled);
+
+            var readTask1 = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, CreateResponsePayload());
+            Assert.IsTrue(readTask1.Result);
+            Assert.AreEqual("response1", responseStream.Current);
+
+            var readTask2 = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, null);
+            fakeCall.ReceivedStatusOnClientHandler(true, CreateClientSideStatus(StatusCode.Cancelled));
+
+            AssertStreamingResponseError(asyncCall, fakeCall, readTask2, StatusCode.Cancelled);
+        }
+
+        [Test]
+        public void DuplexStreaming_ReadStartedBeforeCancellationRequestCanSucceed()
+        {
+            asyncCall.StartDuplexStreamingCall();
+            var responseStream = new ClientResponseStream<string, string>(asyncCall);
+
+            var readTask1 = responseStream.MoveNext();  // initiate the read before cancel request
+            asyncCall.Cancel();
+            Assert.IsTrue(fakeCall.IsCancelled);
+
+            fakeCall.ReceivedMessageHandler(true, CreateResponsePayload());
+            Assert.IsTrue(readTask1.Result);
+            Assert.AreEqual("response1", responseStream.Current);
+
+            var readTask2 = responseStream.MoveNext();
+            fakeCall.ReceivedMessageHandler(true, null);
+            fakeCall.ReceivedStatusOnClientHandler(true, CreateClientSideStatus(StatusCode.Cancelled));
+
+            AssertStreamingResponseError(asyncCall, fakeCall, readTask2, StatusCode.Cancelled);
+        }
+
+        ClientSideStatus CreateClientSideStatus(StatusCode statusCode)
+        {
+            return new ClientSideStatus(new Status(statusCode, ""), new Metadata());
+        }
+
+        byte[] CreateResponsePayload()
+        {
+            return Marshallers.StringMarshaller.Serializer("response1");
+        }
+
+        static void AssertUnaryResponseSuccess(AsyncCall<string, string> asyncCall, FakeNativeCall fakeCall, Task<string> resultTask)
+        {
             Assert.IsTrue(resultTask.IsCompleted);
             Assert.IsTrue(fakeCall.IsDisposed);
 
-            Assert.AreEqual(StatusCode.Internal, asyncCall.GetStatus().StatusCode);
-            Assert.IsNull(asyncCall.GetTrailers());
-            var ex = Assert.ThrowsAsync<RpcException>(async () => await resultTask);
-            Assert.AreEqual(StatusCode.Internal, ex.Status.StatusCode);
+            Assert.AreEqual(Status.DefaultSuccess, asyncCall.GetStatus());
+            Assert.AreEqual(0, asyncCall.ResponseHeadersAsync.Result.Count);
+            Assert.AreEqual(0, asyncCall.GetTrailers().Count);
+            Assert.AreEqual("response1", resultTask.Result);
         }
 
-        internal class FakeNativeCall : INativeCall
+        static void AssertStreamingResponseSuccess(AsyncCall<string, string> asyncCall, FakeNativeCall fakeCall, Task<bool> moveNextTask)
         {
-            public UnaryResponseClientHandler UnaryResponseClientHandler
-            {
-                get;
-                set;
-            }
+            Assert.IsTrue(moveNextTask.IsCompleted);
+            Assert.IsTrue(fakeCall.IsDisposed);
 
-            public ReceivedStatusOnClientHandler ReceivedStatusOnClientHandler
-            {
-                get;
-                set;
-            }
+            Assert.IsFalse(moveNextTask.Result);
+            Assert.AreEqual(Status.DefaultSuccess, asyncCall.GetStatus());
+            Assert.AreEqual(0, asyncCall.GetTrailers().Count);
+        }
 
-            public ReceivedMessageHandler ReceivedMessageHandler
-            {
-                get;
-                set;
-            }
+        static void AssertUnaryResponseError(AsyncCall<string, string> asyncCall, FakeNativeCall fakeCall, Task<string> resultTask, StatusCode expectedStatusCode)
+        {
+            Assert.IsTrue(resultTask.IsCompleted);
+            Assert.IsTrue(fakeCall.IsDisposed);
 
-            public ReceivedResponseHeadersHandler ReceivedResponseHeadersHandler
-            {
-                get;
-                set;
-            }
+            Assert.AreEqual(expectedStatusCode, asyncCall.GetStatus().StatusCode);
+            var ex = Assert.ThrowsAsync<RpcException>(async () => await resultTask);
+            Assert.AreEqual(expectedStatusCode, ex.Status.StatusCode);
+            Assert.AreEqual(0, asyncCall.ResponseHeadersAsync.Result.Count);
+            Assert.AreEqual(0, asyncCall.GetTrailers().Count);
+        }
 
-            public SendCompletionHandler SendCompletionHandler
-            {
-                get;
-                set;
-            }
+        static void AssertStreamingResponseError(AsyncCall<string, string> asyncCall, FakeNativeCall fakeCall, Task<bool> moveNextTask, StatusCode expectedStatusCode)
+        {
+            Assert.IsTrue(moveNextTask.IsCompleted);
+            Assert.IsTrue(fakeCall.IsDisposed);
 
-            public ReceivedCloseOnServerHandler ReceivedCloseOnServerHandler
-            {
-                get;
-                set;
-            }
-
-            public bool IsCancelled
-            {
-                get;
-                set;
-            }
-
-            public bool IsDisposed
-            {
-                get;
-                set;
-            }
-
-            public void Cancel()
-            {
-                IsCancelled = true;
-            }
-
-            public void CancelWithStatus(Status status)
-            {
-                IsCancelled = true;
-            }
-
-            public string GetPeer()
-            {
-                return "PEER";
-            }
-
-            public void StartUnary(UnaryResponseClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
-            {
-                UnaryResponseClientHandler = callback;
-            }
-
-            public void StartUnary(BatchContextSafeHandle ctx, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
-            {
-                throw new NotImplementedException();
-            }
-
-            public void StartClientStreaming(UnaryResponseClientHandler callback, MetadataArraySafeHandle metadataArray)
-            {
-                UnaryResponseClientHandler = callback;
-            }
-
-            public void StartServerStreaming(ReceivedStatusOnClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
-            {
-                ReceivedStatusOnClientHandler = callback;
-            }
-
-            public void StartDuplexStreaming(ReceivedStatusOnClientHandler callback, MetadataArraySafeHandle metadataArray)
-            {
-                ReceivedStatusOnClientHandler = callback;
-            }
-
-            public void StartReceiveMessage(ReceivedMessageHandler callback)
-            {
-                ReceivedMessageHandler = callback;
-            }
-
-            public void StartReceiveInitialMetadata(ReceivedResponseHeadersHandler callback)
-            {
-                ReceivedResponseHeadersHandler = callback;
-            }
-
-            public void StartSendInitialMetadata(SendCompletionHandler callback, MetadataArraySafeHandle metadataArray)
-            {
-                SendCompletionHandler = callback;
-            }
-
-            public void StartSendMessage(SendCompletionHandler callback, byte[] payload, WriteFlags writeFlags, bool sendEmptyInitialMetadata)
-            {
-                SendCompletionHandler = callback;
-            }
-
-            public void StartSendCloseFromClient(SendCompletionHandler callback)
-            {
-                SendCompletionHandler = callback;
-            }
-
-            public void StartSendStatusFromServer(SendCompletionHandler callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata)
-            {
-                SendCompletionHandler = callback;
-            }
-
-            public void StartServerSide(ReceivedCloseOnServerHandler callback)
-            {
-                ReceivedCloseOnServerHandler = callback;
-            }
-
-            public void Dispose()
-            {
-                IsDisposed = true;
-            }
+            var ex = Assert.ThrowsAsync<RpcException>(async () => await moveNextTask);
+            Assert.AreEqual(expectedStatusCode, ex.Status.StatusCode);
+            Assert.AreEqual(expectedStatusCode, asyncCall.GetStatus().StatusCode);
+            Assert.AreEqual(0, asyncCall.GetTrailers().Count);
         }
     }
 }
diff --git a/src/csharp/Grpc.Core.Tests/Internal/FakeNativeCall.cs b/src/csharp/Grpc.Core.Tests/Internal/FakeNativeCall.cs
new file mode 100644
index 0000000..909112a
--- /dev/null
+++ b/src/csharp/Grpc.Core.Tests/Internal/FakeNativeCall.cs
@@ -0,0 +1,184 @@
+#region Copyright notice and license
+
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Threading.Tasks;
+
+using Grpc.Core.Internal;
+using NUnit.Framework;
+
+namespace Grpc.Core.Internal.Tests
+{
+    /// <summary>
+    /// For testing purposes.
+    /// </summary>
+    internal class FakeNativeCall : INativeCall
+    {
+        public UnaryResponseClientHandler UnaryResponseClientHandler
+        {
+            get;
+            set;
+        }
+
+        public ReceivedStatusOnClientHandler ReceivedStatusOnClientHandler
+        {
+            get;
+            set;
+        }
+
+        public ReceivedMessageHandler ReceivedMessageHandler
+        {
+            get;
+            set;
+        }
+
+        public ReceivedResponseHeadersHandler ReceivedResponseHeadersHandler
+        {
+            get;
+            set;
+        }
+
+        public SendCompletionHandler SendCompletionHandler
+        {
+            get;
+            set;
+        }
+
+        public SendCompletionHandler SendStatusFromServerHandler
+        {
+            get;
+            set;
+        }
+
+        public ReceivedCloseOnServerHandler ReceivedCloseOnServerHandler
+        {
+            get;
+            set;
+        }
+
+        public bool IsCancelled
+        {
+            get;
+            set;
+        }
+
+        public bool IsDisposed
+        {
+            get;
+            set;
+        }
+
+        public void Cancel()
+        {
+            IsCancelled = true;
+        }
+
+        public void CancelWithStatus(Status status)
+        {
+            IsCancelled = true;
+        }
+
+        public string GetPeer()
+        {
+            return "PEER";
+        }
+
+        public void StartUnary(UnaryResponseClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
+        {
+            UnaryResponseClientHandler = callback;
+        }
+
+        public void StartUnary(BatchContextSafeHandle ctx, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
+        {
+            throw new NotImplementedException();
+        }
+
+        public void StartClientStreaming(UnaryResponseClientHandler callback, MetadataArraySafeHandle metadataArray)
+        {
+            UnaryResponseClientHandler = callback;
+        }
+
+        public void StartServerStreaming(ReceivedStatusOnClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
+        {
+            ReceivedStatusOnClientHandler = callback;
+        }
+
+        public void StartDuplexStreaming(ReceivedStatusOnClientHandler callback, MetadataArraySafeHandle metadataArray)
+        {
+            ReceivedStatusOnClientHandler = callback;
+        }
+
+        public void StartReceiveMessage(ReceivedMessageHandler callback)
+        {
+            ReceivedMessageHandler = callback;
+        }
+
+        public void StartReceiveInitialMetadata(ReceivedResponseHeadersHandler callback)
+        {
+            ReceivedResponseHeadersHandler = callback;
+        }
+
+        public void StartSendInitialMetadata(SendCompletionHandler callback, MetadataArraySafeHandle metadataArray)
+        {
+            SendCompletionHandler = callback;
+        }
+
+        public void StartSendMessage(SendCompletionHandler callback, byte[] payload, WriteFlags writeFlags, bool sendEmptyInitialMetadata)
+        {
+            SendCompletionHandler = callback;
+        }
+
+        public void StartSendCloseFromClient(SendCompletionHandler callback)
+        {
+            SendCompletionHandler = callback;
+        }
+
+        public void StartSendStatusFromServer(SendCompletionHandler callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata,
+            byte[] optionalPayload, WriteFlags writeFlags)
+        {
+            SendStatusFromServerHandler = callback;
+        }
+
+        public void StartServerSide(ReceivedCloseOnServerHandler callback)
+        {
+            ReceivedCloseOnServerHandler = callback;
+        }
+
+        public void Dispose()
+        {
+            IsDisposed = true;
+        }
+    }
+}
diff --git a/src/csharp/Grpc.Core/Channel.cs b/src/csharp/Grpc.Core/Channel.cs
index 89981b1..93a6e6a 100644
--- a/src/csharp/Grpc.Core/Channel.cs
+++ b/src/csharp/Grpc.Core/Channel.cs
@@ -32,6 +32,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Threading;
 using System.Threading.Tasks;
 
 using Grpc.Core.Internal;
@@ -51,6 +52,7 @@
 
         readonly object myLock = new object();
         readonly AtomicCounter activeCallCounter = new AtomicCounter();
+        readonly CancellationTokenSource shutdownTokenSource = new CancellationTokenSource();
 
         readonly string target;
         readonly GrpcEnvironment environment;
@@ -101,12 +103,13 @@
 
         /// <summary>
         /// Gets current connectivity state of this channel.
+        /// After channel is has been shutdown, <c>ChannelState.FatalFailure</c> will be returned.
         /// </summary>
         public ChannelState State
         {
             get
             {
-                return handle.CheckConnectivityState(false);        
+                return GetConnectivityState(false);
             }
         }
 
@@ -155,6 +158,17 @@
         }
 
         /// <summary>
+        /// Returns a token that gets cancelled once <c>ShutdownAsync</c> is invoked.
+        /// </summary>
+        public CancellationToken ShutdownToken
+        {
+            get
+            {
+                return this.shutdownTokenSource.Token;
+            }
+        }
+
+        /// <summary>
         /// Allows explicitly requesting channel to connect without starting an RPC.
         /// Returned task completes once state Ready was seen. If the deadline is reached,
         /// or channel enters the FatalFailure state, the task is cancelled.
@@ -164,7 +178,7 @@
         /// <param name="deadline">The deadline. <c>null</c> indicates no deadline.</param>
         public async Task ConnectAsync(DateTime? deadline = null)
         {
-            var currentState = handle.CheckConnectivityState(true);
+            var currentState = GetConnectivityState(true);
             while (currentState != ChannelState.Ready)
             {
                 if (currentState == ChannelState.FatalFailure)
@@ -172,7 +186,7 @@
                     throw new OperationCanceledException("Channel has reached FatalFailure state.");
                 }
                 await WaitForStateChangedAsync(currentState, deadline).ConfigureAwait(false);
-                currentState = handle.CheckConnectivityState(false);
+                currentState = GetConnectivityState(false);
             }
         }
 
@@ -188,6 +202,8 @@
                 shutdownRequested = true;
             }
 
+            shutdownTokenSource.Cancel();
+
             var activeCallCount = activeCallCounter.Count;
             if (activeCallCount > 0)
             {
@@ -231,6 +247,18 @@
             activeCallCounter.Decrement();
         }
 
+        private ChannelState GetConnectivityState(bool tryToConnect)
+        {
+            try
+            {
+                return handle.CheckConnectivityState(tryToConnect);
+            }
+            catch (ObjectDisposedException)
+            {
+                return ChannelState.FatalFailure;
+            }
+        }
+
         private static void EnsureUserAgentChannelOption(Dictionary<string, ChannelOption> options)
         {
             var key = ChannelOptions.PrimaryUserAgentString;
diff --git a/src/csharp/Grpc.Core/GrpcEnvironment.cs b/src/csharp/Grpc.Core/GrpcEnvironment.cs
index a5c78cc..bee0ef1 100644
--- a/src/csharp/Grpc.Core/GrpcEnvironment.cs
+++ b/src/csharp/Grpc.Core/GrpcEnvironment.cs
@@ -45,11 +45,12 @@
     /// </summary>
     public class GrpcEnvironment
     {
-        const int THREAD_POOL_SIZE = 4;
+        const int MinDefaultThreadPoolSize = 4;
 
         static object staticLock = new object();
         static GrpcEnvironment instance;
         static int refCount;
+        static int? customThreadPoolSize;
 
         static ILogger logger = new ConsoleLogger();
 
@@ -123,13 +124,30 @@
         }
 
         /// <summary>
+        /// Sets the number of threads in the gRPC thread pool that polls for internal RPC events.
+        /// Can be only invoke before the <c>GrpcEnviroment</c> is started and cannot be changed afterwards.
+        /// Setting thread pool size is an advanced setting and you should only use it if you know what you are doing.
+        /// Most users should rely on the default value provided by gRPC library.
+        /// Note: this method is part of an experimental API that can change or be removed without any prior notice.
+        /// </summary>
+        public static void SetThreadPoolSize(int threadCount)
+        {
+            lock (staticLock)
+            {
+                GrpcPreconditions.CheckState(instance == null, "Can only be set before GrpcEnvironment is initialized");
+                GrpcPreconditions.CheckArgument(threadCount > 0, "threadCount needs to be a positive number");
+                customThreadPoolSize = threadCount;
+            }
+        }
+
+        /// <summary>
         /// Creates gRPC environment.
         /// </summary>
         private GrpcEnvironment()
         {
             GrpcNativeInit();
             completionRegistry = new CompletionRegistry(this);
-            threadPool = new GrpcThreadPool(this, THREAD_POOL_SIZE);
+            threadPool = new GrpcThreadPool(this, GetThreadPoolSizeOrDefault());
             threadPool.Start();
         }
 
@@ -200,5 +218,17 @@
 
             debugStats.CheckOK();
         }
+
+        private int GetThreadPoolSizeOrDefault()
+        {
+            if (customThreadPoolSize.HasValue)
+            {
+                return customThreadPoolSize.Value;
+            }
+            // In systems with many cores, use half of the cores for GrpcThreadPool
+            // and the other half for .NET thread pool. This heuristic definitely needs
+            // more work, but seems to work reasonably well for a start.
+            return Math.Max(MinDefaultThreadPoolSize, Environment.ProcessorCount / 2);
+        }
     }
 }
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
index 016e1b8..5535186 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
@@ -57,7 +57,7 @@
         // Completion of a pending unary response if not null.
         TaskCompletionSource<TResponse> unaryResponseTcs;
 
-        // Indicates that steaming call has finished.
+        // Indicates that response streaming call has finished.
         TaskCompletionSource<object> streamingCallFinishedTcs = new TaskCompletionSource<object>();
 
         // Response headers set here once received.
@@ -241,11 +241,10 @@
 
         /// <summary>
         /// Receives a streaming response. Only one pending read action is allowed at any given time.
-        /// completionDelegate is called when the operation finishes.
         /// </summary>
-        public void StartReadMessage(AsyncCompletionDelegate<TResponse> completionDelegate)
+        public Task<TResponse> ReadMessageAsync()
         {
-            StartReadMessageInternal(completionDelegate);
+            return ReadMessageInternalAsync();
         }
 
         /// <summary>
@@ -409,10 +408,13 @@
         /// </summary>
         private void HandleUnaryResponse(bool success, ClientSideStatus receivedStatus, byte[] receivedMessage, Metadata responseHeaders)
         {
+            // NOTE: because this event is a result of batch containing GRPC_OP_RECV_STATUS_ON_CLIENT,
+            // success will be always set to true.
+
             using (Profilers.ForCurrentThread().NewScope("AsyncCall.HandleUnaryResponse"))
             {
                 TResponse msg = default(TResponse);
-                var deserializeException = success ? TryDeserialize(receivedMessage, out msg) : null;
+                var deserializeException = TryDeserialize(receivedMessage, out msg);
 
                 lock (myLock)
                 {
@@ -425,14 +427,13 @@
                     finishedStatus = receivedStatus;
 
                     ReleaseResourcesIfPossible();
-
                 }
 
                 responseHeadersTcs.SetResult(responseHeaders);
 
                 var status = receivedStatus.Status;
 
-                if (!success || status.StatusCode != StatusCode.OK)
+                if (status.StatusCode != StatusCode.OK)
                 {
                     unaryResponseTcs.SetException(new RpcException(status));
                     return;
@@ -442,11 +443,27 @@
             }
         }
 
+        protected override void CheckSendingAllowed(bool allowFinished)
+        {
+            base.CheckSendingAllowed(true);
+
+            // throwing RpcException if we already received status on client
+            // side makes the most sense.
+            // Note that this throws even for StatusCode.OK.
+            if (!allowFinished && finishedStatus.HasValue)
+            {
+                throw new RpcException(finishedStatus.Value.Status);
+            }
+        }
+
         /// <summary>
         /// Handles receive status completion for calls with streaming response.
         /// </summary>
         private void HandleFinished(bool success, ClientSideStatus receivedStatus)
         {
+            // NOTE: because this event is a result of batch containing GRPC_OP_RECV_STATUS_ON_CLIENT,
+            // success will be always set to true.
+
             lock (myLock)
             {
                 finished = true;
@@ -457,7 +474,7 @@
 
             var status = receivedStatus.Status;
 
-            if (!success || status.StatusCode != StatusCode.OK)
+            if (status.StatusCode != StatusCode.OK)
             {
                 streamingCallFinishedTcs.SetException(new RpcException(status));
                 return;
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
index ccd047f..4de2370 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
@@ -68,7 +68,8 @@
         protected bool cancelRequested;
 
         protected AsyncCompletionDelegate<object> sendCompletionDelegate;  // Completion of a pending send or sendclose if not null.
-        protected AsyncCompletionDelegate<TRead> readCompletionDelegate;  // Completion of a pending send or sendclose if not null.
+        protected TaskCompletionSource<TRead> streamingReadTcs;  // Completion of a pending streaming read if not null.
+        protected TaskCompletionSource<object> sendStatusFromServerTcs;
 
         protected bool readingDone;  // True if last read (i.e. read with null payload) was already received.
         protected bool halfcloseRequested;  // True if send close have been initiated.
@@ -150,15 +151,25 @@
         /// Initiates reading a message. Only one read operation can be active at a time.
         /// completionDelegate is invoked upon completion.
         /// </summary>
-        protected void StartReadMessageInternal(AsyncCompletionDelegate<TRead> completionDelegate)
+        protected Task<TRead> ReadMessageInternalAsync()
         {
             lock (myLock)
             {
-                GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
-                CheckReadingAllowed();
+                GrpcPreconditions.CheckState(started);
+                if (readingDone)
+                {
+                    // the last read that returns null or throws an exception is idempotent
+                    // and maintain its state.
+                    GrpcPreconditions.CheckState(streamingReadTcs != null, "Call does not support streaming reads.");
+                    return streamingReadTcs.Task;
+                }
+
+                GrpcPreconditions.CheckState(streamingReadTcs == null, "Only one read can be pending at a time");
+                GrpcPreconditions.CheckState(!disposed);
 
                 call.StartReceiveMessage(HandleReadFinished);
-                readCompletionDelegate = completionDelegate;
+                streamingReadTcs = new TaskCompletionSource<TRead>();
+                return streamingReadTcs.Task;
             }
         }
 
@@ -202,7 +213,7 @@
         {
         }
 
-        protected void CheckSendingAllowed(bool allowFinished)
+        protected virtual void CheckSendingAllowed(bool allowFinished)
         {
             GrpcPreconditions.CheckState(started);
             CheckNotCancelled();
@@ -213,15 +224,6 @@
             GrpcPreconditions.CheckState(sendCompletionDelegate == null, "Only one write can be pending at a time");
         }
 
-        protected virtual void CheckReadingAllowed()
-        {
-            GrpcPreconditions.CheckState(started);
-            GrpcPreconditions.CheckState(!disposed);
-
-            GrpcPreconditions.CheckState(!readingDone, "Stream has already been closed.");
-            GrpcPreconditions.CheckState(readCompletionDelegate == null, "Only one read can be pending at a time");
-        }
-
         protected void CheckNotCancelled()
         {
             if (cancelRequested)
@@ -322,22 +324,18 @@
         /// </summary>
         protected void HandleSendStatusFromServerFinished(bool success)
         {
-            AsyncCompletionDelegate<object> origCompletionDelegate = null;
             lock (myLock)
             {
-                origCompletionDelegate = sendCompletionDelegate;
-                sendCompletionDelegate = null;
-
                 ReleaseResourcesIfPossible();
             }
 
             if (!success)
             {
-                FireCompletion(origCompletionDelegate, null, new InvalidOperationException("Error sending status from server."));
+                sendStatusFromServerTcs.SetException(new InvalidOperationException("Error sending status from server."));
             }
             else
             {
-                FireCompletion(origCompletionDelegate, null, null);
+                sendStatusFromServerTcs.SetResult(null);
             }
         }
 
@@ -346,15 +344,17 @@
         /// </summary>
         protected void HandleReadFinished(bool success, byte[] receivedMessage)
         {
+            // if success == false, received message will be null. It that case we will
+            // treat this completion as the last read an rely on C core to handle the failed
+            // read (e.g. deliver approriate statusCode on the clientside).
+
             TRead msg = default(TRead);
             var deserializeException = (success && receivedMessage != null) ? TryDeserialize(receivedMessage, out msg) : null;
 
-            AsyncCompletionDelegate<TRead> origCompletionDelegate = null;
+            TaskCompletionSource<TRead> origTcs = null;
             lock (myLock)
             {
-                origCompletionDelegate = readCompletionDelegate;
-                readCompletionDelegate = null;
-
+                origTcs = streamingReadTcs;
                 if (receivedMessage == null)
                 {
                     // This was the last read.
@@ -364,20 +364,25 @@
                 if (deserializeException != null && IsClient)
                 {
                     readingDone = true;
+
+                    // TODO(jtattermusch): it might be too late to set the status
                     CancelWithStatus(DeserializeResponseFailureStatus);
                 }
 
+                if (!readingDone)
+                {
+                    streamingReadTcs = null;
+                }
+
                 ReleaseResourcesIfPossible();
             }
 
-            // TODO: handle the case when success==false
-
             if (deserializeException != null && !IsClient)
             {
-                FireCompletion(origCompletionDelegate, default(TRead), new IOException("Failed to deserialize request message.", deserializeException));
+                origTcs.SetException(new IOException("Failed to deserialize request message.", deserializeException));
                 return;
             }
-            FireCompletion(origCompletionDelegate, msg, null);
+            origTcs.SetResult(msg);
         }
     }
 }
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
index bea2b36..b1566b4 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
@@ -65,6 +65,15 @@
         }
 
         /// <summary>
+        /// Only for testing purposes.
+        /// </summary>
+        public void InitializeForTesting(INativeCall call)
+        {
+            server.AddCallReference(this);
+            InitializeInternal(call);
+        }
+
+        /// <summary>
         /// Starts a server side call.
         /// </summary>
         public Task ServerSideCallAsync()
@@ -91,11 +100,10 @@
 
         /// <summary>
         /// Receives a streaming request. Only one pending read action is allowed at any given time.
-        /// completionDelegate is called when the operation finishes.
         /// </summary>
-        public void StartReadMessage(AsyncCompletionDelegate<TRequest> completionDelegate)
+        public Task<TRequest> ReadMessageAsync()
         {
-            StartReadMessageInternal(completionDelegate);
+            return ReadMessageInternalAsync();
         }
 
         /// <summary>
@@ -128,24 +136,33 @@
         }
 
         /// <summary>
-        /// Sends call result status, also indicating server is done with streaming responses.
-        /// Only one pending send action is allowed at any given time.
-        /// completionDelegate is called when the operation finishes.
+        /// Sends call result status, indicating we are done with writes.
+        /// Sending a status different from StatusCode.OK will also implicitly cancel the call.
         /// </summary>
-        public void StartSendStatusFromServer(Status status, Metadata trailers, AsyncCompletionDelegate<object> completionDelegate)
+        public Task SendStatusFromServerAsync(Status status, Metadata trailers, Tuple<TResponse, WriteFlags> optionalWrite)
         {
+            byte[] payload = optionalWrite != null ? UnsafeSerialize(optionalWrite.Item1) : null;
+            var writeFlags = optionalWrite != null ? optionalWrite.Item2 : default(WriteFlags);
+
             lock (myLock)
             {
-                GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
-                CheckSendingAllowed(allowFinished: false);
+                GrpcPreconditions.CheckState(started);
+                GrpcPreconditions.CheckState(!disposed);
+                GrpcPreconditions.CheckState(!halfcloseRequested, "Can only send status from server once.");
 
                 using (var metadataArray = MetadataArraySafeHandle.Create(trailers))
                 {
-                    call.StartSendStatusFromServer(HandleSendStatusFromServerFinished, status, metadataArray, !initialMetadataSent);
+                    call.StartSendStatusFromServer(HandleSendStatusFromServerFinished, status, metadataArray, !initialMetadataSent,
+                        payload, writeFlags);
                 }
                 halfcloseRequested = true;
-                readingDone = true;
-                sendCompletionDelegate = completionDelegate;
+                initialMetadataSent = true;
+                sendStatusFromServerTcs = new TaskCompletionSource<object>();
+                if (optionalWrite != null)
+                {
+                    streamingWritesCounter++;
+                }
+                return sendStatusFromServerTcs.Task;
             }
         }
 
@@ -174,12 +191,6 @@
             get { return false; }
         }
 
-        protected override void CheckReadingAllowed()
-        {
-            base.CheckReadingAllowed();
-            GrpcPreconditions.CheckArgument(!cancelRequested);
-        }
-
         protected override void OnAfterReleaseResources()
         {
             server.RemoveCallReference(this);
@@ -190,12 +201,21 @@
         /// </summary>
         private void HandleFinishedServerside(bool success, bool cancelled)
         {
+            // NOTE: because this event is a result of batch containing GRPC_OP_RECV_CLOSE_ON_SERVER,
+            // success will be always set to true.
             lock (myLock)
             {
                 finished = true;
+                if (streamingReadTcs == null)
+                {
+                    // if there's no pending read, readingDone=true will dispose now.
+                    // if there is a pending read, we will dispose once that read finishes.
+                    readingDone = true;
+                    streamingReadTcs = new TaskCompletionSource<TRequest>();
+                    streamingReadTcs.SetResult(default(TRequest));
+                }
                 ReleaseResourcesIfPossible();
             }
-            // TODO(jtattermusch): handle error
 
             if (cancelled)
             {
diff --git a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
index 500653b..244b97d 100644
--- a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
@@ -135,13 +135,16 @@
             }
         }
 
-        public void StartSendStatusFromServer(SendCompletionHandler callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata)
+        public void StartSendStatusFromServer(SendCompletionHandler callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata,
+            byte[] optionalPayload, WriteFlags writeFlags)
         {
             using (completionQueue.NewScope())
             {
                 var ctx = BatchContextSafeHandle.Create();
+                var optionalPayloadLength = optionalPayload != null ? new UIntPtr((ulong)optionalPayload.Length) : UIntPtr.Zero;
                 completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success));
-                Native.grpcsharp_call_send_status_from_server(this, ctx, status.StatusCode, status.Detail, metadataArray, sendEmptyInitialMetadata).CheckOk();
+                Native.grpcsharp_call_send_status_from_server(this, ctx, status.StatusCode, status.Detail, metadataArray, sendEmptyInitialMetadata,
+                    optionalPayload, optionalPayloadLength, writeFlags).CheckOk();
             }
         }
 
diff --git a/src/csharp/Grpc.Core/Internal/ClientResponseStream.cs b/src/csharp/Grpc.Core/Internal/ClientResponseStream.cs
index d6e34a0..ad9423f 100644
--- a/src/csharp/Grpc.Core/Internal/ClientResponseStream.cs
+++ b/src/csharp/Grpc.Core/Internal/ClientResponseStream.cs
@@ -68,9 +68,7 @@
             {
                 throw new InvalidOperationException("Cancellation of individual reads is not supported.");
             }
-            var taskSource = new AsyncCompletionTaskSource<TResponse>();
-            call.StartReadMessage(taskSource.CompletionDelegate);
-            var result = await taskSource.Task.ConfigureAwait(false);
+            var result = await call.ReadMessageAsync().ConfigureAwait(false);
             this.current = result;
 
             if (result == null)
diff --git a/src/csharp/Grpc.Core/Internal/INativeCall.cs b/src/csharp/Grpc.Core/Internal/INativeCall.cs
index cbef599..cd3719c 100644
--- a/src/csharp/Grpc.Core/Internal/INativeCall.cs
+++ b/src/csharp/Grpc.Core/Internal/INativeCall.cs
@@ -78,7 +78,7 @@
 
         void StartSendCloseFromClient(SendCompletionHandler callback);
 
-        void StartSendStatusFromServer(SendCompletionHandler callback, Grpc.Core.Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata);
+        void StartSendStatusFromServer(SendCompletionHandler callback, Grpc.Core.Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata, byte[] optionalPayload, Grpc.Core.WriteFlags writeFlags);
 
         void StartServerSide(ReceivedCloseOnServerHandler callback);
     }
diff --git a/src/csharp/Grpc.Core/Internal/NativeMethods.cs b/src/csharp/Grpc.Core/Internal/NativeMethods.cs
index 9ee0ba3..c277c73 100644
--- a/src/csharp/Grpc.Core/Internal/NativeMethods.cs
+++ b/src/csharp/Grpc.Core/Internal/NativeMethods.cs
@@ -421,20 +421,21 @@
             public delegate GRPCCallError grpcsharp_call_cancel_delegate(CallSafeHandle call);
             public delegate GRPCCallError grpcsharp_call_cancel_with_status_delegate(CallSafeHandle call, StatusCode status, string description);
             public delegate GRPCCallError grpcsharp_call_start_unary_delegate(CallSafeHandle call,
-                BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags);
+                BatchContextSafeHandle ctx, byte[] sendBuffer, UIntPtr sendBufferLen, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags);
             public delegate GRPCCallError grpcsharp_call_start_client_streaming_delegate(CallSafeHandle call,
                 BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray);
             public delegate GRPCCallError grpcsharp_call_start_server_streaming_delegate(CallSafeHandle call,
-                BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len,
+                BatchContextSafeHandle ctx, byte[] sendBuffer, UIntPtr sendBufferLen,
                 MetadataArraySafeHandle metadataArray, WriteFlags writeFlags);
             public delegate GRPCCallError grpcsharp_call_start_duplex_streaming_delegate(CallSafeHandle call,
                 BatchContextSafeHandle ctx, MetadataArraySafeHandle metadataArray);
             public delegate GRPCCallError grpcsharp_call_send_message_delegate(CallSafeHandle call,
-                BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, WriteFlags writeFlags, bool sendEmptyInitialMetadata);
+                BatchContextSafeHandle ctx, byte[] sendBuffer, UIntPtr sendBufferLen, WriteFlags writeFlags, bool sendEmptyInitialMetadata);
             public delegate GRPCCallError grpcsharp_call_send_close_from_client_delegate(CallSafeHandle call,
                 BatchContextSafeHandle ctx);
             public delegate GRPCCallError grpcsharp_call_send_status_from_server_delegate(CallSafeHandle call,
-                BatchContextSafeHandle ctx, StatusCode statusCode, string statusMessage, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata);
+                BatchContextSafeHandle ctx, StatusCode statusCode, string statusMessage, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata,
+                byte[] optionalSendBuffer, UIntPtr optionalSendBufferLen, WriteFlags writeFlags);
             public delegate GRPCCallError grpcsharp_call_recv_message_delegate(CallSafeHandle call,
                 BatchContextSafeHandle ctx);
             public delegate GRPCCallError grpcsharp_call_recv_initial_metadata_delegate(CallSafeHandle call,
@@ -593,7 +594,7 @@
 
             [DllImport("grpc_csharp_ext.dll")]
             public static extern GRPCCallError grpcsharp_call_start_unary(CallSafeHandle call,
-                BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags);
+                BatchContextSafeHandle ctx, byte[] sendBuffer, UIntPtr sendBufferLen, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags);
 
             [DllImport("grpc_csharp_ext.dll")]
             public static extern GRPCCallError grpcsharp_call_start_client_streaming(CallSafeHandle call,
@@ -601,7 +602,7 @@
 
             [DllImport("grpc_csharp_ext.dll")]
             public static extern GRPCCallError grpcsharp_call_start_server_streaming(CallSafeHandle call,
-                BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len,
+                BatchContextSafeHandle ctx, byte[] sendBuffer, UIntPtr sendBufferLen,
                 MetadataArraySafeHandle metadataArray, WriteFlags writeFlags);
 
             [DllImport("grpc_csharp_ext.dll")]
@@ -610,7 +611,7 @@
 
             [DllImport("grpc_csharp_ext.dll")]
             public static extern GRPCCallError grpcsharp_call_send_message(CallSafeHandle call,
-                BatchContextSafeHandle ctx, byte[] send_buffer, UIntPtr send_buffer_len, WriteFlags writeFlags, bool sendEmptyInitialMetadata);
+                BatchContextSafeHandle ctx, byte[] sendBuffer, UIntPtr sendBufferLen, WriteFlags writeFlags, bool sendEmptyInitialMetadata);
 
             [DllImport("grpc_csharp_ext.dll")]
             public static extern GRPCCallError grpcsharp_call_send_close_from_client(CallSafeHandle call,
@@ -618,7 +619,8 @@
 
             [DllImport("grpc_csharp_ext.dll")]
             public static extern GRPCCallError grpcsharp_call_send_status_from_server(CallSafeHandle call,
-                BatchContextSafeHandle ctx, StatusCode statusCode, string statusMessage, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata);
+                BatchContextSafeHandle ctx, StatusCode statusCode, string statusMessage, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata,
+                byte[] optionalSendBuffer, UIntPtr optionalSendBufferLen, WriteFlags writeFlags);
 
             [DllImport("grpc_csharp_ext.dll")]
             public static extern GRPCCallError grpcsharp_call_recv_message(CallSafeHandle call,
diff --git a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
index 1f83e51..85b7a4b 100644
--- a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
@@ -75,29 +75,32 @@
             var responseStream = new ServerResponseStream<TRequest, TResponse>(asyncCall);
 
             Status status;
+            Tuple<TResponse,WriteFlags> responseTuple = null;
             var context = HandlerUtils.NewContext(newRpc, asyncCall.Peer, responseStream, asyncCall.CancellationToken);
             try
             {
                 GrpcPreconditions.CheckArgument(await requestStream.MoveNext().ConfigureAwait(false));
                 var request = requestStream.Current;
-                // TODO(jtattermusch): we need to read the full stream so that native callhandle gets deallocated.
-                GrpcPreconditions.CheckArgument(!await requestStream.MoveNext().ConfigureAwait(false));
-                var result = await handler(request, context).ConfigureAwait(false);
+                var response = await handler(request, context).ConfigureAwait(false);
                 status = context.Status;
-                await responseStream.WriteAsync(result).ConfigureAwait(false);
+                responseTuple = Tuple.Create(response, HandlerUtils.GetWriteFlags(context.WriteOptions));
             } 
             catch (Exception e)
             {
-                Logger.Error(e, "Exception occured in handler.");
+                if (!(e is RpcException))
+                {
+                    Logger.Warning(e, "Exception occured in handler.");
+                }
                 status = HandlerUtils.StatusFromException(e);
             }
             try
             {
-                await responseStream.WriteStatusAsync(status, context.ResponseTrailers).ConfigureAwait(false);
+                await asyncCall.SendStatusFromServerAsync(status, context.ResponseTrailers, responseTuple).ConfigureAwait(false);
             }
-            catch (OperationCanceledException)
+            catch (Exception)
             {
-                // Call has been already cancelled.
+                asyncCall.Cancel();
+                throw;
             }
             await finishedTask.ConfigureAwait(false);
         }
@@ -136,24 +139,26 @@
             {
                 GrpcPreconditions.CheckArgument(await requestStream.MoveNext().ConfigureAwait(false));
                 var request = requestStream.Current;
-                // TODO(jtattermusch): we need to read the full stream so that native callhandle gets deallocated.
-                GrpcPreconditions.CheckArgument(!await requestStream.MoveNext().ConfigureAwait(false));
                 await handler(request, responseStream, context).ConfigureAwait(false);
                 status = context.Status;
             }
             catch (Exception e)
             {
-                Logger.Error(e, "Exception occured in handler.");
+                if (!(e is RpcException))
+                {
+                    Logger.Warning(e, "Exception occured in handler.");
+                }
                 status = HandlerUtils.StatusFromException(e);
             }
 
             try
             {
-                await responseStream.WriteStatusAsync(status, context.ResponseTrailers).ConfigureAwait(false);
+                await asyncCall.SendStatusFromServerAsync(status, context.ResponseTrailers, null).ConfigureAwait(false);
             }
-            catch (OperationCanceledException)
+            catch (Exception)
             {
-                // Call has been already cancelled.
+                asyncCall.Cancel();
+                throw;
             }
             await finishedTask.ConfigureAwait(false);
         }
@@ -187,33 +192,31 @@
             var responseStream = new ServerResponseStream<TRequest, TResponse>(asyncCall);
 
             Status status;
+            Tuple<TResponse,WriteFlags> responseTuple = null;
             var context = HandlerUtils.NewContext(newRpc, asyncCall.Peer, responseStream, asyncCall.CancellationToken);
             try
             {
-                var result = await handler(requestStream, context).ConfigureAwait(false);
+                var response = await handler(requestStream, context).ConfigureAwait(false);
                 status = context.Status;
-                try
-                {
-                    await responseStream.WriteAsync(result).ConfigureAwait(false);
-                }
-                catch (OperationCanceledException)
-                {
-                    status = Status.DefaultCancelled;
-                }
+                responseTuple = Tuple.Create(response, HandlerUtils.GetWriteFlags(context.WriteOptions));
             }
             catch (Exception e)
             {
-                Logger.Error(e, "Exception occured in handler.");
+                if (!(e is RpcException))
+                {
+                    Logger.Warning(e, "Exception occured in handler.");
+                }
                 status = HandlerUtils.StatusFromException(e);
             }
 
             try
             {
-                await responseStream.WriteStatusAsync(status, context.ResponseTrailers).ConfigureAwait(false);
+                await asyncCall.SendStatusFromServerAsync(status, context.ResponseTrailers, responseTuple).ConfigureAwait(false);
             }
-            catch (OperationCanceledException)
+            catch (Exception)
             {
-                // Call has been already cancelled.
+                asyncCall.Cancel();
+                throw;
             }
             await finishedTask.ConfigureAwait(false);
         }
@@ -255,16 +258,20 @@
             }
             catch (Exception e)
             {
-                Logger.Error(e, "Exception occured in handler.");
+                if (!(e is RpcException))
+                {
+                    Logger.Warning(e, "Exception occured in handler.");
+                }
                 status = HandlerUtils.StatusFromException(e);
             }
             try
             {
-                await responseStream.WriteStatusAsync(status, context.ResponseTrailers).ConfigureAwait(false);
+                await asyncCall.SendStatusFromServerAsync(status, context.ResponseTrailers, null).ConfigureAwait(false);
             }
-            catch (OperationCanceledException)
+            catch (Exception)
             {
-                // Call has been already cancelled.
+                asyncCall.Cancel();
+                throw;
             }
             await finishedTask.ConfigureAwait(false);
         }
@@ -282,9 +289,7 @@
             
             asyncCall.Initialize(newRpc.Call);
             var finishedTask = asyncCall.ServerSideCallAsync();
-            var responseStream = new ServerResponseStream<byte[], byte[]>(asyncCall);
-
-            await responseStream.WriteStatusAsync(new Status(StatusCode.Unimplemented, ""), Metadata.Empty).ConfigureAwait(false);
+            await asyncCall.SendStatusFromServerAsync(new Status(StatusCode.Unimplemented, ""), Metadata.Empty, null).ConfigureAwait(false);
             await finishedTask.ConfigureAwait(false);
         }
     }
@@ -300,10 +305,14 @@
                 return rpcException.Status;
             }
 
-            // TODO(jtattermusch): what is the right status code here?
             return new Status(StatusCode.Unknown, "Exception was thrown by handler.");
         }
 
+        public static WriteFlags GetWriteFlags(WriteOptions writeOptions)
+        {
+            return writeOptions != null ? writeOptions.Flags : default(WriteFlags);
+        }
+
         public static ServerCallContext NewContext<TRequest, TResponse>(ServerRpcNew newRpc, string peer, ServerResponseStream<TRequest, TResponse> serverResponseStream, CancellationToken cancellationToken)
             where TRequest : class
             where TResponse : class
diff --git a/src/csharp/Grpc.Core/Internal/ServerRequestStream.cs b/src/csharp/Grpc.Core/Internal/ServerRequestStream.cs
index e7be82c..d76030d 100644
--- a/src/csharp/Grpc.Core/Internal/ServerRequestStream.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerRequestStream.cs
@@ -68,9 +68,7 @@
             {
                 throw new InvalidOperationException("Cancellation of individual reads is not supported.");
             }
-            var taskSource = new AsyncCompletionTaskSource<TRequest>();
-            call.StartReadMessage(taskSource.CompletionDelegate);
-            var result = await taskSource.Task.ConfigureAwait(false);
+            var result = await call.ReadMessageAsync().ConfigureAwait(false);
             this.current = result;
             return result != null;
         }
diff --git a/src/csharp/Grpc.Core/Internal/ServerResponseStream.cs b/src/csharp/Grpc.Core/Internal/ServerResponseStream.cs
index 03e39ef..ecfee0b 100644
--- a/src/csharp/Grpc.Core/Internal/ServerResponseStream.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerResponseStream.cs
@@ -57,13 +57,6 @@
             return taskSource.Task;
         }
 
-        public Task WriteStatusAsync(Status status, Metadata trailers)
-        {
-            var taskSource = new AsyncCompletionTaskSource<object>();
-            call.StartSendStatusFromServer(status, trailers, taskSource.CompletionDelegate);
-            return taskSource.Task;
-        }
-
         public Task WriteResponseHeadersAsync(Metadata responseHeaders)
         {
             var taskSource = new AsyncCompletionTaskSource<object>();
diff --git a/src/csharp/Grpc.Core/Server.cs b/src/csharp/Grpc.Core/Server.cs
index 5b61b7f..d538a46 100644
--- a/src/csharp/Grpc.Core/Server.cs
+++ b/src/csharp/Grpc.Core/Server.cs
@@ -48,6 +48,7 @@
     /// </summary>
     public class Server
     {
+        const int InitialAllowRpcTokenCount = 10;
         static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<Server>();
 
         readonly AtomicCounter activeCallCounter = new AtomicCounter();
@@ -65,7 +66,7 @@
         readonly TaskCompletionSource<object> shutdownTcs = new TaskCompletionSource<object>();
 
         bool startRequested;
-        bool shutdownRequested;
+        volatile bool shutdownRequested;
 
         /// <summary>
         /// Create a new server.
@@ -129,7 +130,13 @@
                 startRequested = true;
                 
                 handle.Start();
-                AllowOneRpc();
+
+                // Starting with more than one AllowOneRpc tokens can significantly increase
+                // unary RPC throughput.
+                for (int i = 0; i < InitialAllowRpcTokenCount; i++)
+                {
+                    AllowOneRpc();
+                }
             }
         }
 
@@ -239,12 +246,9 @@
         /// </summary>
         private void AllowOneRpc()
         {
-            lock (myLock)
+            if (!shutdownRequested)
             {
-                if (!shutdownRequested)
-                {
-                    handle.RequestCall(HandleNewServerRpc, environment);
-                }
+                handle.RequestCall(HandleNewServerRpc, environment);
             }
         }
 
@@ -283,6 +287,8 @@
         /// </summary>
         private void HandleNewServerRpc(bool success, BatchContextSafeHandle ctx)
         {
+			Task.Run(() => AllowOneRpc());
+
             if (success)
             {
                 ServerRpcNew newRpc = ctx.GetServerRpcNew(this);
@@ -290,11 +296,9 @@
                 // after server shutdown, the callback returns with null call
                 if (!newRpc.Call.IsInvalid)
                 {
-                    Task.Run(async () => await HandleCallAsync(newRpc)).ConfigureAwait(false);
+                    HandleCallAsync(newRpc);  // we don't need to await.
                 }
             }
-
-            AllowOneRpc();
         }
 
         /// <summary>
diff --git a/src/csharp/Grpc.Core/VersionInfo.cs b/src/csharp/Grpc.Core/VersionInfo.cs
index f7a9cb9..e160934 100644
--- a/src/csharp/Grpc.Core/VersionInfo.cs
+++ b/src/csharp/Grpc.Core/VersionInfo.cs
@@ -48,11 +48,11 @@
         /// <summary>
         /// Current <c>AssemblyFileVersion</c> of gRPC C# assemblies
         /// </summary>
-        public const string CurrentAssemblyFileVersion = "0.14.0.0";
+        public const string CurrentAssemblyFileVersion = "0.15.0.0";
 
         /// <summary>
         /// Current version of gRPC C#
         /// </summary>
-        public const string CurrentVersion = "0.14.0-dev";
+        public const string CurrentVersion = "0.15.0-dev";
     }
 }
diff --git a/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs b/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
index 875202b..ee11105 100644
--- a/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
+++ b/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
@@ -92,7 +92,7 @@
         public void DivByZero()
         {
             var ex = Assert.Throws<RpcException>(() => client.Div(new DivArgs { Dividend = 0, Divisor = 0 }));
-            Assert.AreEqual(StatusCode.Unknown, ex.Status.StatusCode);
+            Assert.AreEqual(StatusCode.InvalidArgument, ex.Status.StatusCode);
         }
 
         [Test]
diff --git a/src/csharp/Grpc.Examples/MathExamples.cs b/src/csharp/Grpc.Examples/MathExamples.cs
index 6075420..d260830 100644
--- a/src/csharp/Grpc.Examples/MathExamples.cs
+++ b/src/csharp/Grpc.Examples/MathExamples.cs
@@ -32,6 +32,7 @@
 using System;
 using System.Collections.Generic;
 using System.Threading.Tasks;
+using Grpc.Core;
 using Grpc.Core.Utils;
 
 namespace Math
@@ -109,5 +110,42 @@
             DivReply result = await client.DivAsync(new DivArgs { Dividend = sum.Num_, Divisor = numbers.Count });
             Console.WriteLine("Avg Result: " + result);
         }
+
+        /// <summary>
+        /// Shows how to handle a call ending with non-OK status.
+        /// </summary>
+        public static async Task HandleErrorExample(Math.MathClient client)
+        {
+            try
+            {
+                 DivReply result = await client.DivAsync(new DivArgs { Dividend = 5, Divisor = 0 });
+            }
+            catch (RpcException ex)
+            {
+                Console.WriteLine(string.Format("RPC ended with status {0}", ex.Status));
+            }
+        }
+
+        /// <summary>
+        /// Shows how to send request headers and how to access response headers
+        /// and response trailers.
+        /// </summary>
+        public static async Task MetadataExample(Math.MathClient client)
+        {
+            var requestHeaders = new Metadata
+            {
+                { "custom-header", "custom-value" }
+            };
+
+            var call = client.DivAsync(new DivArgs { Dividend = 5, Divisor = 0 }, requestHeaders);
+
+            // Get response headers
+            Metadata responseHeaders = await call.ResponseHeadersAsync;
+
+            var result = await call;
+
+            // Get response trailers after the call has finished.
+            Metadata responseTrailers = call.GetTrailers();
+        }
     }
 }
diff --git a/src/csharp/Grpc.Examples/MathGrpc.cs b/src/csharp/Grpc.Examples/MathGrpc.cs
index 2d3034d..d700a18 100644
--- a/src/csharp/Grpc.Examples/MathGrpc.cs
+++ b/src/csharp/Grpc.Examples/MathGrpc.cs
@@ -151,25 +151,25 @@
       ///  Div divides args.dividend by args.divisor and returns the quotient and
       ///  remainder.
       /// </summary>
-      Task<global::Math.DivReply> Div(global::Math.DivArgs request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Math.DivReply> Div(global::Math.DivArgs request, ServerCallContext context);
       /// <summary>
       ///  DivMany accepts an arbitrary number of division args from the client stream
       ///  and sends back the results in the reply stream.  The stream continues until
       ///  the client closes its end; the server does the same after sending all the
       ///  replies.  The stream ends immediately if either end aborts.
       /// </summary>
-      Task DivMany(IAsyncStreamReader<global::Math.DivArgs> requestStream, IServerStreamWriter<global::Math.DivReply> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task DivMany(IAsyncStreamReader<global::Math.DivArgs> requestStream, IServerStreamWriter<global::Math.DivReply> responseStream, ServerCallContext context);
       /// <summary>
       ///  Fib generates numbers in the Fibonacci sequence.  If args.limit > 0, Fib
       ///  generates up to limit numbers; otherwise it continues until the call is
       ///  canceled.  Unlike Fib above, Fib has no final FibReply.
       /// </summary>
-      Task Fib(global::Math.FibArgs request, IServerStreamWriter<global::Math.Num> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task Fib(global::Math.FibArgs request, IServerStreamWriter<global::Math.Num> responseStream, ServerCallContext context);
       /// <summary>
       ///  Sum sums a stream of numbers, returning the final result once the stream
       ///  is closed.
       /// </summary>
-      Task<global::Math.Num> Sum(IAsyncStreamReader<global::Math.Num> requestStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Math.Num> Sum(IAsyncStreamReader<global::Math.Num> requestStream, ServerCallContext context);
     }
 
     /// <summary>Base class for server-side implementations of Math</summary>
@@ -179,7 +179,7 @@
       ///  Div divides args.dividend by args.divisor and returns the quotient and
       ///  remainder.
       /// </summary>
-      public virtual Task<global::Math.DivReply> Div(global::Math.DivArgs request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Math.DivReply> Div(global::Math.DivArgs request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -190,7 +190,7 @@
       ///  the client closes its end; the server does the same after sending all the
       ///  replies.  The stream ends immediately if either end aborts.
       /// </summary>
-      public virtual Task DivMany(IAsyncStreamReader<global::Math.DivArgs> requestStream, IServerStreamWriter<global::Math.DivReply> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task DivMany(IAsyncStreamReader<global::Math.DivArgs> requestStream, IServerStreamWriter<global::Math.DivReply> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -200,7 +200,7 @@
       ///  generates up to limit numbers; otherwise it continues until the call is
       ///  canceled.  Unlike Fib above, Fib has no final FibReply.
       /// </summary>
-      public virtual Task Fib(global::Math.FibArgs request, IServerStreamWriter<global::Math.Num> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task Fib(global::Math.FibArgs request, IServerStreamWriter<global::Math.Num> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -209,7 +209,7 @@
       ///  Sum sums a stream of numbers, returning the final result once the stream
       ///  is closed.
       /// </summary>
-      public virtual Task<global::Math.Num> Sum(IAsyncStreamReader<global::Math.Num> requestStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Math.Num> Sum(IAsyncStreamReader<global::Math.Num> requestStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
diff --git a/src/csharp/Grpc.Examples/MathServiceImpl.cs b/src/csharp/Grpc.Examples/MathServiceImpl.cs
index 79c56e5..a28020f 100644
--- a/src/csharp/Grpc.Examples/MathServiceImpl.cs
+++ b/src/csharp/Grpc.Examples/MathServiceImpl.cs
@@ -52,23 +52,15 @@
 
         public override async Task Fib(FibArgs request, IServerStreamWriter<Num> responseStream, ServerCallContext context)
         {
-            if (request.Limit <= 0)
-            {
-                // keep streaming the sequence until cancelled.
-                IEnumerator<Num> fibEnumerator = FibInternal(long.MaxValue).GetEnumerator();
-                while (!context.CancellationToken.IsCancellationRequested && fibEnumerator.MoveNext())
-                {
-                    await responseStream.WriteAsync(fibEnumerator.Current);
-                    await Task.Delay(100);
-                }
-            }
+            var limit = request.Limit > 0 ? request.Limit : long.MaxValue;
+            var fibEnumerator = FibInternal(limit).GetEnumerator();
 
-            if (request.Limit > 0)
+            // Keep streaming the sequence until the call is cancelled.
+            // Use CancellationToken from ServerCallContext to detect the cancellation.
+            while (!context.CancellationToken.IsCancellationRequested && fibEnumerator.MoveNext())
             {
-                foreach (var num in FibInternal(request.Limit))
-                {
-                    await responseStream.WriteAsync(num);
-                }
+                await responseStream.WriteAsync(fibEnumerator.Current);
+                await Task.Delay(100);
             }
         }
 
@@ -89,6 +81,13 @@
 
         static DivReply DivInternal(DivArgs args)
         {
+            if (args.Divisor == 0)
+            {
+                // One can finish the RPC with non-ok status by throwing RpcException instance.
+                // Alternatively, resulting status can be set using ServerCallContext.Status
+                throw new RpcException(new Status(StatusCode.InvalidArgument, "Division by zero"));
+            }
+
             long quotient = args.Dividend / args.Divisor;
             long remainder = args.Dividend % args.Divisor;
             return new DivReply { Quotient = quotient, Remainder = remainder };
diff --git a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
index 967d117..51c6a39 100644
--- a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
+++ b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
@@ -72,13 +72,13 @@
     [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
     public interface IHealth
     {
-      Task<global::Grpc.Health.V1.HealthCheckResponse> Check(global::Grpc.Health.V1.HealthCheckRequest request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Health.V1.HealthCheckResponse> Check(global::Grpc.Health.V1.HealthCheckRequest request, ServerCallContext context);
     }
 
     /// <summary>Base class for server-side implementations of Health</summary>
     public abstract class HealthBase
     {
-      public virtual Task<global::Grpc.Health.V1.HealthCheckResponse> Check(global::Grpc.Health.V1.HealthCheckRequest request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Health.V1.HealthCheckResponse> Check(global::Grpc.Health.V1.HealthCheckRequest request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
diff --git a/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs b/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
index b457275..9eaf6bf 100644
--- a/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
+++ b/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
@@ -142,8 +142,7 @@
                 for (int i = 0; i < outstandingRpcsPerChannel; i++)
                 {
                     var timer = CreateTimer(loadParams, 1.0 / this.channels.Count / outstandingRpcsPerChannel);
-                    var threadBody = GetThreadBody(channel, timer);
-                    this.runnerTasks.Add(Task.Factory.StartNew(threadBody, TaskCreationOptions.LongRunning));
+                    this.runnerTasks.Add(RunClientAsync(channel, timer));
                 }
             }
         }
@@ -269,38 +268,30 @@
             }
         }
 
-        private Action GetThreadBody(Channel channel, IInterarrivalTimer timer)
+        private Task RunClientAsync(Channel channel, IInterarrivalTimer timer)
         {
             if (payloadConfig.PayloadCase == PayloadConfig.PayloadOneofCase.BytebufParams)
             {
                 GrpcPreconditions.CheckArgument(clientType == ClientType.ASYNC_CLIENT, "Generic client only supports async API");
                 GrpcPreconditions.CheckArgument(rpcType == RpcType.STREAMING, "Generic client only supports streaming calls");
-                return () =>
-                {
-                    RunGenericStreamingAsync(channel, timer).Wait();
-                };
+                return RunGenericStreamingAsync(channel, timer);
             }
 
             GrpcPreconditions.CheckNotNull(payloadConfig.SimpleParams);
             if (clientType == ClientType.SYNC_CLIENT)
             {
                 GrpcPreconditions.CheckArgument(rpcType == RpcType.UNARY, "Sync client can only be used for Unary calls in C#");
-                return () => RunUnary(channel, timer);
+                // create a dedicated thread for the synchronous client
+                return Task.Factory.StartNew(() => RunUnary(channel, timer), TaskCreationOptions.LongRunning);
             }
             else if (clientType == ClientType.ASYNC_CLIENT)
             {
                 switch (rpcType)
                 {
                     case RpcType.UNARY:
-                        return () =>
-                        {
-                            RunUnaryAsync(channel, timer).Wait();
-                        };
+                        return RunUnaryAsync(channel, timer);
                     case RpcType.STREAMING:
-                        return () =>
-                        {
-                            RunStreamingPingPongAsync(channel, timer).Wait();
-                        };
+                        return RunStreamingPingPongAsync(channel, timer);
                 }
             }
             throw new ArgumentException("Unsupported configuration.");
diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
index b3b1abf..cff8508 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
@@ -492,6 +492,10 @@
                 {
                     // Deadline was reached before write has started. Eat the exception and continue.
                 }
+                catch (RpcException)
+                {
+                    // Deadline was reached before write has started. Eat the exception and continue.
+                }
 
                 var ex = Assert.ThrowsAsync<RpcException>(async () => await call.ResponseStream.MoveNext());
                 // We can't guarantee the status code always DeadlineExceeded. See issue #2685.
diff --git a/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs b/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs
index aa4f1c5..9d31d1c 100644
--- a/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs
@@ -112,11 +112,11 @@
       ///  Returns the values of all the gauges that are currently being maintained by
       ///  the service
       /// </summary>
-      Task GetAllGauges(global::Grpc.Testing.EmptyMessage request, IServerStreamWriter<global::Grpc.Testing.GaugeResponse> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task GetAllGauges(global::Grpc.Testing.EmptyMessage request, IServerStreamWriter<global::Grpc.Testing.GaugeResponse> responseStream, ServerCallContext context);
       /// <summary>
       ///  Returns the value of one gauge
       /// </summary>
-      Task<global::Grpc.Testing.GaugeResponse> GetGauge(global::Grpc.Testing.GaugeRequest request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.GaugeResponse> GetGauge(global::Grpc.Testing.GaugeRequest request, ServerCallContext context);
     }
 
     /// <summary>Base class for server-side implementations of MetricsService</summary>
@@ -126,7 +126,7 @@
       ///  Returns the values of all the gauges that are currently being maintained by
       ///  the service
       /// </summary>
-      public virtual Task GetAllGauges(global::Grpc.Testing.EmptyMessage request, IServerStreamWriter<global::Grpc.Testing.GaugeResponse> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task GetAllGauges(global::Grpc.Testing.EmptyMessage request, IServerStreamWriter<global::Grpc.Testing.GaugeResponse> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -134,7 +134,7 @@
       /// <summary>
       ///  Returns the value of one gauge
       /// </summary>
-      public virtual Task<global::Grpc.Testing.GaugeResponse> GetGauge(global::Grpc.Testing.GaugeRequest request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.GaugeResponse> GetGauge(global::Grpc.Testing.GaugeRequest request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
diff --git a/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs b/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs
index 42bf5e0..f7071eb 100644
--- a/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/ServicesGrpc.cs
@@ -111,12 +111,12 @@
       ///  One request followed by one response.
       ///  The server returns the client payload as-is.
       /// </summary>
-      Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context);
       /// <summary>
       ///  One request followed by one response.
       ///  The server returns the client payload as-is.
       /// </summary>
-      Task StreamingCall(IAsyncStreamReader<global::Grpc.Testing.SimpleRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.SimpleResponse> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task StreamingCall(IAsyncStreamReader<global::Grpc.Testing.SimpleRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.SimpleResponse> responseStream, ServerCallContext context);
     }
 
     /// <summary>Base class for server-side implementations of BenchmarkService</summary>
@@ -126,7 +126,7 @@
       ///  One request followed by one response.
       ///  The server returns the client payload as-is.
       /// </summary>
-      public virtual Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -135,7 +135,7 @@
       ///  One request followed by one response.
       ///  The server returns the client payload as-is.
       /// </summary>
-      public virtual Task StreamingCall(IAsyncStreamReader<global::Grpc.Testing.SimpleRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.SimpleResponse> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task StreamingCall(IAsyncStreamReader<global::Grpc.Testing.SimpleRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.SimpleResponse> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -375,7 +375,7 @@
       ///  and once the shutdown has finished, the OK status is sent to terminate
       ///  this RPC.
       /// </summary>
-      Task RunServer(IAsyncStreamReader<global::Grpc.Testing.ServerArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ServerStatus> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task RunServer(IAsyncStreamReader<global::Grpc.Testing.ServerArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ServerStatus> responseStream, ServerCallContext context);
       /// <summary>
       ///  Start client with specified workload.
       ///  First request sent specifies the ClientConfig followed by ClientStatus
@@ -384,15 +384,15 @@
       ///  and once the shutdown has finished, the OK status is sent to terminate
       ///  this RPC.
       /// </summary>
-      Task RunClient(IAsyncStreamReader<global::Grpc.Testing.ClientArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ClientStatus> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task RunClient(IAsyncStreamReader<global::Grpc.Testing.ClientArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ClientStatus> responseStream, ServerCallContext context);
       /// <summary>
       ///  Just return the core count - unary call
       /// </summary>
-      Task<global::Grpc.Testing.CoreResponse> CoreCount(global::Grpc.Testing.CoreRequest request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.CoreResponse> CoreCount(global::Grpc.Testing.CoreRequest request, ServerCallContext context);
       /// <summary>
       ///  Quit this worker
       /// </summary>
-      Task<global::Grpc.Testing.Void> QuitWorker(global::Grpc.Testing.Void request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.Void> QuitWorker(global::Grpc.Testing.Void request, ServerCallContext context);
     }
 
     /// <summary>Base class for server-side implementations of WorkerService</summary>
@@ -406,7 +406,7 @@
       ///  and once the shutdown has finished, the OK status is sent to terminate
       ///  this RPC.
       /// </summary>
-      public virtual Task RunServer(IAsyncStreamReader<global::Grpc.Testing.ServerArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ServerStatus> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task RunServer(IAsyncStreamReader<global::Grpc.Testing.ServerArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ServerStatus> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -419,7 +419,7 @@
       ///  and once the shutdown has finished, the OK status is sent to terminate
       ///  this RPC.
       /// </summary>
-      public virtual Task RunClient(IAsyncStreamReader<global::Grpc.Testing.ClientArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ClientStatus> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task RunClient(IAsyncStreamReader<global::Grpc.Testing.ClientArgs> requestStream, IServerStreamWriter<global::Grpc.Testing.ClientStatus> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -427,7 +427,7 @@
       /// <summary>
       ///  Just return the core count - unary call
       /// </summary>
-      public virtual Task<global::Grpc.Testing.CoreResponse> CoreCount(global::Grpc.Testing.CoreRequest request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.CoreResponse> CoreCount(global::Grpc.Testing.CoreRequest request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -435,7 +435,7 @@
       /// <summary>
       ///  Quit this worker
       /// </summary>
-      public virtual Task<global::Grpc.Testing.Void> QuitWorker(global::Grpc.Testing.Void request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.Void> QuitWorker(global::Grpc.Testing.Void request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
diff --git a/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs b/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs
index 8db691c..4d6ca7e 100644
--- a/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs
+++ b/src/csharp/Grpc.IntegrationTesting/StressTestClient.cs
@@ -311,7 +311,7 @@
                 var snapshot = histogram.GetSnapshot(true);
                 var elapsedSnapshot = wallClockStopwatch.GetElapsedSnapshot(true);
 
-                return (long) (snapshot.Count / elapsedSnapshot.Seconds);
+                return (long) (snapshot.Count / elapsedSnapshot.TotalSeconds);
             }
         }
     }
diff --git a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
index f1878cb..cf43a77 100644
--- a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
@@ -196,34 +196,34 @@
       /// <summary>
       ///  One empty request followed by one empty response.
       /// </summary>
-      Task<global::Grpc.Testing.Empty> EmptyCall(global::Grpc.Testing.Empty request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.Empty> EmptyCall(global::Grpc.Testing.Empty request, ServerCallContext context);
       /// <summary>
       ///  One request followed by one response.
       /// </summary>
-      Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context);
       /// <summary>
       ///  One request followed by a sequence of responses (streamed download).
       ///  The server returns the payload with client desired type and sizes.
       /// </summary>
-      Task StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context);
       /// <summary>
       ///  A sequence of requests followed by one response (streamed upload).
       ///  The server returns the aggregated size of client payload as the result.
       /// </summary>
-      Task<global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<global::Grpc.Testing.StreamingInputCallRequest> requestStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<global::Grpc.Testing.StreamingInputCallRequest> requestStream, ServerCallContext context);
       /// <summary>
       ///  A sequence of requests with each request served by the server immediately.
       ///  As one request could lead to multiple responses, this interface
       ///  demonstrates the idea of full duplexing.
       /// </summary>
-      Task FullDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task FullDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context);
       /// <summary>
       ///  A sequence of requests followed by a sequence of responses.
       ///  The server buffers all the client requests and then serves them in order. A
       ///  stream of responses are returned to the client when the server starts with
       ///  first request.
       /// </summary>
-      Task HalfDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context);
+      global::System.Threading.Tasks.Task HalfDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context);
     }
 
     /// <summary>Base class for server-side implementations of TestService</summary>
@@ -232,7 +232,7 @@
       /// <summary>
       ///  One empty request followed by one empty response.
       /// </summary>
-      public virtual Task<global::Grpc.Testing.Empty> EmptyCall(global::Grpc.Testing.Empty request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.Empty> EmptyCall(global::Grpc.Testing.Empty request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -240,7 +240,7 @@
       /// <summary>
       ///  One request followed by one response.
       /// </summary>
-      public virtual Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.SimpleResponse> UnaryCall(global::Grpc.Testing.SimpleRequest request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -249,7 +249,7 @@
       ///  One request followed by a sequence of responses (streamed download).
       ///  The server returns the payload with client desired type and sizes.
       /// </summary>
-      public virtual Task StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task StreamingOutputCall(global::Grpc.Testing.StreamingOutputCallRequest request, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -258,7 +258,7 @@
       ///  A sequence of requests followed by one response (streamed upload).
       ///  The server returns the aggregated size of client payload as the result.
       /// </summary>
-      public virtual Task<global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<global::Grpc.Testing.StreamingInputCallRequest> requestStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.StreamingInputCallResponse> StreamingInputCall(IAsyncStreamReader<global::Grpc.Testing.StreamingInputCallRequest> requestStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -268,7 +268,7 @@
       ///  As one request could lead to multiple responses, this interface
       ///  demonstrates the idea of full duplexing.
       /// </summary>
-      public virtual Task FullDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task FullDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -279,7 +279,7 @@
       ///  stream of responses are returned to the client when the server starts with
       ///  first request.
       /// </summary>
-      public virtual Task HalfDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task HalfDuplexCall(IAsyncStreamReader<global::Grpc.Testing.StreamingOutputCallRequest> requestStream, IServerStreamWriter<global::Grpc.Testing.StreamingOutputCallResponse> responseStream, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -525,7 +525,7 @@
       /// <summary>
       ///  A call that no server should implement
       /// </summary>
-      Task<global::Grpc.Testing.Empty> UnimplementedCall(global::Grpc.Testing.Empty request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.Empty> UnimplementedCall(global::Grpc.Testing.Empty request, ServerCallContext context);
     }
 
     /// <summary>Base class for server-side implementations of UnimplementedService</summary>
@@ -534,7 +534,7 @@
       /// <summary>
       ///  A call that no server should implement
       /// </summary>
-      public virtual Task<global::Grpc.Testing.Empty> UnimplementedCall(global::Grpc.Testing.Empty request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.Empty> UnimplementedCall(global::Grpc.Testing.Empty request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
@@ -669,19 +669,19 @@
     [System.Obsolete("Service implementations should inherit from the generated abstract base class instead.")]
     public interface IReconnectService
     {
-      Task<global::Grpc.Testing.Empty> Start(global::Grpc.Testing.ReconnectParams request, ServerCallContext context);
-      Task<global::Grpc.Testing.ReconnectInfo> Stop(global::Grpc.Testing.Empty request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.Empty> Start(global::Grpc.Testing.ReconnectParams request, ServerCallContext context);
+      global::System.Threading.Tasks.Task<global::Grpc.Testing.ReconnectInfo> Stop(global::Grpc.Testing.Empty request, ServerCallContext context);
     }
 
     /// <summary>Base class for server-side implementations of ReconnectService</summary>
     public abstract class ReconnectServiceBase
     {
-      public virtual Task<global::Grpc.Testing.Empty> Start(global::Grpc.Testing.ReconnectParams request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.Empty> Start(global::Grpc.Testing.ReconnectParams request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
 
-      public virtual Task<global::Grpc.Testing.ReconnectInfo> Stop(global::Grpc.Testing.Empty request, ServerCallContext context)
+      public virtual global::System.Threading.Tasks.Task<global::Grpc.Testing.ReconnectInfo> Stop(global::Grpc.Testing.Empty request, ServerCallContext context)
       {
         throw new RpcException(new Status(StatusCode.Unimplemented, ""));
       }
diff --git a/src/csharp/build_packages.bat b/src/csharp/build_packages.bat
index 9a60be2..7520b0f 100644
--- a/src/csharp/build_packages.bat
+++ b/src/csharp/build_packages.bat
@@ -1,7 +1,7 @@
 @rem Builds gRPC NuGet packages
 
 @rem Current package versions
-set VERSION=0.14.0-dev
+set VERSION=0.15.0-dev
 set PROTOBUF_VERSION=3.0.0-beta2
 
 @rem Packages that depend on prerelease packages (like Google.Protobuf) need to have prerelease suffix as well.
diff --git a/src/csharp/ext/grpc_csharp_ext.c b/src/csharp/ext/grpc_csharp_ext.c
index aeef8a7..5b8ff9b 100644
--- a/src/csharp/ext/grpc_csharp_ext.c
+++ b/src/csharp/ext/grpc_csharp_ext.c
@@ -715,10 +715,11 @@
 GPR_EXPORT grpc_call_error GPR_CALLTYPE grpcsharp_call_send_status_from_server(
     grpc_call *call, grpcsharp_batch_context *ctx, grpc_status_code status_code,
     const char *status_details, grpc_metadata_array *trailing_metadata,
-    int32_t send_empty_initial_metadata) {
+    int32_t send_empty_initial_metadata, const char* optional_send_buffer,
+    size_t optional_send_buffer_len, uint32_t write_flags) {
   /* TODO: don't use magic number */
-  grpc_op ops[2];
-  size_t nops = send_empty_initial_metadata ? 2 : 1;
+  grpc_op ops[3];
+  size_t nops = 1;
   ops[0].op = GRPC_OP_SEND_STATUS_FROM_SERVER;
   ops[0].data.send_status_from_server.status = status_code;
   ops[0].data.send_status_from_server.status_details =
@@ -731,12 +732,23 @@
       ctx->send_status_from_server.trailing_metadata.metadata;
   ops[0].flags = 0;
   ops[0].reserved = NULL;
-  ops[1].op = GRPC_OP_SEND_INITIAL_METADATA;
-  ops[1].data.send_initial_metadata.count = 0;
-  ops[1].data.send_initial_metadata.metadata = NULL;
-  ops[1].flags = 0;
-  ops[1].reserved = NULL;
-
+  if (optional_send_buffer) {
+    ops[nops].op = GRPC_OP_SEND_MESSAGE;
+    ctx->send_message = string_to_byte_buffer(optional_send_buffer,
+                                              optional_send_buffer_len);
+    ops[nops].data.send_message = ctx->send_message;
+    ops[nops].flags = write_flags;
+    ops[nops].reserved = NULL;
+    nops ++;
+  }
+  if (send_empty_initial_metadata) {
+    ops[nops].op = GRPC_OP_SEND_INITIAL_METADATA;
+    ops[nops].data.send_initial_metadata.count = 0;
+    ops[nops].data.send_initial_metadata.metadata = NULL;
+    ops[nops].flags = 0;
+    ops[nops].reserved = NULL;
+    nops++;
+  }
   return grpc_call_start_batch(call, ops, nops, ctx, NULL);
 }
 
diff --git a/src/csharp/tests.json b/src/csharp/tests.json
index f733352..f6af340 100644
--- a/src/csharp/tests.json
+++ b/src/csharp/tests.json
@@ -1,5 +1,6 @@
 {
   "Grpc.Core.Tests": [
+    "Grpc.Core.Internal.Tests.AsyncCallServerTest",
     "Grpc.Core.Internal.Tests.AsyncCallTest",
     "Grpc.Core.Internal.Tests.ChannelArgsSafeHandleTest",
     "Grpc.Core.Internal.Tests.CompletionQueueEventTest",
diff --git a/src/node/test/math/math_server.js b/src/node/test/math/math_server.js
index fa05ed0..5e3d1dd 100644
--- a/src/node/test/math/math_server.js
+++ b/src/node/test/math/math_server.js
@@ -68,7 +68,7 @@
 function mathFib(stream) {
   // Here, call is a standard writable Node object Stream
   var previous = 0, current = 1;
-  for (var i = 0; i < stream.request.limit; i++) {
+  for (var i = 0; i < stream.request.getLimit(); i++) {
     var response = new math.Num();
     response.setNum(current);
     stream.write(response);
diff --git a/src/node/tools/bin/protoc.js b/src/node/tools/bin/protoc.js
index 0c6d7ce..53fc5dc 100755
--- a/src/node/tools/bin/protoc.js
+++ b/src/node/tools/bin/protoc.js
@@ -43,12 +43,15 @@
 var path = require('path');
 var execFile = require('child_process').execFile;
 
-var protoc = path.resolve(__dirname, 'protoc');
+var exe_ext = process.platform === 'win32' ? '.exe' : '';
 
-execFile(protoc, process.argv.slice(2), function(error, stdout, stderr) {
+var protoc = path.resolve(__dirname, 'protoc' + exe_ext);
+
+var child_process = execFile(protoc, process.argv.slice(2), function(error, stdout, stderr) {
   if (error) {
     throw error;
   }
-  console.log(stdout);
-  console.log(stderr);
 });
+
+child_process.stdout.pipe(process.stdout);
+child_process.stderr.pipe(process.stderr);
diff --git a/src/node/tools/bin/protoc_plugin.js b/src/node/tools/bin/protoc_plugin.js
index 0e0bb94..857882e 100755
--- a/src/node/tools/bin/protoc_plugin.js
+++ b/src/node/tools/bin/protoc_plugin.js
@@ -43,12 +43,16 @@
 var path = require('path');
 var execFile = require('child_process').execFile;
 
-var protoc = path.resolve(__dirname, 'grpc_node_plugin');
+var exe_ext = process.platform === 'win32' ? '.exe' : '';
 
-execFile(protoc, process.argv.slice(2), function(error, stdout, stderr) {
+var plugin = path.resolve(__dirname, 'grpc_node_plugin' + exe_ext);
+
+var child_process = execFile(plugin, process.argv.slice(2), {encoding: 'buffer'}, function(error, stdout, stderr) {
   if (error) {
     throw error;
   }
-  console.log(stdout);
-  console.log(stderr);
 });
+
+process.stdin.pipe(child_process.stdin);
+child_process.stdout.pipe(process.stdout);
+child_process.stderr.pipe(process.stderr);
diff --git a/src/node/tools/package.json b/src/node/tools/package.json
index d98ed0b..d4849c2 100644
--- a/src/node/tools/package.json
+++ b/src/node/tools/package.json
@@ -1,6 +1,6 @@
 {
   "name": "grpc-tools",
-  "version": "0.14.0-dev",
+  "version": "0.15.0-dev",
   "author": "Google Inc.",
   "description": "Tools for developing with gRPC on Node.js",
   "homepage": "http://www.grpc.io/",
@@ -16,8 +16,8 @@
     }
   ],
   "bin": {
-    "grpc-tools-protoc": "./bin/protoc.js",
-    "grpc-tools-plugin": "./bin/protoc_plugin.js"
+    "grpc_tools_node_protoc": "./bin/protoc.js",
+    "grpc_tools_node_protoc_plugin": "./bin/protoc_plugin.js"
   },
   "scripts": {
     "install": "./node_modules/.bin/node-pre-gyp install"
diff --git a/src/objective-c/BoringSSL.podspec b/src/objective-c/BoringSSL.podspec
index 4a6df91..7d1de80 100644
--- a/src/objective-c/BoringSSL.podspec
+++ b/src/objective-c/BoringSSL.podspec
@@ -31,7 +31,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'BoringSSL'
-  s.version  = '2.0'
+  s.version  = '3.0'
   s.summary  = 'BoringSSL is a fork of OpenSSL that is designed to meet Google’s needs.'
   # Adapted from the homepage:
   s.description = <<-DESC
@@ -67,7 +67,7 @@
   s.authors  = 'Adam Langley', 'David Benjamin', 'Matt Braithwaite'
 
   s.source = { :git => 'https://boringssl.googlesource.com/boringssl',
-               :tag => 'version_for_cocoapods_2.0' }
+               :tag => 'version_for_cocoapods_3.0' }
 
   s.source_files = 'ssl/*.{h,c}',
                    'ssl/**/*.{h,c}',
diff --git a/src/php/ext/grpc/call.c b/src/php/ext/grpc/call.c
index a0f3d16..a2c1c08 100644
--- a/src/php/ext/grpc/call.c
+++ b/src/php/ext/grpc/call.c
@@ -96,6 +96,7 @@
   wrapped_grpc_call *call =
       (wrapped_grpc_call *)zend_object_store_get_object(call_object TSRMLS_CC);
   call->wrapped = wrapped;
+  call->owned = owned;
   return call_object;
 }
 
diff --git a/src/php/tests/interop/interop_client.php b/src/php/tests/interop/interop_client.php
index aebf80f..565bfce 100755
--- a/src/php/tests/interop/interop_client.php
+++ b/src/php/tests/interop/interop_client.php
@@ -1,7 +1,7 @@
 <?php
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -388,141 +388,158 @@
              'Call status was not DEADLINE_EXCEEDED');
 }
 
-$args = getopt('', ['server_host:', 'server_port:', 'test_case:',
-                    'use_tls::', 'use_test_ca::',
-                    'server_host_override:', 'oauth_scope:',
-                    'default_service_account:', ]);
-if (!array_key_exists('server_host', $args)) {
-    throw new Exception('Missing argument: --server_host is required');
-}
-if (!array_key_exists('server_port', $args)) {
-    throw new Exception('Missing argument: --server_port is required');
-}
-if (!array_key_exists('test_case', $args)) {
-    throw new Exception('Missing argument: --test_case is required');
-}
-
-if ($args['server_port'] == 443) {
-    $server_address = $args['server_host'];
-} else {
-    $server_address = $args['server_host'].':'.$args['server_port'];
-}
-
-$test_case = $args['test_case'];
-
-$host_override = 'foo.test.google.fr';
-if (array_key_exists('server_host_override', $args)) {
-    $host_override = $args['server_host_override'];
-}
-
-$use_tls = false;
-if (array_key_exists('use_tls', $args) &&
-    $args['use_tls'] != 'false') {
-    $use_tls = true;
-}
-
-$use_test_ca = false;
-if (array_key_exists('use_test_ca', $args) &&
-    $args['use_test_ca'] != 'false') {
-    $use_test_ca = true;
-}
-
-$opts = [];
-
-if ($use_tls) {
-    if ($use_test_ca) {
-        $ssl_credentials = Grpc\ChannelCredentials::createSsl(
-            file_get_contents(dirname(__FILE__).'/../data/ca.pem'));
-    } else {
-        $ssl_credentials = Grpc\ChannelCredentials::createSsl();
+function _makeStub($args)
+{
+    if (!array_key_exists('server_host', $args)) {
+        throw new Exception('Missing argument: --server_host is required');
     }
-    $opts['credentials'] = $ssl_credentials;
-    $opts['grpc.ssl_target_name_override'] = $host_override;
-} else {
-    $opts['credentials'] = Grpc\ChannelCredentials::createInsecure();
-}
+    if (!array_key_exists('server_port', $args)) {
+        throw new Exception('Missing argument: --server_port is required');
+    }
+    if (!array_key_exists('test_case', $args)) {
+        throw new Exception('Missing argument: --test_case is required');
+    }
 
-if (in_array($test_case, ['service_account_creds',
-    'compute_engine_creds', 'jwt_token_creds', ])) {
-    if ($test_case == 'jwt_token_creds') {
-        $auth_credentials = ApplicationDefaultCredentials::getCredentials();
+    if ($args['server_port'] == 443) {
+        $server_address = $args['server_host'];
     } else {
+        $server_address = $args['server_host'].':'.$args['server_port'];
+    }
+
+    $test_case = $args['test_case'];
+
+    $host_override = 'foo.test.google.fr';
+    if (array_key_exists('server_host_override', $args)) {
+        $host_override = $args['server_host_override'];
+    }
+
+    $use_tls = false;
+    if (array_key_exists('use_tls', $args) &&
+        $args['use_tls'] != 'false') {
+        $use_tls = true;
+    }
+
+    $use_test_ca = false;
+    if (array_key_exists('use_test_ca', $args) &&
+        $args['use_test_ca'] != 'false') {
+        $use_test_ca = true;
+    }
+
+    $opts = [];
+
+    if ($use_tls) {
+        if ($use_test_ca) {
+            $ssl_credentials = Grpc\ChannelCredentials::createSsl(
+                file_get_contents(dirname(__FILE__).'/../data/ca.pem'));
+        } else {
+            $ssl_credentials = Grpc\ChannelCredentials::createSsl();
+        }
+        $opts['credentials'] = $ssl_credentials;
+        $opts['grpc.ssl_target_name_override'] = $host_override;
+    } else {
+        $opts['credentials'] = Grpc\ChannelCredentials::createInsecure();
+    }
+
+    if (in_array($test_case, ['service_account_creds',
+                              'compute_engine_creds', 'jwt_token_creds', ])) {
+        if ($test_case == 'jwt_token_creds') {
+            $auth_credentials = ApplicationDefaultCredentials::getCredentials();
+        } else {
+            $auth_credentials = ApplicationDefaultCredentials::getCredentials(
+                $args['oauth_scope']
+            );
+        }
+        $opts['update_metadata'] = $auth_credentials->getUpdateMetadataFunc();
+    }
+
+    if ($test_case == 'oauth2_auth_token') {
         $auth_credentials = ApplicationDefaultCredentials::getCredentials(
             $args['oauth_scope']
         );
+        $token = $auth_credentials->fetchAuthToken();
+        $update_metadata =
+            function ($metadata,
+                      $authUri = null,
+                      ClientInterface $client = null) use ($token) {
+                $metadata_copy = $metadata;
+                $metadata_copy[CredentialsLoader::AUTH_METADATA_KEY] =
+                    [sprintf('%s %s',
+                             $token['token_type'],
+                             $token['access_token'])];
+
+                return $metadata_copy;
+            };
+        $opts['update_metadata'] = $update_metadata;
     }
-    $opts['update_metadata'] = $auth_credentials->getUpdateMetadataFunc();
+
+    $stub = new grpc\testing\TestServiceClient($server_address, $opts);
+
+    return $stub;
 }
 
-if ($test_case == 'oauth2_auth_token') {
-    $auth_credentials = ApplicationDefaultCredentials::getCredentials(
-        $args['oauth_scope']
-    );
-    $token = $auth_credentials->fetchAuthToken();
-    $update_metadata =
-        function ($metadata,
-                  $authUri = null,
-                  ClientInterface $client = null) use ($token) {
-            $metadata_copy = $metadata;
-            $metadata_copy[CredentialsLoader::AUTH_METADATA_KEY] =
-                [sprintf('%s %s',
-                         $token['token_type'],
-                         $token['access_token'])];
+function interop_main($args, $stub = false) {
+    if (!$stub) {
+        $stub = _makeStub($args);
+    }
 
-            return $metadata_copy;
-        };
-    $opts['update_metadata'] = $update_metadata;
+    $test_case = $args['test_case'];
+    echo "Running test case $test_case\n";
+
+    switch ($test_case) {
+        case 'empty_unary':
+            emptyUnary($stub);
+            break;
+        case 'large_unary':
+            largeUnary($stub);
+            break;
+        case 'client_streaming':
+            clientStreaming($stub);
+            break;
+        case 'server_streaming':
+            serverStreaming($stub);
+            break;
+        case 'ping_pong':
+            pingPong($stub);
+            break;
+        case 'empty_stream':
+            emptyStream($stub);
+            break;
+        case 'cancel_after_begin':
+            cancelAfterBegin($stub);
+            break;
+        case 'cancel_after_first_response':
+            cancelAfterFirstResponse($stub);
+            break;
+        case 'timeout_on_sleeping_server':
+            timeoutOnSleepingServer($stub);
+            break;
+        case 'service_account_creds':
+            serviceAccountCreds($stub, $args);
+            break;
+        case 'compute_engine_creds':
+            computeEngineCreds($stub, $args);
+            break;
+        case 'jwt_token_creds':
+            jwtTokenCreds($stub, $args);
+            break;
+        case 'oauth2_auth_token':
+            oauth2AuthToken($stub, $args);
+            break;
+        case 'per_rpc_creds':
+            perRpcCreds($stub, $args);
+            break;
+        default:
+            echo "Unsupported test case $test_case\n";
+            exit(1);
+    }
+
+    return $stub;
 }
 
-$stub = new grpc\testing\TestServiceClient($server_address, $opts);
-
-echo "Connecting to $server_address\n";
-echo "Running test case $test_case\n";
-
-switch ($test_case) {
-    case 'empty_unary':
-        emptyUnary($stub);
-        break;
-    case 'large_unary':
-        largeUnary($stub);
-        break;
-    case 'client_streaming':
-        clientStreaming($stub);
-        break;
-    case 'server_streaming':
-        serverStreaming($stub);
-        break;
-    case 'ping_pong':
-        pingPong($stub);
-        break;
-    case 'empty_stream':
-        emptyStream($stub);
-        break;
-    case 'cancel_after_begin':
-        cancelAfterBegin($stub);
-        break;
-    case 'cancel_after_first_response':
-        cancelAfterFirstResponse($stub);
-        break;
-    case 'timeout_on_sleeping_server':
-        timeoutOnSleepingServer($stub);
-        break;
-    case 'service_account_creds':
-        serviceAccountCreds($stub, $args);
-        break;
-    case 'compute_engine_creds':
-        computeEngineCreds($stub, $args);
-        break;
-    case 'jwt_token_creds':
-        jwtTokenCreds($stub, $args);
-        break;
-    case 'oauth2_auth_token':
-        oauth2AuthToken($stub, $args);
-        break;
-    case 'per_rpc_creds':
-        perRpcCreds($stub, $args);
-        break;
-    default:
-        echo "Unsupported test case $test_case\n";
-        exit(1);
+if (isset($_SERVER['PHP_SELF']) && preg_match('/interop_client/', $_SERVER['PHP_SELF'])) {
+    $args = getopt('', ['server_host:', 'server_port:', 'test_case:',
+                        'use_tls::', 'use_test_ca::',
+                        'server_host_override:', 'oauth_scope:',
+                        'default_service_account:', ]);
+    interop_main($args);
 }
diff --git a/examples/node/greeter_client.js b/src/php/tests/interop/metrics_client.php
similarity index 72%
copy from examples/node/greeter_client.js
copy to src/php/tests/interop/metrics_client.php
index 2820acb..46f4212 100644
--- a/examples/node/greeter_client.js
+++ b/src/php/tests/interop/metrics_client.php
@@ -1,6 +1,7 @@
+<?php
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,23 +32,18 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+$args = getopt('', ['metrics_server_address:', 'total_only::']);
+$parts = explode(':', $args['metrics_server_address']);
+$server_host = $parts[0];
+$server_port = (count($parts) == 2) ? $parts[1] : '';
 
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
-
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
+$socket = socket_create(AF_INET, SOCK_STREAM, 0);
+if (@!socket_connect($socket, $server_host, $server_port)) {
+  echo "Cannot connect to merics server...\n";
+  exit(1);
 }
-
-main();
+socket_write($socket, 'qps');
+while ($out = socket_read($socket, 1024)) {
+  echo "$out\n";
+}
+socket_close($socket);
diff --git a/src/php/tests/interop/stress_client.php b/src/php/tests/interop/stress_client.php
new file mode 100644
index 0000000..2339f0d
--- /dev/null
+++ b/src/php/tests/interop/stress_client.php
@@ -0,0 +1,116 @@
+<?php
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+include_once('interop_client.php');
+
+function stress_main($args) {
+  mt_srand();
+  set_time_limit(0);
+
+  // open socket to listen as metrics server
+  $socket = socket_create(AF_INET, SOCK_STREAM, 0);
+  socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
+  if (@!socket_bind($socket, 'localhost', $args['metrics_port'])) {
+    echo "Cannot create socket for metrics server...\n";
+    exit(1);
+  }
+  socket_listen($socket);
+  socket_set_nonblock($socket);
+
+  $start_time = microtime(true);
+  $count = 0;
+  $deadline = $args['test_duration_secs'] ?
+              ($start_time + $args['test_duration_secs']) : false;
+  $num_test_cases = count($args['test_cases']);
+  $stub = false;
+
+  while (true) {
+    $current_time = microtime(true);
+    if ($deadline && $current_time > $deadline) {
+      break;
+    }
+    if ($client_connection = socket_accept($socket)) {
+      // there is an incoming request, respond with qps metrics
+      $input = socket_read($client_connection, 1024);
+      $qps = round($count / ($current_time - $start_time));
+      socket_write($client_connection, "qps: $qps");
+      socket_close($client_connection);
+    } else {
+      // do actual work, run one interop test case
+      $args['test_case'] =
+          $args['test_cases'][mt_rand(0, $num_test_cases - 1)];
+      $stub = @interop_main($args, $stub);
+      $count++;
+    }
+  }
+  socket_close($socket);
+  echo "Number of interop tests run in $args[test_duration_secs] seconds: $count.\n";
+}
+
+// process command line arguments
+$raw_args = getopt('',
+  ['server_addresses::',
+   'test_cases:',
+   'metrics_port::',
+   'test_duration_secs::',
+   'num_channels_per_server::',
+   'num_stubs_per_channel::']);
+
+$args = [];
+
+if (empty($raw_args['server_addresses'])) {
+  $args['server_host'] = 'localhost';
+  $args['server_port'] = '8080';
+} else {
+  $parts = explode(':', $raw_args['server_addresses']);
+  $args['server_host'] = $parts[0];
+  $args['server_port'] = (count($parts) == 2) ? $parts[1] : '';
+}
+
+$args['metrics_port'] = empty($raw_args['metrics_port']) ?
+  '8081' : $args['metrics_port'];
+
+$args['test_duration_secs'] = empty($raw_args['test_duration_secs']) ||
+  $raw_args['test_duration_secs'] == -1 ?
+  false : $raw_args['test_duration_secs'];
+
+$test_cases = [];
+$test_case_strs = explode(',', $raw_args['test_cases']);
+foreach ($test_case_strs as $test_case_str) {
+  $parts = explode(':', $test_case_str);
+  $test_cases = array_merge($test_cases, array_fill(0, $parts[1], $parts[0]));
+}
+$args['test_cases'] = $test_cases;
+
+stress_main($args);
diff --git a/src/proto/grpc/lb/v0/load_balancer.options b/src/proto/grpc/lb/v0/load_balancer.options
deleted file mode 100644
index 6d4528f..0000000
--- a/src/proto/grpc/lb/v0/load_balancer.options
+++ /dev/null
@@ -1,6 +0,0 @@
-grpc.lb.v0.InitialLoadBalanceRequest.name max_size:128
-grpc.lb.v0.InitialLoadBalanceResponse.client_config max_size:64
-grpc.lb.v0.InitialLoadBalanceResponse.load_balancer_delegate max_size:64
-grpc.lb.v0.Server.ip_address max_size:46
-grpc.lb.v0.Server.load_balance_token max_size:64
-load_balancer.proto no_unions:true
diff --git a/src/proto/grpc/lb/v1/load_balancer.options b/src/proto/grpc/lb/v1/load_balancer.options
new file mode 100644
index 0000000..d903669
--- /dev/null
+++ b/src/proto/grpc/lb/v1/load_balancer.options
@@ -0,0 +1,6 @@
+grpc.lb.v1.InitialLoadBalanceRequest.name max_size:128
+grpc.lb.v1.InitialLoadBalanceResponse.client_config max_size:64
+grpc.lb.v1.InitialLoadBalanceResponse.load_balancer_delegate max_size:64
+grpc.lb.v1.Server.ip_address max_size:46
+grpc.lb.v1.Server.load_balance_token max_size:64
+load_balancer.proto no_unions:true
diff --git a/src/proto/grpc/lb/v0/load_balancer.proto b/src/proto/grpc/lb/v1/load_balancer.proto
similarity index 94%
rename from src/proto/grpc/lb/v0/load_balancer.proto
rename to src/proto/grpc/lb/v1/load_balancer.proto
index e88a4f8..1bcad0b 100644
--- a/src/proto/grpc/lb/v0/load_balancer.proto
+++ b/src/proto/grpc/lb/v1/load_balancer.proto
@@ -29,7 +29,7 @@
 
 syntax = "proto3";
 
-package grpc.lb.v0;
+package grpc.lb.v1;
 
 message Duration {
 
@@ -94,9 +94,8 @@
 
 message InitialLoadBalanceResponse {
   oneof initial_response_type {
-    // Contains gRPC config options like RPC deadline or flow control.
-    // TODO(yetianx): Change to ClientConfig after it is defined.
-    string client_config = 1;
+    // TODO(zhangkun83): ClientConfig not yet defined
+    //ClientConfig client_config = 1;
 
     // This is an application layer redirect that indicates the client should
     // use the specified server for load balancing. When this field is set in
@@ -134,9 +133,7 @@
   // An opaque token that is passed from the client to the server in metadata.
   // The server may expect this token to indicate that the request from the
   // client was load balanced.
-  // TODO(yetianx): Not used right now, and will be used after implementing
-  // load report.
-  bytes load_balance_token = 3;
+  string load_balance_token = 3;
 
   // Indicates whether this particular request should be dropped by the client
   // when this server is chosen from the list.
diff --git a/src/proto/grpc/testing/echo.proto b/src/proto/grpc/testing/echo.proto
index 0eef53a..c596aab 100644
--- a/src/proto/grpc/testing/echo.proto
+++ b/src/proto/grpc/testing/echo.proto
@@ -45,3 +45,7 @@
 service UnimplementedService {
   rpc Unimplemented(EchoRequest) returns (EchoResponse);
 }
+
+// A service without any rpc defined to test coverage.
+service NoRpcService {
+}
diff --git a/src/proto/grpc/testing/echo_messages.proto b/src/proto/grpc/testing/echo_messages.proto
index 1be1966..b405acf 100644
--- a/src/proto/grpc/testing/echo_messages.proto
+++ b/src/proto/grpc/testing/echo_messages.proto
@@ -32,6 +32,12 @@
 
 package grpc.testing;
 
+// Message to be echoed back serialized in trailer.
+message DebugInfo {
+  repeated string stack_entries = 1;
+  string detail = 2;
+}
+
 message RequestParams {
   bool echo_deadline = 1;
   int32 client_cancel_after_us = 2;
@@ -43,6 +49,7 @@
   string expected_client_identity = 8; // will force check_auth_context.
   bool skip_cancelled_check = 9;
   string expected_transport_security_type = 10;
+  DebugInfo debug_info = 11;
 }
 
 message EchoRequest {
diff --git a/src/python/grpcio/README.rst b/src/python/grpcio/README.rst
index cb3f6b8..afc4fe6 100644
--- a/src/python/grpcio/README.rst
+++ b/src/python/grpcio/README.rst
@@ -48,6 +48,7 @@
   $ export REPO_ROOT=grpc  # REPO_ROOT can be any directory of your choice
   $ git clone https://github.com/grpc/grpc.git $REPO_ROOT
   $ cd $REPO_ROOT
+  $ git submodule update --init
 
   # For the next two commands do `sudo pip install` if you get permission-denied errors
   $ pip install -rrequirements.txt
diff --git a/src/python/grpcio/grpc/__init__.py b/src/python/grpcio/grpc/__init__.py
index 7086519..b844a14 100644
--- a/src/python/grpcio/grpc/__init__.py
+++ b/src/python/grpcio/grpc/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,4 +27,5 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+__import__('pkg_resources').declare_namespace(__name__)
 
diff --git a/src/python/grpcio/grpc/_cython/imports.generated.c b/src/python/grpcio/grpc/_cython/imports.generated.c
index f0a40db..0955147 100644
--- a/src/python/grpcio/grpc/_cython/imports.generated.c
+++ b/src/python/grpcio/grpc/_cython/imports.generated.c
@@ -125,6 +125,7 @@
 grpc_header_nonbin_value_is_legal_type grpc_header_nonbin_value_is_legal_import;
 grpc_is_binary_header_type grpc_is_binary_header_import;
 grpc_call_error_to_string_type grpc_call_error_to_string_import;
+grpc_cronet_secure_channel_create_type grpc_cronet_secure_channel_create_import;
 grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
 grpc_auth_context_property_iterator_type grpc_auth_context_property_iterator_import;
 grpc_auth_context_peer_identity_type grpc_auth_context_peer_identity_import;
@@ -395,6 +396,7 @@
   grpc_header_nonbin_value_is_legal_import = (grpc_header_nonbin_value_is_legal_type) GetProcAddress(library, "grpc_header_nonbin_value_is_legal");
   grpc_is_binary_header_import = (grpc_is_binary_header_type) GetProcAddress(library, "grpc_is_binary_header");
   grpc_call_error_to_string_import = (grpc_call_error_to_string_type) GetProcAddress(library, "grpc_call_error_to_string");
+  grpc_cronet_secure_channel_create_import = (grpc_cronet_secure_channel_create_type) GetProcAddress(library, "grpc_cronet_secure_channel_create");
   grpc_auth_property_iterator_next_import = (grpc_auth_property_iterator_next_type) GetProcAddress(library, "grpc_auth_property_iterator_next");
   grpc_auth_context_property_iterator_import = (grpc_auth_context_property_iterator_type) GetProcAddress(library, "grpc_auth_context_property_iterator");
   grpc_auth_context_peer_identity_import = (grpc_auth_context_peer_identity_type) GetProcAddress(library, "grpc_auth_context_peer_identity");
diff --git a/src/python/grpcio/grpc/_cython/imports.generated.h b/src/python/grpcio/grpc/_cython/imports.generated.h
index d5e810b..54c8aaa 100644
--- a/src/python/grpcio/grpc/_cython/imports.generated.h
+++ b/src/python/grpcio/grpc/_cython/imports.generated.h
@@ -43,6 +43,7 @@
 #include <grpc/census.h>
 #include <grpc/compression.h>
 #include <grpc/grpc.h>
+#include <grpc/grpc_cronet.h>
 #include <grpc/grpc_security.h>
 #include <grpc/impl/codegen/alloc.h>
 #include <grpc/impl/codegen/byte_buffer.h>
@@ -325,6 +326,9 @@
 typedef const char *(*grpc_call_error_to_string_type)(grpc_call_error error);
 extern grpc_call_error_to_string_type grpc_call_error_to_string_import;
 #define grpc_call_error_to_string grpc_call_error_to_string_import
+typedef grpc_channel *(*grpc_cronet_secure_channel_create_type)(void *engine, const char *target, const grpc_channel_args *args, void *reserved);
+extern grpc_cronet_secure_channel_create_type grpc_cronet_secure_channel_create_import;
+#define grpc_cronet_secure_channel_create grpc_cronet_secure_channel_create_import
 typedef const grpc_auth_property *(*grpc_auth_property_iterator_next_type)(grpc_auth_property_iterator *it);
 extern grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
 #define grpc_auth_property_iterator_next grpc_auth_property_iterator_next_import
diff --git a/src/python/grpcio/grpc/beta/implementations.py b/src/python/grpcio/grpc/beta/implementations.py
index 742e94d..822f593 100644
--- a/src/python/grpcio/grpc/beta/implementations.py
+++ b/src/python/grpcio/grpc/beta/implementations.py
@@ -1,4 +1,4 @@
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -188,12 +188,13 @@
   Args:
     host: The name of the remote host to which to connect.
     port: The port of the remote host to which to connect.
+      If None only the 'host' part will be used.
 
   Returns:
     A Channel to the remote host through which RPCs may be conducted.
   """
   intermediary_low_channel = _intermediary_low.Channel(
-      '%s:%d' % (host, port), None)
+      '%s:%d' % (host, port) if port else host, None)
   return Channel(intermediary_low_channel._internal, intermediary_low_channel)  # pylint: disable=protected-access
 
 
@@ -203,13 +204,15 @@
   Args:
     host: The name of the remote host to which to connect.
     port: The port of the remote host to which to connect.
+      If None only the 'host' part will be used.
     channel_credentials: A ChannelCredentials.
 
   Returns:
     A secure Channel to the remote host through which RPCs may be conducted.
   """
   intermediary_low_channel = _intermediary_low.Channel(
-      '%s:%d' % (host, port), channel_credentials._low_credentials)
+      '%s:%d' % (host, port) if port else host,
+      channel_credentials._low_credentials)
   return Channel(intermediary_low_channel._internal, intermediary_low_channel)  # pylint: disable=protected-access
 
 
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index dab6253..162191b 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -95,6 +95,7 @@
   'src/core/lib/iomgr/endpoint_pair_posix.c',
   'src/core/lib/iomgr/endpoint_pair_windows.c',
   'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+  'src/core/lib/iomgr/ev_poll_posix.c',
   'src/core/lib/iomgr/ev_posix.c',
   'src/core/lib/iomgr/exec_ctx.c',
   'src/core/lib/iomgr/executor.c',
@@ -222,8 +223,11 @@
   'src/core/ext/client_config/uri_parser.c',
   'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
   'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+  'src/core/ext/transport/cronet/client/secure/cronet_channel_create.c',
+  'src/core/ext/transport/cronet/transport/cronet_api_dummy.c',
+  'src/core/ext/transport/cronet/transport/cronet_transport.c',
   'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
-  'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
+  'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c',
   'third_party/nanopb/pb_common.c',
   'third_party/nanopb/pb_decode.c',
   'third_party/nanopb/pb_encode.c',
diff --git a/src/python/grpcio/grpc_version.py b/src/python/grpcio/grpc_version.py
index 873b4e2..0c13104 100644
--- a/src/python/grpcio/grpc_version.py
+++ b/src/python/grpcio/grpc_version.py
@@ -29,4 +29,4 @@
 
 # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_version.py.template`!!!
 
-VERSION='0.14.0.dev0'
+VERSION='0.15.0.dev0'
diff --git a/src/python/grpcio/precompiled.py b/src/python/grpcio/precompiled.py
deleted file mode 100644
index b6aa7fc..0000000
--- a/src/python/grpcio/precompiled.py
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright 2015, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import os
-import platform
-import shutil
-import sys
-import sysconfig
-
-import setuptools
-
-import commands
-import grpc_version
-
-try:
-  from urllib2 import urlopen
-except ImportError:
-  from urllib.request import urlopen
-
-PYTHON_STEM = os.path.dirname(os.path.abspath(__file__))
-BINARIES_REPOSITORY = os.environ.get(
-    'GRPC_PYTHON_BINARIES_REPOSITORY',
-    'https://storage.googleapis.com/grpc-precompiled-binaries/python')
-USE_PRECOMPILED_BINARIES = bool(int(os.environ.get(
-    'GRPC_PYTHON_USE_PRECOMPILED_BINARIES', '1')))
-
-def _tagged_ext_name(base):
-  uname = platform.uname()
-  tags = (
-      grpc_version.VERSION,
-      'py{}'.format(sysconfig.get_python_version()),
-      uname[0],
-      uname[4],
-  )
-  ucs = 'ucs{}'.format(sysconfig.get_config_var('Py_UNICODE_SIZE'))
-  return '{base}-{tags}-{ucs}'.format(
-      base=base, tags='-'.join(tags), ucs=ucs)
-
-
-class BuildTaggedExt(setuptools.Command):
-
-  description = 'build the gRPC tagged extensions'
-  user_options = []
-
-  def initialize_options(self):
-    # distutils requires this override.
-    pass
-
-  def finalize_options(self):
-    # distutils requires this override.
-    pass
-
-  def run(self):
-    if 'linux' in sys.platform:
-      self.run_command('build_ext')
-      try:
-        os.makedirs('dist/')
-      except OSError:
-        pass
-      shutil.copyfile(
-          os.path.join(PYTHON_STEM, 'grpc/_cython/cygrpc.so'),
-          'dist/{}.so'.format(_tagged_ext_name('cygrpc')))
-    else:
-      sys.stderr.write('nothing to do for build_tagged_ext\n')
-
-
-def update_setup_arguments(setup_arguments):
-  if not USE_PRECOMPILED_BINARIES:
-    sys.stderr.write('not using precompiled extension')
-    return
-  url = '{}/{}.so'.format(BINARIES_REPOSITORY, _tagged_ext_name('cygrpc'))
-  target_path = os.path.join(PYTHON_STEM, 'grpc/_cython/cygrpc.so')
-  try:
-    extension = urlopen(url).read()
-  except:
-    sys.stderr.write(
-        'could not download precompiled extension: {}\n'.format(url))
-    return
-  try:
-    with open(target_path, 'w') as target:
-      target.write(extension)
-    setup_arguments['ext_modules'] = []
-  except:
-    sys.stderr.write(
-        'could not write precompiled extension to directory: {} -> {}\n'
-            .format(url, target_path))
-    return
-  setup_arguments['package_data']['grpc._cython'].append('cygrpc.so')
diff --git a/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py b/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py
index 3dc3042..7466f88 100644
--- a/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py
+++ b/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py
@@ -59,11 +59,12 @@
 
 class _ServicerMethods(object):
 
-  def __init__(self, test_pb2):
+  def __init__(self, response_pb2, payload_pb2):
     self._condition = threading.Condition()
     self._paused = False
     self._fail = False
-    self._test_pb2 = test_pb2
+    self._response_pb2 = response_pb2
+    self._payload_pb2 = payload_pb2
 
   @contextlib.contextmanager
   def pause(self):  # pylint: disable=invalid-name
@@ -90,22 +91,22 @@
         self._condition.wait()
 
   def UnaryCall(self, request, unused_rpc_context):
-    response = self._test_pb2.SimpleResponse()
-    response.payload.payload_type = self._test_pb2.COMPRESSABLE
+    response = self._response_pb2.SimpleResponse()
+    response.payload.payload_type = self._payload_pb2.COMPRESSABLE
     response.payload.payload_compressable = 'a' * request.response_size
     self._control()
     return response
 
   def StreamingOutputCall(self, request, unused_rpc_context):
     for parameter in request.response_parameters:
-      response = self._test_pb2.StreamingOutputCallResponse()
-      response.payload.payload_type = self._test_pb2.COMPRESSABLE
+      response = self._response_pb2.StreamingOutputCallResponse()
+      response.payload.payload_type = self._payload_pb2.COMPRESSABLE
       response.payload.payload_compressable = 'a' * parameter.size
       self._control()
       yield response
 
   def StreamingInputCall(self, request_iter, unused_rpc_context):
-    response = self._test_pb2.StreamingInputCallResponse()
+    response = self._response_pb2.StreamingInputCallResponse()
     aggregated_payload_size = 0
     for request in request_iter:
       aggregated_payload_size += len(request.payload.payload_compressable)
@@ -116,8 +117,8 @@
   def FullDuplexCall(self, request_iter, unused_rpc_context):
     for request in request_iter:
       for parameter in request.response_parameters:
-        response = self._test_pb2.StreamingOutputCallResponse()
-        response.payload.payload_type = self._test_pb2.COMPRESSABLE
+        response = self._response_pb2.StreamingOutputCallResponse()
+        response.payload.payload_type = self._payload_pb2.COMPRESSABLE
         response.payload.payload_compressable = 'a' * parameter.size
         self._control()
         yield response
@@ -126,8 +127,8 @@
     responses = []
     for request in request_iter:
       for parameter in request.response_parameters:
-        response = self._test_pb2.StreamingOutputCallResponse()
-        response.payload.payload_type = self._test_pb2.COMPRESSABLE
+        response = self._response_pb2.StreamingOutputCallResponse()
+        response.payload.payload_type = self._payload_pb2.COMPRESSABLE
         response.payload.payload_compressable = 'a' * parameter.size
         self._control()
         responses.append(response)
@@ -136,23 +137,25 @@
 
 
 @contextlib.contextmanager
-def _CreateService(test_pb2):
+def _CreateService(service_pb2, response_pb2, payload_pb2):
   """Provides a servicer backend and a stub.
 
   The servicer is just the implementation of the actual servicer passed to the
   face player of the python RPC implementation; the two are detached.
 
   Args:
-    test_pb2: The test_pb2 module generated by this test.
+    service_pb2: The service_pb2 module generated by this test.
+    response_pb2: The response_pb2 module generated by this test
+    payload_pb2: The payload_pb2 module generated by this test
 
   Yields:
     A (servicer_methods, stub) pair where servicer_methods is the back-end of
       the service bound to the stub and and stub is the stub on which to invoke
       RPCs.
   """
-  servicer_methods = _ServicerMethods(test_pb2)
+  servicer_methods = _ServicerMethods(response_pb2, payload_pb2)
 
-  class Servicer(getattr(test_pb2, SERVICER_IDENTIFIER)):
+  class Servicer(getattr(service_pb2, SERVICER_IDENTIFIER)):
 
     def UnaryCall(self, request, context):
       return servicer_methods.UnaryCall(request, context)
@@ -170,55 +173,52 @@
       return servicer_methods.HalfDuplexCall(request_iter, context)
 
   servicer = Servicer()
-  server = getattr(test_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
+  server = getattr(service_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
   port = server.add_insecure_port('[::]:0')
   server.start()
   channel = implementations.insecure_channel('localhost', port)
-  stub = getattr(test_pb2, STUB_FACTORY_IDENTIFIER)(channel)
-  yield servicer_methods, stub
+  stub = getattr(service_pb2, STUB_FACTORY_IDENTIFIER)(channel)
+  yield (servicer_methods, stub)
   server.stop(0)
 
 
 @contextlib.contextmanager
-def _CreateIncompleteService(test_pb2):
+def _CreateIncompleteService(service_pb2):
   """Provides a servicer backend that fails to implement methods and its stub.
 
   The servicer is just the implementation of the actual servicer passed to the
   face player of the python RPC implementation; the two are detached.
-
   Args:
-    test_pb2: The test_pb2 module generated by this test.
-
+    service_pb2: The service_pb2 module generated by this test.
   Yields:
     A (servicer_methods, stub) pair where servicer_methods is the back-end of
       the service bound to the stub and and stub is the stub on which to invoke
       RPCs.
   """
-  servicer_methods = _ServicerMethods(test_pb2)
 
-  class Servicer(getattr(test_pb2, SERVICER_IDENTIFIER)):
+  class Servicer(getattr(service_pb2, SERVICER_IDENTIFIER)):
     pass
 
   servicer = Servicer()
-  server = getattr(test_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
+  server = getattr(service_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
   port = server.add_insecure_port('[::]:0')
   server.start()
   channel = implementations.insecure_channel('localhost', port)
-  stub = getattr(test_pb2, STUB_FACTORY_IDENTIFIER)(channel)
-  yield servicer_methods, stub
+  stub = getattr(service_pb2, STUB_FACTORY_IDENTIFIER)(channel)
+  yield None, stub
   server.stop(0)
 
 
-def _streaming_input_request_iterator(test_pb2):
+def _streaming_input_request_iterator(request_pb2, payload_pb2):
   for _ in range(3):
-    request = test_pb2.StreamingInputCallRequest()
-    request.payload.payload_type = test_pb2.COMPRESSABLE
+    request = request_pb2.StreamingInputCallRequest()
+    request.payload.payload_type = payload_pb2.COMPRESSABLE
     request.payload.payload_compressable = 'a'
     yield request
 
 
-def _streaming_output_request(test_pb2):
-  request = test_pb2.StreamingOutputCallRequest()
+def _streaming_output_request(request_pb2):
+  request = request_pb2.StreamingOutputCallRequest()
   sizes = [1, 2, 3]
   request.response_parameters.add(size=sizes[0], interval_us=0)
   request.response_parameters.add(size=sizes[1], interval_us=0)
@@ -226,11 +226,11 @@
   return request
 
 
-def _full_duplex_request_iterator(test_pb2):
-  request = test_pb2.StreamingOutputCallRequest()
+def _full_duplex_request_iterator(request_pb2):
+  request = request_pb2.StreamingOutputCallRequest()
   request.response_parameters.add(size=1, interval_us=0)
   yield request
-  request = test_pb2.StreamingOutputCallRequest()
+  request = request_pb2.StreamingOutputCallRequest()
   request.response_parameters.add(size=2, interval_us=0)
   request.response_parameters.add(size=3, interval_us=0)
   yield request
@@ -250,8 +250,6 @@
     protoc_command = 'protoc'
     protoc_plugin_filename = distutils.spawn.find_executable(
         'grpc_python_plugin')
-    test_proto_filename = pkg_resources.resource_filename(
-        'tests.protoc_plugin', 'protoc_plugin_test.proto')
     if not os.path.isfile(protoc_command):
       # Assume that if we haven't built protoc that it's on the system.
       protoc_command = 'protoc'
@@ -259,19 +257,44 @@
     # Ensure that the output directory exists.
     self.outdir = tempfile.mkdtemp()
 
+    # Find all proto files
+    paths = []
+    root_dir = os.path.dirname(os.path.realpath(__file__))
+    proto_dir = os.path.join(root_dir, 'protos')
+    for walk_root, _, filenames in os.walk(proto_dir):
+      for filename in filenames:
+        if filename.endswith('.proto'):
+          path = os.path.join(walk_root, filename)
+          paths.append(path)
+
     # Invoke protoc with the plugin.
     cmd = [
         protoc_command,
         '--plugin=protoc-gen-python-grpc=%s' % protoc_plugin_filename,
-        '-I .',
+        '-I %s' % root_dir,
         '--python_out=%s' % self.outdir,
-        '--python-grpc_out=%s' % self.outdir,
-        os.path.basename(test_proto_filename),
-    ]
+        '--python-grpc_out=%s' % self.outdir
+    ] + paths
     subprocess.check_call(' '.join(cmd), shell=True, env=os.environ,
-                          cwd=os.path.dirname(test_proto_filename))
+                          cwd=os.path.dirname(os.path.realpath(__file__)))
+
+    # Generated proto directories dont include __init__.py, but
+    # these are needed for python package resolution
+    for walk_root, _, _ in os.walk(os.path.join(self.outdir, 'protos')):
+      path = os.path.join(walk_root, '__init__.py')
+      open(path, 'a').close()
+
     sys.path.insert(0, self.outdir)
 
+    import protos.payload.test_payload_pb2 as payload_pb2  # pylint: disable=g-import-not-at-top
+    import protos.requests.r.test_requests_pb2 as request_pb2  # pylint: disable=g-import-not-at-top
+    import protos.responses.test_responses_pb2 as response_pb2  # pylint: disable=g-import-not-at-top
+    import protos.service.test_service_pb2 as service_pb2  # pylint: disable=g-import-not-at-top
+    self._payload_pb2 = payload_pb2
+    self._request_pb2 = request_pb2
+    self._response_pb2 = response_pb2
+    self._service_pb2 = service_pb2
+
   def tearDown(self):
     try:
       shutil.rmtree(self.outdir)
@@ -282,43 +305,40 @@
 
   def testImportAttributes(self):
     # check that we can access the generated module and its members.
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    self.assertIsNotNone(getattr(test_pb2, SERVICER_IDENTIFIER, None))
-    self.assertIsNotNone(getattr(test_pb2, STUB_IDENTIFIER, None))
-    self.assertIsNotNone(getattr(test_pb2, SERVER_FACTORY_IDENTIFIER, None))
-    self.assertIsNotNone(getattr(test_pb2, STUB_FACTORY_IDENTIFIER, None))
+    self.assertIsNotNone(
+        getattr(self._service_pb2, SERVICER_IDENTIFIER, None))
+    self.assertIsNotNone(
+        getattr(self._service_pb2, STUB_IDENTIFIER, None))
+    self.assertIsNotNone(
+        getattr(self._service_pb2, SERVER_FACTORY_IDENTIFIER, None))
+    self.assertIsNotNone(
+        getattr(self._service_pb2, STUB_FACTORY_IDENTIFIER, None))
 
   def testUpDown(self):
-    import protoc_plugin_test_pb2 as test_pb2
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (servicer, stub):
-      request = test_pb2.SimpleRequest(response_size=13)
+    with _CreateService(
+        self._service_pb2, self._response_pb2, self._payload_pb2):
+      self._request_pb2.SimpleRequest(response_size=13)
 
   def testIncompleteServicer(self):
-    import protoc_plugin_test_pb2 as test_pb2
-    moves.reload_module(test_pb2)
-    with _CreateIncompleteService(test_pb2) as (servicer, stub):
-      request = test_pb2.SimpleRequest(response_size=13)
+    with _CreateIncompleteService(self._service_pb2) as (_, stub):
+      request = self._request_pb2.SimpleRequest(response_size=13)
       try:
-        response = stub.UnaryCall(request, test_constants.LONG_TIMEOUT)
+        stub.UnaryCall(request, test_constants.LONG_TIMEOUT)
       except face.AbortionError as error:
         self.assertEqual(interfaces.StatusCode.UNIMPLEMENTED, error.code)
 
   def testUnaryCall(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
-      request = test_pb2.SimpleRequest(response_size=13)
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = self._request_pb2.SimpleRequest(response_size=13)
       response = stub.UnaryCall(request, test_constants.LONG_TIMEOUT)
     expected_response = methods.UnaryCall(request, 'not a real context!')
     self.assertEqual(expected_response, response)
 
   def testUnaryCallFuture(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request = test_pb2.SimpleRequest(response_size=13)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = self._request_pb2.SimpleRequest(response_size=13)
       # Check that the call does not block waiting for the server to respond.
       with methods.pause():
         response_future = stub.UnaryCall.future(
@@ -328,10 +348,9 @@
     self.assertEqual(expected_response, response)
 
   def testUnaryCallFutureExpired(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
-      request = test_pb2.SimpleRequest(response_size=13)
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = self._request_pb2.SimpleRequest(response_size=13)
       with methods.pause():
         response_future = stub.UnaryCall.future(
             request, test_constants.SHORT_TIMEOUT)
@@ -339,30 +358,27 @@
           response_future.result()
 
   def testUnaryCallFutureCancelled(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request = test_pb2.SimpleRequest(response_size=13)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = self._request_pb2.SimpleRequest(response_size=13)
       with methods.pause():
         response_future = stub.UnaryCall.future(request, 1)
         response_future.cancel()
         self.assertTrue(response_future.cancelled())
 
   def testUnaryCallFutureFailed(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request = test_pb2.SimpleRequest(response_size=13)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = self._request_pb2.SimpleRequest(response_size=13)
       with methods.fail():
         response_future = stub.UnaryCall.future(
             request, test_constants.LONG_TIMEOUT)
         self.assertIsNotNone(response_future.exception())
 
   def testStreamingOutputCall(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request = _streaming_output_request(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = _streaming_output_request(self._request_pb2)
       responses = stub.StreamingOutputCall(
           request, test_constants.LONG_TIMEOUT)
       expected_responses = methods.StreamingOutputCall(
@@ -372,10 +388,9 @@
         self.assertEqual(expected_response, response)
 
   def testStreamingOutputCallExpired(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request = _streaming_output_request(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = _streaming_output_request(self._request_pb2)
       with methods.pause():
         responses = stub.StreamingOutputCall(
             request, test_constants.SHORT_TIMEOUT)
@@ -383,10 +398,9 @@
           list(responses)
 
   def testStreamingOutputCallCancelled(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request = _streaming_output_request(test_pb2)
-    with _CreateService(test_pb2) as (unused_methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = _streaming_output_request(self._request_pb2)
       responses = stub.StreamingOutputCall(
           request, test_constants.LONG_TIMEOUT)
       next(responses)
@@ -395,10 +409,9 @@
         next(responses)
 
   def testStreamingOutputCallFailed(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request = _streaming_output_request(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request = _streaming_output_request(self._request_pb2)
       with methods.fail():
         responses = stub.StreamingOutputCall(request, 1)
         self.assertIsNotNone(responses)
@@ -406,36 +419,38 @@
           next(responses)
 
   def testStreamingInputCall(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       response = stub.StreamingInputCall(
-          _streaming_input_request_iterator(test_pb2),
+          _streaming_input_request_iterator(
+              self._request_pb2, self._payload_pb2),
           test_constants.LONG_TIMEOUT)
     expected_response = methods.StreamingInputCall(
-        _streaming_input_request_iterator(test_pb2), 'not a real RpcContext!')
+        _streaming_input_request_iterator(self._request_pb2, self._payload_pb2),
+        'not a real RpcContext!')
     self.assertEqual(expected_response, response)
 
   def testStreamingInputCallFuture(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       with methods.pause():
         response_future = stub.StreamingInputCall.future(
-            _streaming_input_request_iterator(test_pb2),
+            _streaming_input_request_iterator(
+                self._request_pb2, self._payload_pb2),
             test_constants.LONG_TIMEOUT)
       response = response_future.result()
     expected_response = methods.StreamingInputCall(
-        _streaming_input_request_iterator(test_pb2), 'not a real RpcContext!')
+        _streaming_input_request_iterator(self._request_pb2, self._payload_pb2),
+        'not a real RpcContext!')
     self.assertEqual(expected_response, response)
 
   def testStreamingInputCallFutureExpired(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       with methods.pause():
         response_future = stub.StreamingInputCall.future(
-            _streaming_input_request_iterator(test_pb2),
+            _streaming_input_request_iterator(
+                self._request_pb2, self._payload_pb2),
             test_constants.SHORT_TIMEOUT)
         with self.assertRaises(face.ExpirationError):
           response_future.result()
@@ -443,12 +458,12 @@
             response_future.exception(), face.ExpirationError)
 
   def testStreamingInputCallFutureCancelled(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       with methods.pause():
         response_future = stub.StreamingInputCall.future(
-            _streaming_input_request_iterator(test_pb2),
+            _streaming_input_request_iterator(
+                self._request_pb2, self._payload_pb2),
             test_constants.LONG_TIMEOUT)
         response_future.cancel()
         self.assertTrue(response_future.cancelled())
@@ -456,32 +471,32 @@
         response_future.result()
 
   def testStreamingInputCallFutureFailed(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       with methods.fail():
         response_future = stub.StreamingInputCall.future(
-            _streaming_input_request_iterator(test_pb2),
+            _streaming_input_request_iterator(
+                self._request_pb2, self._payload_pb2),
             test_constants.LONG_TIMEOUT)
         self.assertIsNotNone(response_future.exception())
 
   def testFullDuplexCall(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       responses = stub.FullDuplexCall(
-          _full_duplex_request_iterator(test_pb2), test_constants.LONG_TIMEOUT)
+          _full_duplex_request_iterator(self._request_pb2),
+          test_constants.LONG_TIMEOUT)
       expected_responses = methods.FullDuplexCall(
-          _full_duplex_request_iterator(test_pb2), 'not a real RpcContext!')
+          _full_duplex_request_iterator(self._request_pb2),
+          'not a real RpcContext!')
       for expected_response, response in moves.zip_longest(
           expected_responses, responses):
         self.assertEqual(expected_response, response)
 
   def testFullDuplexCallExpired(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request_iterator = _full_duplex_request_iterator(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    request_iterator = _full_duplex_request_iterator(self._request_pb2)
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       with methods.pause():
         responses = stub.FullDuplexCall(
             request_iterator, test_constants.SHORT_TIMEOUT)
@@ -489,10 +504,9 @@
           list(responses)
 
   def testFullDuplexCallCancelled(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
-      request_iterator = _full_duplex_request_iterator(test_pb2)
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
+      request_iterator = _full_duplex_request_iterator(self._request_pb2)
       responses = stub.FullDuplexCall(
           request_iterator, test_constants.LONG_TIMEOUT)
       next(responses)
@@ -501,10 +515,9 @@
         next(responses)
 
   def testFullDuplexCallFailed(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    request_iterator = _full_duplex_request_iterator(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    request_iterator = _full_duplex_request_iterator(self._request_pb2)
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       with methods.fail():
         responses = stub.FullDuplexCall(
             request_iterator, test_constants.LONG_TIMEOUT)
@@ -513,14 +526,13 @@
           next(responses)
 
   def testHalfDuplexCall(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       def half_duplex_request_iterator():
-        request = test_pb2.StreamingOutputCallRequest()
+        request = self._request_pb2.StreamingOutputCallRequest()
         request.response_parameters.add(size=1, interval_us=0)
         yield request
-        request = test_pb2.StreamingOutputCallRequest()
+        request = self._request_pb2.StreamingOutputCallRequest()
         request.response_parameters.add(size=2, interval_us=0)
         request.response_parameters.add(size=3, interval_us=0)
         yield request
@@ -533,8 +545,6 @@
         self.assertEqual(expected_response, response)
 
   def testHalfDuplexCallWedged(self):
-    import protoc_plugin_test_pb2 as test_pb2  # pylint: disable=g-import-not-at-top
-    moves.reload_module(test_pb2)
     condition = threading.Condition()
     wait_cell = [False]
     @contextlib.contextmanager
@@ -547,13 +557,14 @@
         wait_cell[0] = False
         condition.notify_all()
     def half_duplex_request_iterator():
-      request = test_pb2.StreamingOutputCallRequest()
+      request = self._request_pb2.StreamingOutputCallRequest()
       request.response_parameters.add(size=1, interval_us=0)
       yield request
       with condition:
         while wait_cell[0]:
           condition.wait()
-    with _CreateService(test_pb2) as (methods, stub):
+    with _CreateService(self._service_pb2, self._response_pb2,
+                        self._payload_pb2) as (methods, stub):
       with wait():
         responses = stub.HalfDuplexCall(
             half_duplex_request_iterator(), test_constants.SHORT_TIMEOUT)
@@ -563,5 +574,5 @@
 
 
 if __name__ == '__main__':
-  os.chdir(os.path.dirname(sys.argv[0]))
+  #os.chdir(os.path.dirname(sys.argv[0]))
   unittest.main(verbosity=2)
diff --git a/src/python/grpcio/tests/protoc_plugin/protoc_plugin_test.proto b/src/python/grpcio/tests/protoc_plugin/protoc_plugin_test.proto
deleted file mode 100644
index 6762a8e..0000000
--- a/src/python/grpcio/tests/protoc_plugin/protoc_plugin_test.proto
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright 2015, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// An integration test service that covers all the method signature permutations
-// of unary/streaming requests/responses.
-// This file is duplicated around the code base. See GitHub issue #526.
-syntax = "proto2";
-
-package grpc_protoc_plugin;
-
-enum PayloadType {
-  // Compressable text format.
-  COMPRESSABLE= 1;
-
-  // Uncompressable binary format.
-  UNCOMPRESSABLE = 2;
-
-  // Randomly chosen from all other formats defined in this enum.
-  RANDOM = 3;
-}
-
-message Payload {
-  required PayloadType payload_type = 1;
-  oneof payload_body {
-    string payload_compressable = 2;
-    bytes payload_uncompressable = 3;
-  }
-}
-
-message SimpleRequest {
-  // Desired payload type in the response from the server.
-  // If response_type is RANDOM, server randomly chooses one from other formats.
-  optional PayloadType response_type = 1 [default=COMPRESSABLE];
-
-  // Desired payload size in the response from the server.
-  // If response_type is COMPRESSABLE, this denotes the size before compression.
-  optional int32 response_size = 2;
-
-  // Optional input payload sent along with the request.
-  optional Payload payload = 3;
-}
-
-message SimpleResponse {
-  optional Payload payload = 1;
-}
-
-message StreamingInputCallRequest {
-  // Optional input payload sent along with the request.
-  optional Payload payload = 1;
-
-  // Not expecting any payload from the response.
-}
-
-message StreamingInputCallResponse {
-  // Aggregated size of payloads received from the client.
-  optional int32 aggregated_payload_size = 1;
-}
-
-message ResponseParameters {
-  // Desired payload sizes in responses from the server.
-  // If response_type is COMPRESSABLE, this denotes the size before compression.
-  required int32 size = 1;
-
-  // Desired interval between consecutive responses in the response stream in
-  // microseconds.
-  required int32 interval_us = 2;
-}
-
-message StreamingOutputCallRequest {
-  // Desired payload type in the response from the server.
-  // If response_type is RANDOM, the payload from each response in the stream
-  // might be of different types. This is to simulate a mixed type of payload
-  // stream.
-  optional PayloadType response_type = 1 [default=COMPRESSABLE];
-
-  repeated ResponseParameters response_parameters = 2;
-
-  // Optional input payload sent along with the request.
-  optional Payload payload = 3;
-}
-
-message StreamingOutputCallResponse {
-  optional Payload payload = 1;
-}
-
-service TestService {
-  // One request followed by one response.
-  // The server returns the client payload as-is.
-  rpc UnaryCall(SimpleRequest) returns (SimpleResponse);
-
-  // One request followed by a sequence of responses (streamed download).
-  // The server returns the payload with client desired type and sizes.
-  rpc StreamingOutputCall(StreamingOutputCallRequest)
-      returns (stream StreamingOutputCallResponse);
-
-  // A sequence of requests followed by one response (streamed upload).
-  // The server returns the aggregated size of client payload as the result.
-  rpc StreamingInputCall(stream StreamingInputCallRequest)
-      returns (StreamingInputCallResponse);
-
-  // A sequence of requests with each request served by the server immediately.
-  // As one request could lead to multiple responses, this interface
-  // demonstrates the idea of full duplexing.
-  rpc FullDuplexCall(stream StreamingOutputCallRequest)
-      returns (stream StreamingOutputCallResponse);
-
-  // A sequence of requests followed by a sequence of responses.
-  // The server buffers all the client requests and then serves them in order. A
-  // stream of responses are returned to the client when the server starts with
-  // first request.
-  rpc HalfDuplexCall(stream StreamingOutputCallRequest)
-      returns (stream StreamingOutputCallResponse);
-}
diff --git a/src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto b/src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto
new file mode 100644
index 0000000..457543a
--- /dev/null
+++ b/src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto
@@ -0,0 +1,51 @@
+// Copyright 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package grpc_protoc_plugin;
+
+enum PayloadType {
+  // Compressable text format.
+  COMPRESSABLE= 0;
+
+  // Uncompressable binary format.
+  UNCOMPRESSABLE = 1;
+
+  // Randomly chosen from all other formats defined in this enum.
+  RANDOM = 2;
+}
+
+message Payload {
+  PayloadType payload_type = 1;
+  oneof payload_body {
+    string payload_compressable = 2;
+    bytes payload_uncompressable = 3;
+  }
+}
diff --git a/src/python/grpcio/tests/protoc_plugin/protos/requests/r/test_requests.proto b/src/python/grpcio/tests/protoc_plugin/protos/requests/r/test_requests.proto
new file mode 100644
index 0000000..54105df
--- /dev/null
+++ b/src/python/grpcio/tests/protoc_plugin/protos/requests/r/test_requests.proto
@@ -0,0 +1,77 @@
+// Copyright 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+import "protos/payload/test_payload.proto";
+
+package grpc_protoc_plugin;
+
+message SimpleRequest {
+  // Desired payload type in the response from the server.
+  // If response_type is RANDOM, server randomly chooses one from other formats.
+  PayloadType response_type = 1;
+
+  // Desired payload size in the response from the server.
+  // If response_type is COMPRESSABLE, this denotes the size before compression.
+  int32 response_size = 2;
+
+  // input payload sent along with the request.
+  Payload payload = 3;
+}
+
+message StreamingInputCallRequest {
+  // input payload sent along with the request.
+  Payload payload = 1;
+
+  // Not expecting any payload from the response.
+}
+
+message ResponseParameters {
+  // Desired payload sizes in responses from the server.
+  // If response_type is COMPRESSABLE, this denotes the size before compression.
+  int32 size = 1;
+
+  // Desired interval between consecutive responses in the response stream in
+  // microseconds.
+  int32 interval_us = 2;
+}
+
+message StreamingOutputCallRequest {
+  // Desired payload type in the response from the server.
+  // If response_type is RANDOM, the payload from each response in the stream
+  // might be of different types. This is to simulate a mixed type of payload
+  // stream.
+  PayloadType response_type = 1;
+
+  repeated ResponseParameters response_parameters = 2;
+
+  // input payload sent along with the request.
+  Payload payload = 3;
+}
diff --git a/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto b/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
new file mode 100644
index 0000000..734fbda
--- /dev/null
+++ b/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
@@ -0,0 +1,47 @@
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+import "protos/payload/test_payload.proto";
+
+package grpc_protoc_plugin;
+
+message SimpleResponse {
+  Payload payload = 1;
+}
+
+message StreamingInputCallResponse {
+  // Aggregated size of payloads received from the client.
+  int32 aggregated_payload_size = 1;
+}
+
+message StreamingOutputCallResponse {
+  Payload payload = 1;
+}
diff --git a/src/python/grpcio/tests/protoc_plugin/protos/service/test_service.proto b/src/python/grpcio/tests/protoc_plugin/protos/service/test_service.proto
new file mode 100644
index 0000000..fe715ee
--- /dev/null
+++ b/src/python/grpcio/tests/protoc_plugin/protos/service/test_service.proto
@@ -0,0 +1,64 @@
+// Copyright 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+import "protos/requests/r/test_requests.proto";
+import "protos/responses/test_responses.proto";
+
+package grpc_protoc_plugin;
+
+service TestService {
+  // One request followed by one response.
+  // The server returns the client payload as-is.
+  rpc UnaryCall(SimpleRequest) returns (SimpleResponse);
+
+  // One request followed by a sequence of responses (streamed download).
+  // The server returns the payload with client desired type and sizes.
+  rpc StreamingOutputCall(StreamingOutputCallRequest)
+      returns (stream StreamingOutputCallResponse);
+
+  // A sequence of requests followed by one response (streamed upload).
+  // The server returns the aggregated size of client payload as the result.
+  rpc StreamingInputCall(stream StreamingInputCallRequest)
+      returns (StreamingInputCallResponse);
+
+  // A sequence of requests with each request served by the server immediately.
+  // As one request could lead to multiple responses, this interface
+  // demonstrates the idea of full duplexing.
+  rpc FullDuplexCall(stream StreamingOutputCallRequest)
+      returns (stream StreamingOutputCallResponse);
+
+  // A sequence of requests followed by a sequence of responses.
+  // The server buffers all the client requests and then serves them in order. A
+  // stream of responses are returned to the client when the server starts with
+  // first request.
+  rpc HalfDuplexCall(stream StreamingOutputCallRequest)
+      returns (stream StreamingOutputCallResponse);
+}
diff --git a/src/python/grpcio/tests/qps/benchmark_client.py b/src/python/grpcio/tests/qps/benchmark_client.py
index eed0b0c..b372ea0 100644
--- a/src/python/grpcio/tests/qps/benchmark_client.py
+++ b/src/python/grpcio/tests/qps/benchmark_client.py
@@ -39,6 +39,7 @@
 from concurrent import futures
 
 from grpc.beta import implementations
+from grpc.framework.interfaces.face import face
 from src.proto.grpc.testing import messages_pb2
 from src.proto.grpc.testing import services_pb2
 from tests.unit import resources
@@ -141,10 +142,10 @@
     self._stub = None
 
 
-class StreamingAsyncBenchmarkClient(BenchmarkClient):
+class StreamingSyncBenchmarkClient(BenchmarkClient):
 
   def __init__(self, server, config, hist):
-    super(StreamingAsyncBenchmarkClient, self).__init__(server, config, hist)
+    super(StreamingSyncBenchmarkClient, self).__init__(server, config, hist)
     self._is_streaming = False
     self._pool = futures.ThreadPoolExecutor(max_workers=1)
     # Use a thread-safe queue to put requests on the stream
@@ -167,12 +168,12 @@
   def _request_stream(self):
     self._is_streaming = True
     if self._generic:
-      response_stream = self._stub.inline_stream_stream(
-          'grpc.testing.BenchmarkService', 'StreamingCall',
-          self._request_generator(), _TIMEOUT)
+      stream_callable = self._stub.stream_stream(
+          'grpc.testing.BenchmarkService', 'StreamingCall')
     else:
-      response_stream = self._stub.StreamingCall(self._request_generator(),
-                                                 _TIMEOUT)
+      stream_callable = self._stub.StreamingCall
+
+    response_stream = stream_callable(self._request_generator(), _TIMEOUT)
     for _ in response_stream:
       end_time = time.time()
       self._handle_response(end_time - self._send_time_queue.get_nowait())
@@ -184,3 +185,48 @@
         yield request
       except queue.Empty:
         pass
+
+
+class AsyncReceiver(face.ResponseReceiver):
+  """Receiver for async stream responses."""
+
+  def __init__(self, send_time_queue, response_handler):
+    self._send_time_queue = send_time_queue
+    self._response_handler = response_handler
+
+  def initial_metadata(self, initial_mdetadata):
+    pass
+
+  def response(self, response):
+    end_time = time.time()
+    self._response_handler(end_time - self._send_time_queue.get_nowait())
+
+  def complete(self, terminal_metadata, code, details):
+    pass
+
+
+class StreamingAsyncBenchmarkClient(BenchmarkClient):
+
+  def __init__(self, server, config, hist):
+    super(StreamingAsyncBenchmarkClient, self).__init__(server, config, hist)
+    self._send_time_queue = queue.Queue()
+    self._receiver = AsyncReceiver(self._send_time_queue, self._handle_response)
+    self._rendezvous = None
+
+  def send_request(self):
+    if self._rendezvous is not None:
+      self._send_time_queue.put(time.time())
+      self._rendezvous.consume(self._request)
+
+  def start(self):
+    if self._generic:
+      stream_callable = self._stub.stream_stream(
+          'grpc.testing.BenchmarkService', 'StreamingCall')
+    else:
+      stream_callable = self._stub.StreamingCall
+    self._rendezvous = stream_callable.event(
+        self._receiver, lambda *args: None, _TIMEOUT)
+
+  def stop(self):
+    self._rendezvous.terminate()
+    self._rendezvous = None
diff --git a/src/python/grpcio/tests/qps/client_runner.py b/src/python/grpcio/tests/qps/client_runner.py
index a36c30c..1ede7d2 100644
--- a/src/python/grpcio/tests/qps/client_runner.py
+++ b/src/python/grpcio/tests/qps/client_runner.py
@@ -89,9 +89,9 @@
 
   def start(self):
     self._is_running = True
+    self._client.start()
     for _ in xrange(self._request_count):
       self._client.send_request()
-    self._client.start()
 
   def stop(self):
     self._is_running = False
diff --git a/src/python/grpcio/tests/qps/worker_server.py b/src/python/grpcio/tests/qps/worker_server.py
index 0b3acc1..1f9af54 100644
--- a/src/python/grpcio/tests/qps/worker_server.py
+++ b/src/python/grpcio/tests/qps/worker_server.py
@@ -146,8 +146,9 @@
       if config.rpc_type == control_pb2.UNARY:
         client = benchmark_client.UnarySyncBenchmarkClient(
             server, config, qps_data)
-      else:
-        raise Exception('STREAMING SYNC client not supported')
+      elif config.rpc_type == control_pb2.STREAMING:
+        client = benchmark_client.StreamingSyncBenchmarkClient(
+            server, config, qps_data)
     elif config.client_type == control_pb2.ASYNC_CLIENT:
       if config.rpc_type == control_pb2.UNARY:
         client = benchmark_client.UnaryAsyncBenchmarkClient(
diff --git a/tools/jenkins/docker_run_tests.sh b/src/python/grpcio/tests/stress/__init__.py
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to src/python/grpcio/tests/stress/__init__.py
index 2fc66c2..100a624
--- a/tools/jenkins/docker_run_tests.sh
+++ b/src/python/grpcio/tests/stress/__init__.py
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +26,3 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
-
-set -e
-
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
diff --git a/src/python/grpcio/tests/stress/client.py b/src/python/grpcio/tests/stress/client.py
new file mode 100644
index 0000000..e2e0167
--- /dev/null
+++ b/src/python/grpcio/tests/stress/client.py
@@ -0,0 +1,135 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Entry point for running stress tests."""
+
+import argparse
+import Queue
+import threading
+
+from grpc.beta import implementations
+from src.proto.grpc.testing import metrics_pb2
+from src.proto.grpc.testing import test_pb2
+
+from tests.interop import methods
+from tests.qps import histogram
+from tests.stress import metrics_server
+from tests.stress import test_runner
+
+
+def _args():
+  parser = argparse.ArgumentParser(description='gRPC Python stress test client')
+  parser.add_argument(
+      '--server_addresses',
+      help='comma seperated list of hostname:port to run servers on',
+      default='localhost:8080', type=str)
+  parser.add_argument(
+      '--test_cases',
+      help='comma seperated list of testcase:weighting of tests to run',
+      default='large_unary:100',
+      type=str)
+  parser.add_argument(
+      '--test_duration_secs',
+      help='number of seconds to run the stress test',
+      default=-1, type=int)
+  parser.add_argument(
+      '--num_channels_per_server',
+      help='number of channels per server',
+      default=1, type=int)
+  parser.add_argument(
+      '--num_stubs_per_channel',
+      help='number of stubs to create per channel',
+      default=1, type=int)
+  parser.add_argument(
+      '--metrics_port',
+      help='the port to listen for metrics requests on',
+      default=8081, type=int)
+  return parser.parse_args()
+
+
+def _test_case_from_arg(test_case_arg):
+  for test_case in methods.TestCase:
+    if test_case_arg == test_case.value:
+      return test_case
+  else:
+    raise ValueError('No test case {}!'.format(test_case_arg))
+
+
+def _parse_weighted_test_cases(test_case_args):
+  weighted_test_cases = {}
+  for test_case_arg in test_case_args.split(','):
+    name, weight = test_case_arg.split(':', 1)
+    test_case = _test_case_from_arg(name)
+    weighted_test_cases[test_case] = int(weight)
+  return weighted_test_cases
+
+
+def run_test(args):
+  test_cases = _parse_weighted_test_cases(args.test_cases)
+  test_servers = args.server_addresses.split(',')
+  # Propagate any client exceptions with a queue
+  exception_queue = Queue.Queue()
+  stop_event = threading.Event()
+  hist = histogram.Histogram(1, 1)
+  runners = []
+
+  server = metrics_pb2.beta_create_MetricsService_server(
+      metrics_server.MetricsServer(hist))
+  server.add_insecure_port('[::]:{}'.format(args.metrics_port))
+  server.start()
+
+  for test_server in test_servers:
+    host, port = test_server.split(':', 1)
+    for _ in xrange(args.num_channels_per_server):
+      channel = implementations.insecure_channel(host, int(port))
+      for _ in xrange(args.num_stubs_per_channel):
+        stub = test_pb2.beta_create_TestService_stub(channel)
+        runner = test_runner.TestRunner(stub, test_cases, hist,
+                                        exception_queue, stop_event)
+        runners.append(runner)
+
+  for runner in runners:
+    runner.start()
+  try:
+    timeout_secs = args.test_duration_secs
+    if timeout_secs < 0:
+      timeout_secs = None
+    raise exception_queue.get(block=True, timeout=timeout_secs)
+  except Queue.Empty:
+    # No exceptions thrown, success
+    pass
+  finally:
+    stop_event.set()
+    for runner in runners:
+      runner.join()
+      runner = None
+    server.stop(0)
+
+if __name__ == '__main__':
+  run_test(_args())
diff --git a/tools/jenkins/docker_run_tests.sh b/src/python/grpcio/tests/stress/metrics_server.py
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to src/python/grpcio/tests/stress/metrics_server.py
index 2fc66c2..b994e46
--- a/tools/jenkins/docker_run_tests.sh
+++ b/src/python/grpcio/tests/stress/metrics_server.py
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +26,35 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+"""MetricsService for publishing stress test qps data."""
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+import time
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+from src.proto.grpc.testing import metrics_pb2
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+GAUGE_NAME = 'python_overall_qps'
 
-mkdir -p reports
 
-$POST_GIT_STEP
+class MetricsServer(metrics_pb2.BetaMetricsServiceServicer):
 
-exit_code=0
+  def __init__(self, histogram):
+    self._start_time = time.time()
+    self._histogram = histogram
 
-$RUN_TESTS_COMMAND || exit_code=$?
+  def _get_qps(self):
+    count = self._histogram.get_data().count
+    delta = time.time() - self._start_time
+    self._histogram.reset()
+    self._start_time = time.time()
+    return int(count/delta)
 
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
+  def GetAllGauges(self, request, context):
+    qps = self._get_qps()
+    return [metrics_pb2.GaugeResponse(name=GAUGE_NAME, long_value=qps)]
 
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+  def GetGauge(self, request, context):
+    if request.name != GAUGE_NAME:
+      raise Exception('Gauge {} does not exist'.format(request.name))
+    qps = self._get_qps()
+    return metrics_pb2.GaugeResponse(name=GAUGE_NAME, long_value=qps)
diff --git a/src/python/grpcio/tests/stress/test_runner.py b/src/python/grpcio/tests/stress/test_runner.py
new file mode 100644
index 0000000..88f1372
--- /dev/null
+++ b/src/python/grpcio/tests/stress/test_runner.py
@@ -0,0 +1,73 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Thread that sends random weighted requests on a TestService stub."""
+
+import random
+import threading
+import time
+import traceback
+
+
+def _weighted_test_case_generator(weighted_cases):
+  weight_sum = sum(weighted_cases.itervalues())
+
+  while True:
+    val = random.uniform(0, weight_sum)
+    partial_sum = 0
+    for case in weighted_cases:
+      partial_sum += weighted_cases[case]
+      if val <= partial_sum:
+        yield case
+        break
+
+
+class TestRunner(threading.Thread):
+
+  def __init__(self, stub, test_cases, hist, exception_queue, stop_event):
+    super(TestRunner, self).__init__()
+    self._exception_queue = exception_queue
+    self._stop_event = stop_event
+    self._stub = stub
+    self._test_cases = _weighted_test_case_generator(test_cases)
+    self._histogram = hist
+
+  def run(self):
+    while not self._stop_event.is_set():
+      try:
+        test_case = next(self._test_cases)
+        start_time = time.time()
+        test_case.test_interoperability(self._stub, None)
+        end_time = time.time()
+        self._histogram.add((end_time - start_time)*1e9)
+      except Exception as e:
+        traceback.print_exc()
+        self._exception_queue.put(
+            Exception("An exception occured during test {}"
+                      .format(test_case), e))
diff --git a/src/python/grpcio/tests/unit/_cython/_channel_test.py b/src/python/grpcio/tests/unit/_cython/_channel_test.py
index b414f8e..931cd90 100644
--- a/src/python/grpcio/tests/unit/_cython/_channel_test.py
+++ b/src/python/grpcio/tests/unit/_cython/_channel_test.py
@@ -33,8 +33,7 @@
 
 from grpc._cython import cygrpc
 
-# TODO(nathaniel): This should be at least one hundred. Why not one thousand?
-_PARALLELISM = 4
+from tests.unit.framework.common import test_constants
 
 
 def _channel_and_completion_queue():
@@ -61,7 +60,7 @@
 def _in_parallel(behavior, arguments):
   threads = tuple(
       threading.Thread(target=behavior, args=arguments)
-      for _ in range(_PARALLELISM))
+      for _ in range(test_constants.PARALLELISM))
   for thread in threads:
     thread.start()
   for thread in threads:
diff --git a/src/ruby/.rubocop.yml b/src/ruby/.rubocop.yml
index d13ce42..34bb477 100644
--- a/src/ruby/.rubocop.yml
+++ b/src/ruby/.rubocop.yml
@@ -11,10 +11,10 @@
     - 'pb/test/**/*'
 
 Metrics/CyclomaticComplexity:
-  Max: 8
+  Max: 9
 
 Metrics/PerceivedComplexity:
-  Max: 8
+  Max: 9
 
 Metrics/ClassLength:
   Max: 250
diff --git a/src/ruby/ext/grpc/extconf.rb b/src/ruby/ext/grpc/extconf.rb
index 82b6d31..6d65db8 100644
--- a/src/ruby/ext/grpc/extconf.rb
+++ b/src/ruby/ext/grpc/extconf.rb
@@ -60,31 +60,25 @@
 
 grpc_config = ENV['GRPC_CONFIG'] || 'opt'
 
-if ENV.key?('GRPC_LIB_DIR')
-  grpc_lib_dir = File.join(grpc_root, ENV['GRPC_LIB_DIR'])
-else
-  grpc_lib_dir = File.join(grpc_root, 'libs', grpc_config)
-end
-
 ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.7'
 
-unless File.exist?(File.join(grpc_lib_dir, 'libgrpc.a')) or windows
-  ENV['AR'] = RbConfig::CONFIG['AR'] + ' rcs'
-  ENV['CC'] = RbConfig::CONFIG['CC']
-  ENV['LD'] = ENV['CC']
+ENV['AR'] = RbConfig::CONFIG['AR'] + ' rcs'
+ENV['CC'] = RbConfig::CONFIG['CC']
+ENV['LD'] = ENV['CC']
 
-  ENV['AR'] = 'libtool -o' if RUBY_PLATFORM =~ /darwin/
+ENV['AR'] = 'libtool -o' if RUBY_PLATFORM =~ /darwin/
 
-  ENV['EMBED_OPENSSL'] = 'true'
-  ENV['EMBED_ZLIB'] = 'true'
-  ENV['ARCH_FLAGS'] = RbConfig::CONFIG['ARCH_FLAG']
-  ENV['ARCH_FLAGS'] = '-arch i386 -arch x86_64' if RUBY_PLATFORM =~ /darwin/
-  ENV['CFLAGS'] = '-DGPR_BACKWARDS_COMPATIBILITY_MODE'
+ENV['EMBED_OPENSSL'] = 'true'
+ENV['EMBED_ZLIB'] = 'true'
+ENV['ARCH_FLAGS'] = RbConfig::CONFIG['ARCH_FLAG']
+ENV['ARCH_FLAGS'] = '-arch i386 -arch x86_64' if RUBY_PLATFORM =~ /darwin/
+ENV['CFLAGS'] = '-DGPR_BACKWARDS_COMPATIBILITY_MODE'
 
-  output_dir = File.expand_path(RbConfig::CONFIG['topdir'])
-  grpc_lib_dir = File.join(output_dir, 'libs', grpc_config)
-  ENV['BUILDDIR'] = output_dir
+output_dir = File.expand_path(RbConfig::CONFIG['topdir'])
+grpc_lib_dir = File.join(output_dir, 'libs', grpc_config)
+ENV['BUILDDIR'] = output_dir
 
+unless windows
   puts 'Building internal gRPC into ' + grpc_lib_dir
   system("make -j -C #{grpc_root} #{grpc_lib_dir}/libgrpc.a CONFIG=#{grpc_config}")
   exit 1 unless $? == 0
diff --git a/src/ruby/ext/grpc/rb_byte_buffer.c b/src/ruby/ext/grpc/rb_byte_buffer.c
index cba910d..1172691 100644
--- a/src/ruby/ext/grpc/rb_byte_buffer.c
+++ b/src/ruby/ext/grpc/rb_byte_buffer.c
@@ -32,11 +32,10 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_byte_buffer.h"
 
-#include <ruby/ruby.h>
-
 #include <grpc/grpc.h>
 #include <grpc/byte_buffer_reader.h>
 #include <grpc/support/slice.h>
diff --git a/src/ruby/ext/grpc/rb_call.c b/src/ruby/ext/grpc/rb_call.c
index 48c49a2..1b06273 100644
--- a/src/ruby/ext/grpc/rb_call.c
+++ b/src/ruby/ext/grpc/rb_call.c
@@ -32,11 +32,10 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_call.h"
 
-#include <ruby/ruby.h>
-
 #include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 
diff --git a/src/ruby/ext/grpc/rb_call_credentials.c b/src/ruby/ext/grpc/rb_call_credentials.c
index 38bf1f7..79ca5b3 100644
--- a/src/ruby/ext/grpc/rb_call_credentials.c
+++ b/src/ruby/ext/grpc/rb_call_credentials.c
@@ -32,10 +32,10 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_call_credentials.h"
 
-#include <ruby/ruby.h>
 #include <ruby/thread.h>
 
 #include <grpc/grpc.h>
@@ -86,11 +86,11 @@
       rb_funcall(exception_object, rb_intern("backtrace"), 0),
       rb_intern("join"),
       1, rb_str_new2("\n\tfrom "));
-  VALUE exception_info = rb_funcall(exception_object, rb_intern("to_s"), 0);
+  VALUE rb_exception_info = rb_funcall(exception_object, rb_intern("to_s"), 0);
   const char *exception_classname = rb_obj_classname(exception_object);
   (void)args;
   gpr_log(GPR_INFO, "Call credentials callback failed: %s: %s\n%s",
-          exception_classname, StringValueCStr(exception_info),
+          exception_classname, StringValueCStr(rb_exception_info),
           StringValueCStr(backtrace));
   rb_hash_aset(result, rb_str_new2("metadata"), Qnil);
   /* Currently only gives the exception class name. It should be possible get
diff --git a/src/ruby/ext/grpc/rb_channel.c b/src/ruby/ext/grpc/rb_channel.c
index 984afad..013321f 100644
--- a/src/ruby/ext/grpc/rb_channel.c
+++ b/src/ruby/ext/grpc/rb_channel.c
@@ -32,11 +32,10 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_channel.h"
 
-#include <ruby/ruby.h>
-
 #include <grpc/grpc.h>
 #include <grpc/grpc_security.h>
 #include <grpc/support/alloc.h>
diff --git a/src/ruby/ext/grpc/rb_channel_args.c b/src/ruby/ext/grpc/rb_channel_args.c
index 2ffb8f4..87c0e0a 100644
--- a/src/ruby/ext/grpc/rb_channel_args.c
+++ b/src/ruby/ext/grpc/rb_channel_args.c
@@ -32,11 +32,10 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_channel_args.h"
 
-#include <ruby/ruby.h>
-
 #include <grpc/grpc.h>
 
 #include "rb_grpc.h"
diff --git a/src/ruby/ext/grpc/rb_channel_credentials.c b/src/ruby/ext/grpc/rb_channel_credentials.c
index 09bd309..cbb2388 100644
--- a/src/ruby/ext/grpc/rb_channel_credentials.c
+++ b/src/ruby/ext/grpc/rb_channel_credentials.c
@@ -31,14 +31,13 @@
  *
  */
 
+#include <ruby/ruby.h>
+
 #include <string.h>
 
-#include <ruby/ruby.h>
 #include "rb_grpc_imports.generated.h"
 #include "rb_channel_credentials.h"
 
-#include <ruby/ruby.h>
-
 #include <grpc/grpc.h>
 #include <grpc/grpc_security.h>
 #include <grpc/support/alloc.h>
diff --git a/src/ruby/ext/grpc/rb_completion_queue.c b/src/ruby/ext/grpc/rb_completion_queue.c
index 2a2eee1..4bb615f 100644
--- a/src/ruby/ext/grpc/rb_completion_queue.c
+++ b/src/ruby/ext/grpc/rb_completion_queue.c
@@ -32,10 +32,10 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_completion_queue.h"
 
-#include <ruby/ruby.h>
 #include <ruby/thread.h>
 
 #include <grpc/grpc.h>
diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c
index 2649a10..9e85bbc 100644
--- a/src/ruby/ext/grpc/rb_event_thread.c
+++ b/src/ruby/ext/grpc/rb_event_thread.c
@@ -32,12 +32,12 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_event_thread.h"
 
 #include <stdbool.h>
 
-#include <ruby/ruby.h>
 #include <ruby/thread.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/sync.h>
diff --git a/src/ruby/ext/grpc/rb_grpc.c b/src/ruby/ext/grpc/rb_grpc.c
index acb47b0..5277148 100644
--- a/src/ruby/ext/grpc/rb_grpc.c
+++ b/src/ruby/ext/grpc/rb_grpc.c
@@ -32,11 +32,11 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_grpc.h"
 
 #include <math.h>
-#include <ruby/ruby.h>
 #include <ruby/vm.h>
 #include <sys/time.h>
 
@@ -50,6 +50,7 @@
 #include "rb_loader.h"
 #include "rb_server.h"
 #include "rb_server_credentials.h"
+#include "rb_signal.h"
 
 static VALUE grpc_rb_cTimeVal = Qnil;
 
@@ -332,6 +333,7 @@
   Init_grpc_channel_credentials();
   Init_grpc_server();
   Init_grpc_server_credentials();
+  Init_grpc_signals();
   Init_grpc_status_codes();
   Init_grpc_time_consts();
 }
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.c b/src/ruby/ext/grpc/rb_grpc_imports.generated.c
index bc43f9d..cebbe8c 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.c
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.c
@@ -125,6 +125,7 @@
 grpc_header_nonbin_value_is_legal_type grpc_header_nonbin_value_is_legal_import;
 grpc_is_binary_header_type grpc_is_binary_header_import;
 grpc_call_error_to_string_type grpc_call_error_to_string_import;
+grpc_cronet_secure_channel_create_type grpc_cronet_secure_channel_create_import;
 grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
 grpc_auth_context_property_iterator_type grpc_auth_context_property_iterator_import;
 grpc_auth_context_peer_identity_type grpc_auth_context_peer_identity_import;
@@ -391,6 +392,7 @@
   grpc_header_nonbin_value_is_legal_import = (grpc_header_nonbin_value_is_legal_type) GetProcAddress(library, "grpc_header_nonbin_value_is_legal");
   grpc_is_binary_header_import = (grpc_is_binary_header_type) GetProcAddress(library, "grpc_is_binary_header");
   grpc_call_error_to_string_import = (grpc_call_error_to_string_type) GetProcAddress(library, "grpc_call_error_to_string");
+  grpc_cronet_secure_channel_create_import = (grpc_cronet_secure_channel_create_type) GetProcAddress(library, "grpc_cronet_secure_channel_create");
   grpc_auth_property_iterator_next_import = (grpc_auth_property_iterator_next_type) GetProcAddress(library, "grpc_auth_property_iterator_next");
   grpc_auth_context_property_iterator_import = (grpc_auth_context_property_iterator_type) GetProcAddress(library, "grpc_auth_context_property_iterator");
   grpc_auth_context_peer_identity_import = (grpc_auth_context_peer_identity_type) GetProcAddress(library, "grpc_auth_context_peer_identity");
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.h b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
index b67361c..d7ea6c5 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.h
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
@@ -43,6 +43,7 @@
 #include <grpc/census.h>
 #include <grpc/compression.h>
 #include <grpc/grpc.h>
+#include <grpc/grpc_cronet.h>
 #include <grpc/grpc_security.h>
 #include <grpc/impl/codegen/alloc.h>
 #include <grpc/impl/codegen/byte_buffer.h>
@@ -325,6 +326,9 @@
 typedef const char *(*grpc_call_error_to_string_type)(grpc_call_error error);
 extern grpc_call_error_to_string_type grpc_call_error_to_string_import;
 #define grpc_call_error_to_string grpc_call_error_to_string_import
+typedef grpc_channel *(*grpc_cronet_secure_channel_create_type)(void *engine, const char *target, const grpc_channel_args *args, void *reserved);
+extern grpc_cronet_secure_channel_create_type grpc_cronet_secure_channel_create_import;
+#define grpc_cronet_secure_channel_create grpc_cronet_secure_channel_create_import
 typedef const grpc_auth_property *(*grpc_auth_property_iterator_next_type)(grpc_auth_property_iterator *it);
 extern grpc_auth_property_iterator_next_type grpc_auth_property_iterator_next_import;
 #define grpc_auth_property_iterator_next grpc_auth_property_iterator_next_import
diff --git a/src/ruby/ext/grpc/rb_server.c b/src/ruby/ext/grpc/rb_server.c
index 96e60c6..2b3acaa 100644
--- a/src/ruby/ext/grpc/rb_server.c
+++ b/src/ruby/ext/grpc/rb_server.c
@@ -32,11 +32,10 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_server.h"
 
-#include <ruby/ruby.h>
-
 #include <grpc/grpc.h>
 #include <grpc/grpc_security.h>
 #include "rb_call.h"
diff --git a/src/ruby/ext/grpc/rb_server_credentials.c b/src/ruby/ext/grpc/rb_server_credentials.c
index b2d7280..3b0fb6c 100644
--- a/src/ruby/ext/grpc/rb_server_credentials.c
+++ b/src/ruby/ext/grpc/rb_server_credentials.c
@@ -32,11 +32,10 @@
  */
 
 #include <ruby/ruby.h>
+
 #include "rb_grpc_imports.generated.h"
 #include "rb_server_credentials.h"
 
-#include <ruby/ruby.h>
-
 #include <grpc/grpc.h>
 #include <grpc/grpc_security.h>
 
diff --git a/src/ruby/ext/grpc/rb_signal.c b/src/ruby/ext/grpc/rb_signal.c
new file mode 100644
index 0000000..a9e5123
--- /dev/null
+++ b/src/ruby/ext/grpc/rb_signal.c
@@ -0,0 +1,70 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <ruby/ruby.h>
+#include <signal.h>
+#include <stdbool.h>
+
+#include <grpc/support/log.h>
+
+#include "rb_grpc.h"
+
+static void (*old_sigint_handler)(int);
+static void (*old_sigterm_handler)(int);
+
+static volatile bool signal_received = false;
+
+/* This has to be handled at the C level instead of Ruby, because Ruby signal
+ * handlers are constrained to run in the main interpreter thread. If that main
+ * thread is blocked on grpc_completion_queue_pluck, the signal handlers will
+ * never run */
+static void handle_signal(int signum) {
+  signal_received = true;
+  if (signum == SIGINT) {
+    old_sigint_handler(signum);
+  } else if (signum == SIGTERM) {
+    old_sigterm_handler(signum);
+  }
+}
+
+static VALUE grpc_rb_signal_received(VALUE self) {
+  (void)self;
+  return signal_received ? Qtrue : Qfalse;
+}
+
+void Init_grpc_signals() {
+  old_sigint_handler = signal(SIGINT, handle_signal);
+  old_sigterm_handler = signal(SIGTERM, handle_signal);
+  rb_define_singleton_method(grpc_rb_mGrpcCore, "signal_received?",
+                             grpc_rb_signal_received, 0);
+}
diff --git a/examples/node/greeter_client.js b/src/ruby/ext/grpc/rb_signal.h
similarity index 72%
copy from examples/node/greeter_client.js
copy to src/ruby/ext/grpc/rb_signal.h
index 2820acb..07e49c0 100644
--- a/examples/node/greeter_client.js
+++ b/src/ruby/ext/grpc/rb_signal.h
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,23 +31,9 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+#ifndef GRPC_RB_SIGNAL_H_
+#define GRPC_RB_SIGNAL_H_
 
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
+void Init_grpc_signals();
 
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
-}
-
-main();
+#endif  /* GRPC_RB_SIGNAL_H_ */
diff --git a/src/ruby/lib/grpc.rb b/src/ruby/lib/grpc.rb
index 79fa705..7c9aae3 100644
--- a/src/ruby/lib/grpc.rb
+++ b/src/ruby/lib/grpc.rb
@@ -33,6 +33,7 @@
 require_relative 'grpc/grpc'
 require_relative 'grpc/logconfig'
 require_relative 'grpc/notifier'
+require_relative 'grpc/signals'
 require_relative 'grpc/version'
 require_relative 'grpc/core/time_consts'
 require_relative 'grpc/generic/active_call'
@@ -47,3 +48,5 @@
 ensure
   file.close
 end
+
+GRPC::Signals.wait_for_signals
diff --git a/src/ruby/lib/grpc/generic/active_call.rb b/src/ruby/lib/grpc/generic/active_call.rb
index ecf3cc3..fd20a86 100644
--- a/src/ruby/lib/grpc/generic/active_call.rb
+++ b/src/ruby/lib/grpc/generic/active_call.rb
@@ -28,7 +28,9 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 require 'forwardable'
+require 'weakref'
 require_relative 'bidi_call'
+require_relative '../signals'
 
 class Struct
   # BatchResult is the struct returned by calls to call#start_batch.
@@ -121,6 +123,10 @@
       @unmarshal = unmarshal
       @metadata_tag = metadata_tag
       @op_notifier = nil
+      weak_self = WeakRef.new(self)
+      remove_handler = GRPC::Signals.register_handler(&weak_self
+                                                        .method(:cancel))
+      ObjectSpace.define_finalizer(self, remove_handler)
     end
 
     # output_metadata are provides access to hash that can be used to
diff --git a/src/ruby/lib/grpc/generic/client_stub.rb b/src/ruby/lib/grpc/generic/client_stub.rb
index 68e167a..12946fe 100644
--- a/src/ruby/lib/grpc/generic/client_stub.rb
+++ b/src/ruby/lib/grpc/generic/client_stub.rb
@@ -49,7 +49,12 @@
         fail(TypeError, '!Channel') unless alt_chan.is_a?(Core::Channel)
         return alt_chan
       end
-      kw['grpc.primary_user_agent'] = "grpc-ruby/#{VERSION}"
+      if kw['grpc.primary_user_agent'].nil?
+        kw['grpc.primary_user_agent'] = ''
+      else
+        kw['grpc.primary_user_agent'] += ' '
+      end
+      kw['grpc.primary_user_agent'] += "grpc-ruby/#{VERSION}"
       unless creds.is_a?(Core::ChannelCredentials) || creds.is_a?(Symbol)
         fail(TypeError, '!ChannelCredentials or Symbol')
       end
diff --git a/src/ruby/lib/grpc/generic/rpc_server.rb b/src/ruby/lib/grpc/generic/rpc_server.rb
index 7f3a38a..238aaa9 100644
--- a/src/ruby/lib/grpc/generic/rpc_server.rb
+++ b/src/ruby/lib/grpc/generic/rpc_server.rb
@@ -28,46 +28,13 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 require_relative '../grpc'
+require_relative '../signals'
 require_relative 'active_call'
 require_relative 'service'
 require 'thread'
 
-# A global that contains signals the gRPC servers should respond to.
-$grpc_signals = []
-
 # GRPC contains the General RPC module.
 module GRPC
-  # Handles the signals in $grpc_signals.
-  #
-  # @return false if the server should exit, true if not.
-  def handle_signals
-    loop do
-      sig = $grpc_signals.shift
-      case sig
-      when 'INT'
-        return false
-      when 'TERM'
-        return false
-      when nil
-        return true
-      end
-    end
-    true
-  end
-  module_function :handle_signals
-
-  # Sets up a signal handler that adds signals to the signal handling global.
-  #
-  # Signal handlers should do as little as humanly possible.
-  # Here, they just add themselves to $grpc_signals
-  #
-  # RpcServer (and later other parts of gRPC) monitors the signals
-  # $grpc_signals in its own non-signal context.
-  def trap_signals
-    %w(INT TERM).each { |sig| trap(sig) { $grpc_signals << sig } }
-  end
-  module_function :trap_signals
-
   # Pool is a simple thread pool.
   class Pool
     # Default keep alive period is 1s
@@ -328,25 +295,6 @@
       end
     end
 
-    # Runs the server in its own thread, then waits for signal INT or TERM on
-    # the current thread to terminate it.
-    def run_till_terminated
-      GRPC.trap_signals
-      stopped = false
-      t = Thread.new do
-        run
-        stopped = true
-      end
-      wait_till_running
-      loop do
-        sleep SIGNAL_CHECK_PERIOD
-        break if stopped
-        break unless GRPC.handle_signals
-      end
-      stop
-      t.join
-    end
-
     # handle registration of classes
     #
     # service is either a class that includes GRPC::GenericService and whose
@@ -405,9 +353,14 @@
         transition_running_state(:running)
         @run_cond.broadcast
       end
+      remove_signal_handler = GRPC::Signals.register_handler { stop }
       loop_handle_server_calls
+      # Remove signal handler when server stops
+      remove_signal_handler.call
     end
 
+    alias_method :run_till_terminated, :run
+
     # Sends RESOURCE_EXHAUSTED if there are too many unprocessed jobs
     def available?(an_rpc)
       jobs_count, max = @pool.jobs_waiting, @max_waiting_requests
@@ -416,7 +369,7 @@
       GRPC.logger.warn("NOT AVAILABLE: too many jobs_waiting: #{an_rpc}")
       noop = proc { |x| x }
       c = ActiveCall.new(an_rpc.call, @cq, noop, noop, an_rpc.deadline)
-      c.send_status(StatusCodes::RESOURCE_EXHAUSTED, '')
+      c.send_status(GRPC::Core::StatusCodes::RESOURCE_EXHAUSTED, '')
       nil
     end
 
@@ -427,7 +380,7 @@
       GRPC.logger.warn("UNIMPLEMENTED: #{an_rpc}")
       noop = proc { |x| x }
       c = ActiveCall.new(an_rpc.call, @cq, noop, noop, an_rpc.deadline)
-      c.send_status(StatusCodes::UNIMPLEMENTED, '')
+      c.send_status(GRPC::Core::StatusCodes::UNIMPLEMENTED, '')
       nil
     end
 
@@ -443,7 +396,12 @@
           unless active_call.nil?
             @pool.schedule(active_call) do |ac|
               c, mth = ac
-              rpc_descs[mth].run_server_method(c, rpc_handlers[mth])
+              begin
+                rpc_descs[mth].run_server_method(c, rpc_handlers[mth])
+              rescue StandardError
+                c.send_status(GRPC::Core::StatusCodes::INTERNAL,
+                              'Server handler failed')
+              end
             end
           end
         rescue Core::CallError, RuntimeError => e
@@ -500,10 +458,8 @@
       unless cls.include?(GenericService)
         fail "#{cls} must 'include GenericService'"
       end
-      if cls.rpc_descs.size.zero?
-        fail "#{cls} should specify some rpc descriptions"
-      end
-      cls.assert_rpc_descs_have_methods
+      fail "#{cls} should specify some rpc descriptions" if
+        cls.rpc_descs.size.zero?
     end
 
     # This should be called while holding @run_mutex
diff --git a/src/ruby/lib/grpc/generic/service.rb b/src/ruby/lib/grpc/generic/service.rb
index 8e940b5..0a166e8 100644
--- a/src/ruby/lib/grpc/generic/service.rb
+++ b/src/ruby/lib/grpc/generic/service.rb
@@ -110,6 +110,9 @@
         rpc_descs[name] = RpcDesc.new(name, input, output,
                                       marshal_class_method,
                                       unmarshal_class_method)
+        define_method(name) do
+          fail GRPC::BadStatus, GRPC::Core::StatusCodes::UNIMPLEMENTED
+        end
       end
 
       def inherited(subclass)
@@ -199,19 +202,6 @@
           end
         end
       end
-
-      # Asserts that the appropriate methods are defined for each added rpc
-      # spec. Is intended to aid verifying that server classes are correctly
-      # implemented.
-      def assert_rpc_descs_have_methods
-        rpc_descs.each_pair do |m, spec|
-          mth_name = GenericService.underscore(m.to_s).to_sym
-          unless instance_methods.include?(mth_name)
-            fail "#{self} does not provide instance method '#{mth_name}'"
-          end
-          spec.assert_arity_matches(instance_method(mth_name))
-        end
-      end
     end
 
     def self.included(o)
diff --git a/src/ruby/lib/grpc/signals.rb b/src/ruby/lib/grpc/signals.rb
new file mode 100644
index 0000000..2ab85c8
--- /dev/null
+++ b/src/ruby/lib/grpc/signals.rb
@@ -0,0 +1,69 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+require 'thread'
+require_relative 'grpc'
+
+# GRPC contains the General RPC module.
+module GRPC
+  # Signals contains gRPC functions related to signal handling
+  module Signals
+    @interpreter_exiting = false
+    @signal_handlers = []
+    @handlers_mutex = Mutex.new
+
+    def register_handler(&handler)
+      @handlers_mutex.synchronize do
+        @signal_handlers.push(handler)
+        handler.call if @exit_signal_received
+      end
+      # Returns a function to remove the handler
+      lambda do
+        @handlers_mutex.synchronize { @signal_handlers.delete(handler) }
+      end
+    end
+    module_function :register_handler
+
+    def wait_for_signals
+      t = Thread.new do
+        sleep 0.1 until GRPC::Core.signal_received? || @interpreter_exiting
+        unless @interpreter_exiting
+          @handlers_mutex.synchronize do
+            @signal_handlers.each(&:call)
+          end
+        end
+      end
+      at_exit do
+        @interpreter_exiting = true
+        t.join
+      end
+    end
+    module_function :wait_for_signals
+  end
+end
diff --git a/src/ruby/lib/grpc/version.rb b/src/ruby/lib/grpc/version.rb
index 67c6a5d..01c8c5a 100644
--- a/src/ruby/lib/grpc/version.rb
+++ b/src/ruby/lib/grpc/version.rb
@@ -29,5 +29,5 @@
 
 # GRPC contains the General RPC module.
 module GRPC
-  VERSION = '0.14.0.dev'
+  VERSION = '0.15.0.dev'
 end
diff --git a/src/ruby/spec/generic/rpc_server_spec.rb b/src/ruby/spec/generic/rpc_server_spec.rb
index e688057..2a42736 100644
--- a/src/ruby/spec/generic/rpc_server_spec.rb
+++ b/src/ruby/spec/generic/rpc_server_spec.rb
@@ -308,10 +308,6 @@
       expect { @srv.handle(EmptyService) }.to raise_error
     end
 
-    it 'raises if the service does not define its rpc methods' do
-      expect { @srv.handle(NoRpcImplementation) }.to raise_error
-    end
-
     it 'raises if a handler method is already registered' do
       @srv.handle(EchoService)
       expect { r.handle(EchoService) }.to raise_error
@@ -349,6 +345,25 @@
         t.join
       end
 
+      it 'should return UNIMPLEMENTED on unimplemented methods', server: true do
+        @srv.handle(NoRpcImplementation)
+        t = Thread.new { @srv.run }
+        @srv.wait_till_running
+        req = EchoMsg.new
+        blk = proc do
+          cq = GRPC::Core::CompletionQueue.new
+          stub = GRPC::ClientStub.new(@host, cq, :this_channel_is_insecure,
+                                      **client_opts)
+          stub.request_response('/an_rpc', req, marshal, unmarshal)
+        end
+        expect(&blk).to raise_error do |error|
+          expect(error).to be_a(GRPC::BadStatus)
+          expect(error.code).to be(GRPC::Core::StatusCodes::UNIMPLEMENTED)
+        end
+        @srv.stop
+        t.join
+      end
+
       it 'should handle multiple sequential requests', server: true do
         @srv.handle(EchoService)
         t = Thread.new { @srv.run }
diff --git a/src/ruby/spec/generic/service_spec.rb b/src/ruby/spec/generic/service_spec.rb
index 5e7b6c7..76034e4 100644
--- a/src/ruby/spec/generic/service_spec.rb
+++ b/src/ruby/spec/generic/service_spec.rb
@@ -273,73 +273,4 @@
       end
     end
   end
-
-  describe '#assert_rpc_descs_have_methods' do
-    it 'fails if there is no instance method for an rpc descriptor' do
-      c1 = Class.new do
-        include GenericService
-        rpc :AnRpc, GoodMsg, GoodMsg
-      end
-      expect { c1.assert_rpc_descs_have_methods }.to raise_error
-
-      c2 = Class.new do
-        include GenericService
-        rpc :AnRpc, GoodMsg, GoodMsg
-        rpc :AnotherRpc, GoodMsg, GoodMsg
-
-        def an_rpc
-        end
-      end
-      expect { c2.assert_rpc_descs_have_methods }.to raise_error
-    end
-
-    it 'passes if there are corresponding methods for each descriptor' do
-      c = Class.new do
-        include GenericService
-        rpc :AnRpc, GoodMsg, GoodMsg
-        rpc :AServerStreamer, GoodMsg, stream(GoodMsg)
-        rpc :AClientStreamer, stream(GoodMsg), GoodMsg
-        rpc :ABidiStreamer, stream(GoodMsg), stream(GoodMsg)
-
-        def an_rpc(_req, _call)
-        end
-
-        def a_server_streamer(_req, _call)
-        end
-
-        def a_client_streamer(_call)
-        end
-
-        def a_bidi_streamer(_call)
-        end
-      end
-      expect { c.assert_rpc_descs_have_methods }.to_not raise_error
-    end
-
-    it 'passes for subclasses of that include GenericService' do
-      base = Class.new do
-        include GenericService
-        rpc :AnRpc, GoodMsg, GoodMsg
-
-        def an_rpc(_req, _call)
-        end
-      end
-      c = Class.new(base)
-      expect { c.assert_rpc_descs_have_methods }.to_not raise_error
-      expect(c.include?(GenericService)).to be(true)
-    end
-
-    it 'passes if subclasses define the rpc methods' do
-      base = Class.new do
-        include GenericService
-        rpc :AnRpc, GoodMsg, GoodMsg
-      end
-      c = Class.new(base) do
-        def an_rpc(_req, _call)
-        end
-      end
-      expect { c.assert_rpc_descs_have_methods }.to_not raise_error
-      expect(c.include?(GenericService)).to be(true)
-    end
-  end
 end
diff --git a/src/ruby/tools/README.md b/src/ruby/tools/README.md
new file mode 100644
index 0000000..e43f223
--- /dev/null
+++ b/src/ruby/tools/README.md
@@ -0,0 +1,12 @@
+# Ruby gRPC Tools
+
+This package distributes protoc and the Ruby gRPC protoc plugin for Windows, Linux, and Mac.
+
+Before this package is published, the following directories should be filled with the corresponding `protoc` and `grpc_ruby_plugin` executables.
+
+ - `bin/x86-linux`
+ - `bin/x86_64-linux`
+ - `bin/x86-macos`
+ - `bin/x86_64-macos`
+ - `bin/x86-windows`
+ - `bin/x86_64-windows`
diff --git a/tools/jenkins/docker_run_tests.sh b/src/ruby/tools/bin/grpc_tools_ruby_protoc.rb
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to src/ruby/tools/bin/grpc_tools_ruby_protoc.rb
index 2fc66c2..3a2a5b8 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/src/ruby/tools/bin/grpc_tools_ruby_protoc.rb
@@ -1,5 +1,5 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+#!/usr/bin/env ruby
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +27,15 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+require 'rbconfig'
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+require_relative '../os_check'
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+protoc_name = 'protoc' + RbConfig::CONFIG['EXEEXT']
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+protoc_path = File.join(File.dirname(__FILE__),
+                        RbConfig::CONFIG['host_cpu'] + '-' + OS.os_name,
+                        protoc_name)
 
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+exec([ protoc_path, protoc_path ], *ARGV)
diff --git a/tools/jenkins/docker_run_tests.sh b/src/ruby/tools/bin/grpc_tools_ruby_protoc_plugin.rb
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to src/ruby/tools/bin/grpc_tools_ruby_protoc_plugin.rb
index 2fc66c2..4b296de 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/src/ruby/tools/bin/grpc_tools_ruby_protoc_plugin.rb
@@ -1,5 +1,5 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+#!/usr/bin/env ruby
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +27,15 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+require 'rbconfig'
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+require_relative '../os_check'
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+plugin_name = 'grpc_ruby_plugin' + RbConfig::CONFIG['EXEEXT']
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+plugin_path = File.join(File.dirname(__FILE__),
+                        RbConfig::CONFIG['host_cpu'] + '-' + OS.os_name,
+                        plugin_name)
 
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+exec([ plugin_path, plugin_path ], *ARGV)
diff --git a/src/ruby/tools/grpc-tools.gemspec b/src/ruby/tools/grpc-tools.gemspec
new file mode 100644
index 0000000..9fa4b66
--- /dev/null
+++ b/src/ruby/tools/grpc-tools.gemspec
@@ -0,0 +1,22 @@
+# -*- ruby -*-
+# encoding: utf-8
+require_relative 'version.rb'
+Gem::Specification.new do |s|
+  s.name = 'grpc-tools'
+  s.version = GRPC::Tools::VERSION
+  s.authors = ['grpc Authors']
+  s.email = 'grpc-io@googlegroups.com'
+  s.homepage = 'https://github.com/google/grpc/tree/master/src/ruby/tools'
+  s.summary = 'Development tools for Ruby gRPC'
+  s.description = 'protoc and the Ruby gRPC protoc plugin'
+  s.license = 'BSD-3-Clause'
+
+  s.files = %w( version.rb os_check.rb README.md )
+  s.files += Dir.glob('bin/**/*')
+
+  s.bindir = 'bin'
+
+  s.platform = Gem::Platform::RUBY
+
+  s.executables = %w( grpc_tools_ruby_protoc.rb grpc_tools_ruby_protoc_plugin.rb )
+end
diff --git a/tools/jenkins/docker_run_tests.sh b/src/ruby/tools/os_check.rb
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to src/ruby/tools/os_check.rb
index 2fc66c2..2677306
--- a/tools/jenkins/docker_run_tests.sh
+++ b/src/ruby/tools/os_check.rb
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +26,20 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+# This is based on http://stackoverflow.com/a/171011/159388 by Aaron Hinni
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+require 'rbconfig'
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+module OS
+  def OS.os_name
+    case RbConfig::CONFIG['host_os']
+    when /cygwin|mswin|mingw|bccwin|wince|emx/
+      'windows'
+    when /darwin/
+      'macos'
+    else
+      'linux'
+    end
+  end
+end
diff --git a/tools/jenkins/docker_run_tests.sh b/src/ruby/tools/version.rb
old mode 100755
new mode 100644
similarity index 61%
copy from tools/jenkins/docker_run_tests.sh
copy to src/ruby/tools/version.rb
index 2fc66c2..dca7fd7
--- a/tools/jenkins/docker_run_tests.sh
+++ b/src/ruby/tools/version.rb
@@ -1,4 +1,3 @@
-#!/bin/bash
 # Copyright 2015, Google Inc.
 # All rights reserved.
 #
@@ -27,41 +26,9 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
-
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+module GRPC
+  module Tools
+    VERSION = '0.15.0.dev'
+  end
+end
diff --git a/templates/Makefile.template b/templates/Makefile.template
index e84ceeb..0d5f0ec 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -49,6 +49,19 @@
 
     sources_that_need_openssl = set()
     sources_that_don_t_need_openssl = set()
+
+    # warnings we'd like, but that dont exist in all compilers
+    PREFERRED_WARNINGS=['shadow', 'extra-semi']
+    CHECK_WARNINGS=PREFERRED_WARNINGS + ['no-shift-negative-value']
+
+    def warning_var(fmt, warning):
+      return fmt % warning.replace('-', '_').upper()
+
+    def neg_warning(warning):
+      if warning[0:3] == 'no-':
+        return warning[3:]
+      else:
+        return 'no-' + warning
   %>
 
 
@@ -187,17 +200,14 @@
   CXX11_CHECK_CMD = $(CXX) -std=c++11 -o $(TMPOUT) -c test/build/c++11.cc
   HAS_CXX11 = $(shell $(CXX11_CHECK_CMD) 2> /dev/null && echo true || echo false)
 
-  CHECK_SHADOW_WORKS_CMD = $(CC) -std=c99 -Werror -Wshadow -o $(TMPOUT) -c test/build/shadow.c
-  HAS_WORKING_SHADOW = $(shell $(CHECK_SHADOW_WORKS_CMD) 2> /dev/null && echo true || echo false)
-  ifeq ($(HAS_WORKING_SHADOW),true)
-  W_SHADOW=-Wshadow
+  %for warning in CHECK_WARNINGS:
+  ${warning_var('CHECK_%s_WORKS_CMD', warning)} = $(CC) -std=c99 -Werror -W${warning} -o $(TMPOUT) -c test/build/${warning}.c
+  ${warning_var('HAS_WORKING_%s', warning)} = $(shell $(${warning_var('CHECK_%s_WORKS_CMD', warning)}) 2> /dev/null && echo true || echo false)
+  ifeq ($(${warning_var('HAS_WORKING_%s', warning)}),true)
+  ${warning_var('W_%s', warning)}=-W${warning}
+  ${warning_var('NO_W_%s', warning)}=-W${neg_warning(warning)}
   endif
-
-  CHECK_NO_SHIFT_NEGATIVE_VALUE_CMD = $(CC) -std=c99 -Werror -Wno-shift-negative-value -o $(TMPOUT) -c test/build/empty.c
-  HAS_NO_SHIFT_NEGATIVE_VALUE = $(shell $(CHECK_NO_SHIFT_NEGATIVE_VALUE_CMD) 2> /dev/null && echo true || echo false)
-  ifeq ($(HAS_NO_SHIFT_NEGATIVE_VALUE),true)
-  W_NO_SHIFT_NEGATIVE_VALUE=-Wno-shift-negative-value
-  endif
+  %endfor
 
   # The HOST compiler settings are used to compile the protoc plugins.
   # In most cases, you won't have to change anything, but if you are
@@ -213,7 +223,7 @@
   DEFINES += $(EXTRA_DEFINES)
   endif
 
-  CFLAGS += -std=c99 -Wsign-conversion -Wconversion $(W_SHADOW)
+  CFLAGS += -std=c99 -Wsign-conversion -Wconversion ${' '.join(warning_var('$(W_%s)', warning) for warning in PREFERRED_WARNINGS)}
   ifeq ($(HAS_CXX11),true)
   CXXFLAGS += -std=c++11
   else
@@ -1698,7 +1708,7 @@
   # boringssl needs an override to ensure that it does not include
   # system openssl headers regardless of other configuration
   # we do so here with a target specific variable assignment
-  $(${tgt.name.upper()}_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value
+  $(${tgt.name.upper()}_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value $(NO_W_EXTRA_SEMI)
   $(${tgt.name.upper()}_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
   $(${tgt.name.upper()}_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
   % else:
diff --git a/templates/gRPC.podspec.template b/templates/gRPC.podspec.template
index a9948a4..979cb1e 100644
--- a/templates/gRPC.podspec.template
+++ b/templates/gRPC.podspec.template
@@ -54,7 +54,7 @@
   %>
   Pod::Spec.new do |s|
     s.name     = 'gRPC'
-    version = '0.12.0'
+    version = '0.14.0'
     s.version  = version
     s.summary  = 'gRPC client library for iOS/OSX'
     s.homepage = 'http://www.grpc.io'
@@ -62,7 +62,8 @@
     s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }
 
     s.source = { :git => 'https://github.com/grpc/grpc.git',
-                 :tag => "release-#{version.gsub(/\./, '_')}-objectivec-#{version}" }
+                 :tag => "release-#{version.gsub(/\./, '_')}-objectivec-#{version}",
+                 :submodules => true }
 
   
     s.ios.deployment_target = '7.1'
@@ -97,7 +98,7 @@
 
       ss.requires_arc = false
       ss.libraries = 'z'
-      ss.dependency 'BoringSSL', '~> 2.0'
+      ss.dependency 'BoringSSL', '~> 3.0'
 
       # ss.compiler_flags = '-GCC_WARN_INHIBIT_ALL_WARNINGS', '-w'
     end
diff --git a/templates/package.json.template b/templates/package.json.template
index 11718b1..9d19ca0 100644
--- a/templates/package.json.template
+++ b/templates/package.json.template
@@ -69,6 +69,8 @@
       "src/node/ext",
       "include/grpc",
       "src/core",
+      "src/boringssl",
+      "src/zlib",
       "third_party/nanopb",
       "third_party/zlib",
       "third_party/boringssl",
diff --git a/templates/src/node/tools/package.json.template b/templates/src/node/tools/package.json.template
index 4f673c4..69ad71a 100644
--- a/templates/src/node/tools/package.json.template
+++ b/templates/src/node/tools/package.json.template
@@ -18,8 +18,8 @@
       }
     ],
     "bin": {
-      "grpc-tools-protoc": "./bin/protoc.js",
-      "grpc-tools-plugin": "./bin/protoc_plugin.js"
+      "grpc_tools_node_protoc": "./bin/protoc.js",
+      "grpc_tools_node_protoc_plugin": "./bin/protoc_plugin.js"
     },
     "scripts": {
       "install": "./node_modules/.bin/node-pre-gyp install"
diff --git a/templates/src/ruby/tools/version.rb.template b/templates/src/ruby/tools/version.rb.template
new file mode 100644
index 0000000..dbc5f48
--- /dev/null
+++ b/templates/src/ruby/tools/version.rb.template
@@ -0,0 +1,36 @@
+%YAML 1.2
+--- |
+  # Copyright 2015, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+  module GRPC
+    module Tools
+      VERSION = '${settings.ruby_version.ruby()}'
+    end
+  end
diff --git a/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template b/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template
new file mode 100644
index 0000000..200905d
--- /dev/null
+++ b/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template
@@ -0,0 +1,34 @@
+%YAML 1.2
+--- |
+  # Copyright 2015, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+  # AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
+
+  VERSION='${settings.python_version.pep440()}'
diff --git a/templates/tools/dockerfile/node_deps.include b/templates/tools/dockerfile/node_deps.include
index 7d37d67..7855fbf 100644
--- a/templates/tools/dockerfile/node_deps.include
+++ b/templates/tools/dockerfile/node_deps.include
@@ -4,4 +4,8 @@
 # Install nvm
 RUN touch .profile
 RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
+# Install all versions of node that we want to test
 RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm install 4 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm install 5 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm alias default 4"
\ No newline at end of file
diff --git a/templates/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile.template b/templates/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile.template
new file mode 100644
index 0000000..0741782
--- /dev/null
+++ b/templates/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile.template
@@ -0,0 +1,41 @@
+%YAML 1.2
+--- |
+  # Copyright 2015, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  
+  FROM debian:jessie
+  
+  <%include file="../../apt_get_basic.include"/>
+  <%include file="../../ccache_setup.include"/>
+  <%include file="../../cxx_deps.include"/>
+  <%include file="../../gcp_api_libraries.include"/>
+  <%include file="../../csharp_deps.include"/>
+  # Define the default command.
+  CMD ["bash"]
+  
diff --git a/templates/tools/dockerfile/stress_test/grpc_interop_stress_python/Dockerfile.template b/templates/tools/dockerfile/stress_test/grpc_interop_stress_python/Dockerfile.template
new file mode 100644
index 0000000..27e9eee
--- /dev/null
+++ b/templates/tools/dockerfile/stress_test/grpc_interop_stress_python/Dockerfile.template
@@ -0,0 +1,45 @@
+%YAML 1.2
+--- |
+  # Copyright 2016, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  
+  FROM debian:jessie
+  
+  <%include file="../../apt_get_basic.include"/>
+  <%include file="../../ccache_setup.include"/>
+  <%include file="../../cxx_deps.include"/>
+  <%include file="../../gcp_api_libraries.include"/>
+  <%include file="../../python_deps.include"/>
+
+  RUN pip install coverage
+  RUN pip install oauth2client
+
+  # Define the default command.
+  CMD ["bash"]
+  
diff --git a/templates/tools/dockerfile/stress_test/grpc_interop_stress_ruby/Dockerfile.template b/templates/tools/dockerfile/stress_test/grpc_interop_stress_ruby/Dockerfile.template
new file mode 100644
index 0000000..8b933aa
--- /dev/null
+++ b/templates/tools/dockerfile/stress_test/grpc_interop_stress_ruby/Dockerfile.template
@@ -0,0 +1,41 @@
+%YAML 1.2
+--- |
+  # Copyright 2015, Google Inc.
+  # All rights reserved.
+  #
+  # Redistribution and use in source and binary forms, with or without
+  # modification, are permitted provided that the following conditions are
+  # met:
+  #
+  #     * Redistributions of source code must retain the above copyright
+  # notice, this list of conditions and the following disclaimer.
+  #     * Redistributions in binary form must reproduce the above
+  # copyright notice, this list of conditions and the following disclaimer
+  # in the documentation and/or other materials provided with the
+  # distribution.
+  #     * Neither the name of Google Inc. nor the names of its
+  # contributors may be used to endorse or promote products derived from
+  # this software without specific prior written permission.
+  #
+  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  
+  FROM debian:jessie
+  
+  <%include file="../../apt_get_basic.include"/>
+  <%include file="../../ccache_setup.include"/>
+  <%include file="../../cxx_deps.include"/>
+  <%include file="../../gcp_api_libraries.include"/>
+  <%include file="../../ruby_deps.include"/>
+  # Define the default command.
+  CMD ["bash"]
+  
diff --git a/templates/tools/dockerfile/test/sanity/Dockerfile.template b/templates/tools/dockerfile/test/sanity/Dockerfile.template
index 8d6f52d..8e2140e 100644
--- a/templates/tools/dockerfile/test/sanity/Dockerfile.template
+++ b/templates/tools/dockerfile/test/sanity/Dockerfile.template
@@ -43,7 +43,17 @@
         python-virtualenv ${"\\"}
         python-lxml
   RUN pip install simplejson mako
-
+  
+  #======================================
+  # More sanity test dependencies (bazel)
+  RUN echo "deb http://httpredir.debian.org/debian jessie-backports main" > \
+    /etc/apt/sources.list.d/backports.list
+  RUN apt-get update
+  RUN apt-get -t jessie-backports install -y openjdk-8-jdk
+  RUN git clone https://github.com/bazelbuild/bazel.git /bazel
+  RUN cd /bazel && ./compile.sh
+  RUN ln -s /bazel/output/bazel /bin/
+  
   #===================
   # Docker "inception"
   # Note this is quite the ugly hack.
diff --git a/examples/node/greeter_client.js b/test/build/extra-semi.c
similarity index 72%
copy from examples/node/greeter_client.js
copy to test/build/extra-semi.c
index 2820acb..60466dd 100644
--- a/examples/node/greeter_client.js
+++ b/test/build/extra-semi.c
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,23 +31,4 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
-
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
-
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
-}
-
-main();
+int main(void) {}
diff --git a/examples/node/greeter_client.js b/test/build/no-shift-negative-value.c
similarity index 74%
copy from examples/node/greeter_client.js
copy to test/build/no-shift-negative-value.c
index 2820acb..58e4698 100644
--- a/examples/node/greeter_client.js
+++ b/test/build/no-shift-negative-value.c
@@ -31,23 +31,4 @@
  *
  */
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
-
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
-
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
-}
-
-main();
+int main(void) {}
diff --git a/test/core/bad_client/bad_client.c b/test/core/bad_client/bad_client.c
index cd5b541..e582068 100644
--- a/test/core/bad_client/bad_client.c
+++ b/test/core/bad_client/bad_client.c
@@ -75,9 +75,22 @@
   grpc_exec_ctx_finish(&exec_ctx);
 }
 
-void grpc_run_bad_client_test(grpc_bad_client_server_side_validator validator,
-                              const char *client_payload,
-                              size_t client_payload_length, uint32_t flags) {
+typedef struct {
+  grpc_bad_client_client_stream_validator validator;
+  gpr_slice_buffer incoming;
+  gpr_event read_done;
+} read_args;
+
+static void read_done(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
+  read_args *a = arg;
+  a->validator(&a->incoming);
+  gpr_event_set(&a->read_done, (void *)1);
+}
+
+void grpc_run_bad_client_test(
+    grpc_bad_client_server_side_validator server_validator,
+    grpc_bad_client_client_stream_validator client_validator,
+    const char *client_payload, size_t client_payload_length, uint32_t flags) {
   grpc_endpoint_pair sfd;
   thd_args a;
   gpr_thd_id id;
@@ -108,7 +121,7 @@
   a.cq = grpc_completion_queue_create(NULL);
   gpr_event_init(&a.done_thd);
   gpr_event_init(&a.done_write);
-  a.validator = validator;
+  a.validator = server_validator;
   grpc_server_register_completion_queue(a.server, a.cq, NULL);
   a.registered_method =
       grpc_server_register_method(a.server, GRPC_BAD_CLIENT_REGISTERED_METHOD,
@@ -151,8 +164,23 @@
 
   GPR_ASSERT(gpr_event_wait(&a.done_thd, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5)));
 
-  /* Shutdown */
-  if (sfd.client) {
+  if (sfd.client != NULL) {
+    // Validate client stream, if requested.
+    if (client_validator != NULL) {
+      read_args args;
+      args.validator = client_validator;
+      gpr_slice_buffer_init(&args.incoming);
+      gpr_event_init(&args.read_done);
+      grpc_closure read_done_closure;
+      grpc_closure_init(&read_done_closure, read_done, &args);
+      grpc_endpoint_read(&exec_ctx, sfd.client, &args.incoming,
+                         &read_done_closure);
+      grpc_exec_ctx_finish(&exec_ctx);
+      GPR_ASSERT(
+          gpr_event_wait(&args.read_done, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5)));
+      gpr_slice_buffer_destroy(&args.incoming);
+    }
+    // Shutdown.
     grpc_endpoint_shutdown(&exec_ctx, sfd.client);
     grpc_endpoint_destroy(&exec_ctx, sfd.client);
     grpc_exec_ctx_finish(&exec_ctx);
diff --git a/test/core/bad_client/bad_client.h b/test/core/bad_client/bad_client.h
index 19ddba8..c8b2a41 100644
--- a/test/core/bad_client/bad_client.h
+++ b/test/core/bad_client/bad_client.h
@@ -44,18 +44,24 @@
                                                       grpc_completion_queue *cq,
                                                       void *registered_method);
 
+typedef void (*grpc_bad_client_client_stream_validator)(
+    gpr_slice_buffer *incoming);
+
 #define GRPC_BAD_CLIENT_DISCONNECT 1
 
 /* Test runner.
 
    Create a server, and send client_payload to it as bytes from a client.
-   Execute validator in a separate thread to assert that the bytes are
+   Execute server_validator in a separate thread to assert that the bytes are
    handled as expected. */
-void grpc_run_bad_client_test(grpc_bad_client_server_side_validator validator,
-                              const char *client_payload,
-                              size_t client_payload_length, uint32_t flags);
+void grpc_run_bad_client_test(
+    grpc_bad_client_server_side_validator server_validator,
+    grpc_bad_client_client_stream_validator client_validator,
+    const char *client_payload, size_t client_payload_length, uint32_t flags);
 
-#define GRPC_RUN_BAD_CLIENT_TEST(validator, payload, flags) \
-  grpc_run_bad_client_test(validator, payload, sizeof(payload) - 1, flags)
+#define GRPC_RUN_BAD_CLIENT_TEST(server_validator, client_validator, payload, \
+                                 flags)                                       \
+  grpc_run_bad_client_test(server_validator, client_validator, payload,       \
+                           sizeof(payload) - 1, flags)
 
 #endif /* GRPC_TEST_CORE_BAD_CLIENT_BAD_CLIENT_H */
diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py
index d49858e..fb86525 100755
--- a/test/core/bad_client/gen_build_yaml.py
+++ b/test/core/bad_client/gen_build_yaml.py
@@ -29,7 +29,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-"""Generates the appropriate build.json data for all the end2end tests."""
+"""Generates the appropriate build.json data for all the bad_client tests."""
 
 
 import collections
@@ -45,6 +45,7 @@
     'headers': default_test_options._replace(cpu_cost=0.2),
     'initial_settings_frame': default_test_options._replace(cpu_cost=0.2),
     'head_of_line_blocking': default_test_options,
+    'large_metadata': default_test_options,
     'server_registered_method': default_test_options,
     'simple_request': default_test_options,
     'window_overflow': default_test_options,
diff --git a/test/core/bad_client/tests/badreq.c b/test/core/bad_client/tests/badreq.c
index b17e3b3..5d9ffef 100644
--- a/test/core/bad_client/tests/badreq.c
+++ b/test/core/bad_client/tests/badreq.c
@@ -56,7 +56,7 @@
 
   /* invalid content type */
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier, PFX_STR
+      verifier, NULL, PFX_STR
       "\x00\x00\xc2\x01\x04\x00\x00\x00\x01"
       "\x10\x05:path\x08/foo/bar"
       "\x10\x07:scheme\x04http"
@@ -71,7 +71,7 @@
 
   /* invalid te */
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier, PFX_STR
+      verifier, NULL, PFX_STR
       "\x00\x00\xcb\x01\x04\x00\x00\x00\x01"
       "\x10\x05:path\x08/foo/bar"
       "\x10\x07:scheme\x04http"
@@ -88,7 +88,7 @@
 
   /* two path headers */
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier, PFX_STR
+      verifier, NULL, PFX_STR
       "\x00\x00\xd9\x01\x04\x00\x00\x00\x01"
       "\x10\x05:path\x08/foo/bar"
       "\x10\x05:path\x08/foo/bah"
@@ -105,7 +105,7 @@
 
   /* bad accept-encoding algorithm */
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier, PFX_STR
+      verifier, NULL, PFX_STR
       "\x00\x00\xd2\x01\x04\x00\x00\x00\x01"
       "\x10\x05:path\x08/foo/bar"
       "\x10\x07:scheme\x04http"
@@ -121,7 +121,7 @@
 
   /* bad grpc-encoding algorithm */
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier, PFX_STR
+      verifier, NULL, PFX_STR
       "\x00\x00\xf5\x01\x04\x00\x00\x00\x01"
       "\x10\x05:path\x08/foo/bar"
       "\x10\x07:scheme\x04http"
diff --git a/test/core/bad_client/tests/connection_prefix.c b/test/core/bad_client/tests/connection_prefix.c
index 9a30aad..bc5ed2e 100644
--- a/test/core/bad_client/tests/connection_prefix.c
+++ b/test/core/bad_client/tests/connection_prefix.c
@@ -46,29 +46,30 @@
 int main(int argc, char **argv) {
   grpc_test_init(argc, argv);
 
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "X", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRIX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI X", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI *X", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * X", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTPX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/X", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2X", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.X", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0X", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\rX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\r\nX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\r\n\rX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\r\n\r\nX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\r\n\r\nSX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\r\n\r\nSMX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\r\n\r\nSM\rX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\r\n\r\nSM\r\nX", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, "PRI * HTTP/2.0\r\n\r\nSM\r\n\rX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "X", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRIX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI X", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI *X", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * X", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTPX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/X", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2X", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.X", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0X", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\rX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\r\nX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\r\n\rX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\r\n\r\nX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\r\n\r\nSX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\r\n\r\nSMX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\r\n\r\nSM\rX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\r\n\r\nSM\r\nX", 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, "PRI * HTTP/2.0\r\n\r\nSM\r\n\rX",
+                           0);
   return 0;
 }
diff --git a/test/core/bad_client/tests/head_of_line_blocking.c b/test/core/bad_client/tests/head_of_line_blocking.c
index 53cd453..e4051bb 100644
--- a/test/core/bad_client/tests/head_of_line_blocking.c
+++ b/test/core/bad_client/tests/head_of_line_blocking.c
@@ -144,7 +144,7 @@
     addbuf(hdr, sizeof(hdr));
     addbuf(msg, FRAME_SIZE);
   }
-  grpc_run_bad_client_test(verifier, g_buffer, g_count, 0);
+  grpc_run_bad_client_test(verifier, NULL, g_buffer, g_count, 0);
   gpr_free(g_buffer);
 
   return 0;
diff --git a/test/core/bad_client/tests/headers.c b/test/core/bad_client/tests/headers.c
index 4c1a767..f872e50 100644
--- a/test/core/bad_client/tests/headers.c
+++ b/test/core/bad_client/tests/headers.c
@@ -51,249 +51,251 @@
   grpc_test_init(argc, argv);
 
   /* partial http2 header prefixes */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x01",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x01",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x01\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x01\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x01\x04",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x01\x04",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x01\x05",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x01\x05",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x01\x04\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x01\x04\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x01\x04\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+                           PFX_STR "\x00\x00\x00\x01\x04\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x01\x04\x00\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+                           PFX_STR "\x00\x00\x00\x01\x04\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x01\x04\x00\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x01\x04\x00\x00\x00\x01",
                            GRPC_BAD_CLIENT_DISCONNECT);
 
   /* test adding prioritization data */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x01\x01\x24\x00\x00\x00\x01"
                            "\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x02\x01\x24\x00\x00\x00\x01"
                            "\x00\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x03\x01\x24\x00\x00\x00\x01"
                            "\x00\x00\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x04\x01\x24\x00\x00\x00\x01"
                            "\x00\x00\x00\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x05\x01\x24\x00\x00\x00\x01"
                            "",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x05\x01\x24\x00\x00\x00\x01"
                            "\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x05\x01\x24\x00\x00\x00\x01"
                            "\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x05\x01\x24\x00\x00\x00\x01"
                            "\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x05\x01\x24\x00\x00\x00\x01"
                            "\x00\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x05\x01\x24\x00\x00\x00\x01"
                            "\x00\x00\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
 
   /* test looking up an invalid index */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x01\x01\x04\x00\x00\x00\x01"
                            "\xfe",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x04\x01\x04\x00\x00\x00\x01"
                            "\x7f\x7f\x01"
                            "a",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x04\x01\x04\x00\x00\x00\x01"
                            "\x0f\x7f\x01"
                            "a",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x04\x01\x04\x00\x00\x00\x01"
                            "\x1f\x7f\x01"
                            "a",
                            0);
   /* test nvr, not indexed in static table */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x03\x01\x04\x00\x00\x00\x01"
                            "\x01\x01"
                            "a",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x03\x01\x04\x00\x00\x00\x01"
                            "\x11\x01"
                            "a",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* illegal op code */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x01\x01\x04\x00\x00\x00\x01"
                            "\x80",
                            0);
   /* parse some long indices */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x02\x01\x04\x00\x00\x00\x01"
                            "\xff\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x03\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x04\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x05\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x06\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x80\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x07\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x80\x80\x00",
                            0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff\x80",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x80",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x80\x80",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x80\x80\x80",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x80\x80\x80\x00",
                            0);
   /* overflow on byte 4 */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x06\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x80\x7f",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x06\x01\x04\x00\x00\x00\x01"
                            "\xff\xff\xff\xff\xff\x0f",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* overflow after byte 4 */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x08\x01\x04\x00\x00\x00\x01"
                            "\xff\x80\x80\x80\x80\x80\x80\x02",
                            0);
   /* end of headers mid-opcode */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x01\x01\x04\x00\x00\x00\x01"
                            "\x01",
                            GRPC_BAD_CLIENT_DISCONNECT);
 
   /* dynamic table size update: set to default */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x03\x01\x04\x00\x00\x00\x01"
                            "\x3f\xe1\x1f",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* dynamic table size update: set too large */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x03\x01\x04\x00\x00\x00\x01"
                            "\x3f\xf1\x1f",
                            0);
   /* dynamic table size update: set twice */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x04\x01\x04\x00\x00\x00\x01"
                            "\x20\x3f\xe1\x1f",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* dynamic table size update: set thrice */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x03\x01\x04\x00\x00\x00\x01"
                            "\x20\x20\x20",
                            0);
 
   /* non-ending header followed by continuation frame */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x00\x01\x00\x00\x00\x00\x01"
                            "\x00\x00\x00\x09\x04\x00\x00\x00\x01",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* non-ending header followed by non-continuation frame */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x00\x01\x00\x00\x00\x00\x01"
                            "\x00\x00\x00\x00\x04\x00\x00\x00\x01",
                            0);
   /* non-ending header followed by a continuation frame for a different stream
    */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x00\x01\x04\x00\x00\x00\x01"
                            "\x00\x00\x00\x01\x00\x00\x00\x00\x03"
                            "\x00\x00\x00\x09\x04\x00\x00\x00\x01",
                            0);
   /* opening with a continuation frame */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x09\x04\x00\x00\x00\x01", 0);
   /* three header frames */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x00\x01\x04\x00\x00\x00\x01"
                            "\x00\x00\x00\x01\x04\x00\x00\x00\x01"
                            "\x00\x00\x00\x01\x04\x00\x00\x00\x01",
                            GRPC_BAD_CLIENT_DISCONNECT);
 
   /* an invalid header found with fuzzing */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x01\x39\x67\xed\x1d\x64",
                            GRPC_BAD_CLIENT_DISCONNECT);
 
   /* a badly encoded timeout value */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x19\x01\x04\x00\x00\x00\x01"
                            "\x10\x0cgrpc-timeout\x0a"
                            "15 seconds",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* a badly encoded timeout value: twice (catches caching) */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x19\x01\x04\x00\x00\x00\x01"
                            "\x10\x0cgrpc-timeout\x0a"
                            "15 seconds"
diff --git a/test/core/bad_client/tests/initial_settings_frame.c b/test/core/bad_client/tests/initial_settings_frame.c
index 63a770d..b84b67a 100644
--- a/test/core/bad_client/tests/initial_settings_frame.c
+++ b/test/core/bad_client/tests/initial_settings_frame.c
@@ -50,70 +50,72 @@
   grpc_test_init(argc, argv);
 
   /* various partial prefixes */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x06",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x06",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x06",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x06",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x06",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x06",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x04",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x04",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x04\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x04\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x04\x01",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x04\x01",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x04\xff",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x04\xff",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x04\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR "\x00\x00\x00\x04\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x04\x00\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+                           PFX_STR "\x00\x00\x00\x04\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR "\x00\x00\x00\x04\x00\x00\x00\x00",
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
+                           PFX_STR "\x00\x00\x00\x04\x00\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* must not send frames with stream id != 0 */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x04\x00\x00\x00\x00\x01", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x04\x00\x40\x00\x00\x00", 0);
   /* settings frame must be a multiple of six bytes long */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x01\x04\x00\x00\x00\x00\x00", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x02\x04\x00\x00\x00\x00\x00", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x03\x04\x00\x00\x00\x00\x00", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x04\x04\x00\x00\x00\x00\x00", 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x05\x04\x00\x00\x00\x00\x00", 0);
   /* some settings values are illegal */
   /* max frame size = 0 */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR ONE_SETTING_HDR "\x00\x05\x00\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR ONE_SETTING_HDR "\x00\x06\xff\xff\xff\xff",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* update intiial window size */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR ONE_SETTING_HDR "\x00\x04\x00\x01\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* ack with data */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x00\x04\x00\x00\x00\x00\x00"
                            "\x00\x00\x01\x04\x01\x00\x00\x00\x00",
                            0);
   /* settings frame with invalid flags */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x04\x10\x00\x00\x00\x00", 0);
   /* unknown settings should be ignored */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR ONE_SETTING_HDR "\x00\x99\x00\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
 
diff --git a/test/core/bad_client/tests/large_metadata.c b/test/core/bad_client/tests/large_metadata.c
new file mode 100644
index 0000000..1a8d2a2
--- /dev/null
+++ b/test/core/bad_client/tests/large_metadata.c
@@ -0,0 +1,489 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include "test/core/bad_client/bad_client.h"
+
+#include <string.h>
+
+#include <grpc/support/alloc.h>
+#include "src/core/lib/surface/server.h"
+#include "test/core/end2end/cq_verifier.h"
+
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_STR                              \
+  "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"     /* settings frame */              \
+  "\x00\x00\x00\x04\x00\x00\x00\x00\x00" /* headers: generated from        \
+                                            large_metadata.headers in this \
+                                            directory */                   \
+  "\x00"                                                                   \
+  "5{\x01\x05\x00\x00\x00\x01"                                             \
+  "\x10\x05:path\x08/foo/bar"                                              \
+  "\x10\x07:scheme\x04http"                                                \
+  "\x10\x07:method\x04POST"                                                \
+  "\x10\x0a:authority\x09localhost"                                        \
+  "\x10\x0c"                                                               \
+  "content-type\x10"                                                       \
+  "application/grpc"                                                       \
+  "\x10\x14grpc-accept-encoding\x15identity,deflate,gzip"                  \
+  "\x10\x02te\x08trailers"                                                 \
+  "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)"                 \
+  "\x10\x0duser-header00~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header01~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header02~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header03~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header04~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header05~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header06~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header07~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header08~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header09~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header10~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header11~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header12~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header13~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header14~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header15~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header16~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header17~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header18~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header19~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header20~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header21~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header22~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header23~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header24~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header25~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header26~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header27~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header28~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header29~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header30~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header31~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header32~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header33~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header34~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header35~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header36~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header37~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header38~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header39~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header40~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header41~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header42~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header43~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header44~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header45~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header46~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header47~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header48~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header49~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header50~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header51~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header52~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header53~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header54~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header55~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header56~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header57~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header58~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header59~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header60~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header61~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header62~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header63~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header64~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header65~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header66~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header67~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header68~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header69~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header70~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header71~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header72~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header73~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header74~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header75~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header76~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header77~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header78~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header79~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header80~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header81~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header82~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header83~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header84~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header85~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header86~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header87~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header88~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header89~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header90~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header91~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header92~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header93~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"                                                               \
+  "\x10\x0duser-header94~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaa"
+
+#define PFX_TOO_MUCH_METADATA_FROM_SERVER_STR                                              \
+  "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" /* settings frame: sets                               \
+                                        MAX_HEADER_LIST_SIZE to 16K */                     \
+  "\x00\x00\x06\x04\x00\x00\x00\x00\x00\x00\x06\x00\x00\x40\x00" /* headers:               \
+                                                                    generated              \
+                                                                    from                   \
+                                                                    simple_request.headers \
+                                                                    in this                \
+                                                                    directory              \
+                                                                    */                     \
+  "\x00\x00\xc9\x01\x04\x00\x00\x00\x01"                                                   \
+  "\x10\x05:path\x08/foo/bar"                                                              \
+  "\x10\x07:scheme\x04http"                                                                \
+  "\x10\x07:method\x04POST"                                                                \
+  "\x10\x0a:authority\x09localhost"                                                        \
+  "\x10\x0c"                                                                               \
+  "content-type\x10"                                                                       \
+  "application/grpc"                                                                       \
+  "\x10\x14grpc-accept-encoding\x15"                                                       \
+  "deflate,identity,gzip"                                                                  \
+  "\x10\x02te\x08trailers"                                                                 \
+  "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)"
+
+static void *tag(intptr_t t) { return (void *)t; }
+
+static void server_verifier(grpc_server *server, grpc_completion_queue *cq,
+                            void *registered_method) {
+  grpc_call_error error;
+  grpc_call *s;
+  grpc_call_details call_details;
+  cq_verifier *cqv = cq_verifier_create(cq);
+  grpc_metadata_array request_metadata_recv;
+
+  grpc_call_details_init(&call_details);
+  grpc_metadata_array_init(&request_metadata_recv);
+
+  error = grpc_server_request_call(server, &s, &call_details,
+                                   &request_metadata_recv, cq, cq, tag(101));
+  GPR_ASSERT(GRPC_CALL_OK == error);
+  cq_expect_completion(cqv, tag(101), 1);
+  cq_verify(cqv);
+
+  GPR_ASSERT(0 == strcmp(call_details.host, "localhost"));
+  GPR_ASSERT(0 == strcmp(call_details.method, "/foo/bar"));
+
+  grpc_metadata_array_destroy(&request_metadata_recv);
+  grpc_call_details_destroy(&call_details);
+  grpc_call_destroy(s);
+  cq_verifier_destroy(cqv);
+}
+
+static void server_verifier_sends_too_much_metadata(grpc_server *server,
+                                                    grpc_completion_queue *cq,
+                                                    void *registered_method) {
+  grpc_call_error error;
+  grpc_call *s;
+  grpc_call_details call_details;
+  cq_verifier *cqv = cq_verifier_create(cq);
+  grpc_metadata_array request_metadata_recv;
+
+  grpc_call_details_init(&call_details);
+  grpc_metadata_array_init(&request_metadata_recv);
+
+  error = grpc_server_request_call(server, &s, &call_details,
+                                   &request_metadata_recv, cq, cq, tag(101));
+  GPR_ASSERT(GRPC_CALL_OK == error);
+  cq_expect_completion(cqv, tag(101), 1);
+  cq_verify(cqv);
+
+  GPR_ASSERT(0 == strcmp(call_details.host, "localhost"));
+  GPR_ASSERT(0 == strcmp(call_details.method, "/foo/bar"));
+
+  const size_t metadata_value_size = 16 * 1024;
+  grpc_metadata meta;
+  meta.key = "key";
+  meta.value = gpr_malloc(metadata_value_size + 1);
+  memset((char *)meta.value, 'a', metadata_value_size);
+  ((char *)meta.value)[metadata_value_size] = 0;
+  meta.value_length = metadata_value_size;
+
+  grpc_op op;
+  op.op = GRPC_OP_SEND_INITIAL_METADATA;
+  op.data.send_initial_metadata.count = 1;
+  op.data.send_initial_metadata.metadata = &meta;
+  op.flags = 0;
+  op.reserved = NULL;
+  error = grpc_call_start_batch(s, &op, 1, tag(102), NULL);
+  GPR_ASSERT(GRPC_CALL_OK == error);
+  cq_expect_completion(cqv, tag(102), 0);  // Operation fails.
+  cq_verify(cqv);
+
+  gpr_free((char *)meta.value);
+  grpc_metadata_array_destroy(&request_metadata_recv);
+  grpc_call_details_destroy(&call_details);
+  grpc_call_destroy(s);
+  cq_verifier_destroy(cqv);
+}
+
+static void client_validator(gpr_slice_buffer *incoming) {
+  // Get last frame from incoming slice buffer.
+  gpr_slice_buffer last_frame_buffer;
+  gpr_slice_buffer_init(&last_frame_buffer);
+  gpr_slice_buffer_trim_end(incoming, 13, &last_frame_buffer);
+  GPR_ASSERT(last_frame_buffer.count == 1);
+  gpr_slice last_frame = last_frame_buffer.slices[0];
+  // Construct expected frame.
+  gpr_slice expected = gpr_slice_malloc(13);
+  uint8_t *p = GPR_SLICE_START_PTR(expected);
+  // Length.
+  *p++ = 0;
+  *p++ = 0;
+  *p++ = 4;
+  // Frame type (RST_STREAM).
+  *p++ = 3;
+  // Flags.
+  *p++ = 0;
+  // Stream ID.
+  *p++ = 0;
+  *p++ = 0;
+  *p++ = 0;
+  *p++ = 1;
+  // Payload (error code).
+  *p++ = 0;
+  *p++ = 0;
+  *p++ = 0;
+  *p++ = 11;
+  // Compare actual and expected.
+  GPR_ASSERT(gpr_slice_cmp(last_frame, expected) == 0);
+  gpr_slice_buffer_destroy(&last_frame_buffer);
+}
+
+int main(int argc, char **argv) {
+  grpc_test_init(argc, argv);
+
+  // Test sending more metadata than the server will accept.
+  GRPC_RUN_BAD_CLIENT_TEST(server_verifier, client_validator,
+                           PFX_TOO_MUCH_METADATA_FROM_CLIENT_STR, 0);
+
+  // Test sending more metadata than the client will accept.
+  GRPC_RUN_BAD_CLIENT_TEST(server_verifier_sends_too_much_metadata,
+                           client_validator,
+                           PFX_TOO_MUCH_METADATA_FROM_SERVER_STR, 0);
+
+  return 0;
+}
diff --git a/test/core/bad_client/tests/large_metadata.headers b/test/core/bad_client/tests/large_metadata.headers
new file mode 100644
index 0000000..75de3ef
--- /dev/null
+++ b/test/core/bad_client/tests/large_metadata.headers
@@ -0,0 +1,106 @@
+# headers used in simple_request.c
+# use tools/codegen/core/gen_header_frame.py --set_end_stream to generate
+# the binary strings contained in the source code
+:path: /foo/bar
+:scheme: http
+:method: POST
+:authority: localhost
+content-type: application/grpc
+grpc-accept-encoding: identity,deflate,gzip
+te: trailers
+user-agent: bad-client grpc-c/0.12.0.0 (linux)
+user-header00: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header01: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header02: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header03: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header04: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header05: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header06: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header07: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header08: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header09: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header15: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header16: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header17: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header18: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header19: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header20: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header21: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header22: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header23: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header24: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header25: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header26: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header27: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header28: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header29: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header30: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header31: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header32: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header33: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header34: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header35: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header36: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header37: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header38: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header39: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header40: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header41: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header42: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header43: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header44: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header45: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header46: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header47: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header48: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header49: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header50: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header51: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header52: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header53: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header54: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header55: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header56: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header57: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header58: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header59: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header60: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header61: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header62: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header63: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header64: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header65: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header66: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header67: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header68: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header69: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header70: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header71: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header72: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header73: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header74: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header75: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header76: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header77: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header78: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header79: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header80: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header81: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header82: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header83: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header84: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header85: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header86: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header87: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header88: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header89: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header90: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header91: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header92: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header93: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+user-header94: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/test/core/bad_client/tests/server_registered_method.c b/test/core/bad_client/tests/server_registered_method.c
index 60d3b89..6216553 100644
--- a/test/core/bad_client/tests/server_registered_method.c
+++ b/test/core/bad_client/tests/server_registered_method.c
@@ -111,43 +111,43 @@
 
   /* body generated with
    * tools/codegen/core/gen_server_registered_method_bad_client_test_body.py */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier_fails,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier_fails, NULL,
                            PFX_STR "\x00\x00\x00\x00\x00\x00\x00\x00\x01",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier_fails,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier_fails, NULL,
                            PFX_STR "\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier_fails, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier_fails, NULL, PFX_STR
                            "\x00\x00\x02\x00\x00\x00\x00\x00\x01\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier_fails, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier_fails, NULL, PFX_STR
                            "\x00\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier_fails,
+      verifier_fails, NULL,
       PFX_STR "\x00\x00\x04\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00",
       GRPC_BAD_CLIENT_DISCONNECT);
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier_succeeds,
+      verifier_succeeds, NULL,
       PFX_STR "\x00\x00\x05\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00", 0);
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier_fails,
+      verifier_fails, NULL,
       PFX_STR "\x00\x00\x05\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01",
       GRPC_BAD_CLIENT_DISCONNECT);
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier_succeeds,
+      verifier_succeeds, NULL,
       PFX_STR "\x00\x00\x06\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00",
       0);
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier_fails,
+      verifier_fails, NULL,
       PFX_STR "\x00\x00\x05\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x02",
       GRPC_BAD_CLIENT_DISCONNECT);
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier_fails,
+      verifier_fails, NULL,
       PFX_STR "\x00\x00\x06\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x02\x00",
       GRPC_BAD_CLIENT_DISCONNECT);
   GRPC_RUN_BAD_CLIENT_TEST(
-      verifier_succeeds, PFX_STR
+      verifier_succeeds, NULL, PFX_STR
       "\x00\x00\x07\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00",
       0);
 
diff --git a/test/core/bad_client/tests/simple_request.c b/test/core/bad_client/tests/simple_request.c
index 3ae6eb3..25bbe96 100644
--- a/test/core/bad_client/tests/simple_request.c
+++ b/test/core/bad_client/tests/simple_request.c
@@ -139,42 +139,42 @@
   grpc_test_init(argc, argv);
 
   /* basic request: check that things are working */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR, 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR_UNUSUAL, 0);
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR_UNUSUAL2, 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR, 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR_UNUSUAL, 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR_UNUSUAL2, 0);
 
   /* push an illegal data frame */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL, PFX_STR
                            "\x00\x00\x05\x00\x00\x00\x00\x00\x01"
                            "\x34\x00\x00\x00\x00",
                            0);
 
   /* push a data frame with bad flags */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x00\x02\x00\x00\x00\x01", 0);
   /* push a window update with a bad length */
-  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, NULL,
                            PFX_STR "\x00\x00\x01\x08\x00\x00\x00\x00\x01", 0);
   /* push a window update with bad flags */
-  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, NULL,
                            PFX_STR "\x00\x00\x00\x08\x10\x00\x00\x00\x01", 0);
   /* push a window update with bad data */
-  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, PFX_STR
+  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, NULL, PFX_STR
                            "\x00\x00\x04\x08\x00\x00\x00\x00\x01"
                            "\xff\xff\xff\xff",
                            0);
   /* push a short goaway */
-  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, NULL,
                            PFX_STR "\x00\x00\x04\x07\x00\x00\x00\x00\x00", 0);
   /* disconnect before sending goaway */
-  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, NULL,
                            PFX_STR "\x00\x01\x12\x07\x00\x00\x00\x00\x00",
                            GRPC_BAD_CLIENT_DISCONNECT);
   /* push a rst_stream with a bad length */
-  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, NULL,
                            PFX_STR "\x00\x00\x01\x03\x00\x00\x00\x00\x01", 0);
   /* push a rst_stream with bad flags */
-  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(failure_verifier, NULL,
                            PFX_STR "\x00\x00\x00\x03\x10\x00\x00\x00\x01", 0);
 
   return 0;
diff --git a/test/core/bad_client/tests/unknown_frame.c b/test/core/bad_client/tests/unknown_frame.c
index f3870a1..4f483d2 100644
--- a/test/core/bad_client/tests/unknown_frame.c
+++ b/test/core/bad_client/tests/unknown_frame.c
@@ -51,7 +51,7 @@
   grpc_test_init(argc, argv);
 
   /* test adding prioritization data */
-  GRPC_RUN_BAD_CLIENT_TEST(verifier,
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, NULL,
                            PFX_STR "\x00\x00\x00\x88\x00\x00\x00\x00\x01",
                            GRPC_BAD_CLIENT_DISCONNECT);
 
diff --git a/test/core/bad_client/tests/window_overflow.c b/test/core/bad_client/tests/window_overflow.c
index 16f11e7..0d17dbe 100644
--- a/test/core/bad_client/tests/window_overflow.c
+++ b/test/core/bad_client/tests/window_overflow.c
@@ -105,7 +105,7 @@
       addbuf(message, sizeof(message));
     }
   }
-  grpc_run_bad_client_test(verifier, g_buffer, g_count, 0);
+  grpc_run_bad_client_test(verifier, NULL, g_buffer, g_count, 0);
   gpr_free(g_buffer);
 
   return 0;
diff --git a/test/core/channel/channel_args_test.c b/test/core/channel/channel_args_test.c
index c7fc259..c2fc050 100644
--- a/test/core/channel/channel_args_test.c
+++ b/test/core/channel/channel_args_test.c
@@ -77,7 +77,8 @@
   ch_args =
       grpc_channel_args_set_compression_algorithm(NULL, GRPC_COMPRESS_GZIP);
   GPR_ASSERT(ch_args->num_args == 1);
-  GPR_ASSERT(strcmp(ch_args->args[0].key, GRPC_COMPRESSION_ALGORITHM_ARG) == 0);
+  GPR_ASSERT(strcmp(ch_args->args[0].key,
+                    GRPC_COMPRESSION_CHANNEL_DEFAULT_ALGORITHM) == 0);
   GPR_ASSERT(ch_args->args[0].type == GRPC_ARG_INTEGER);
 
   grpc_channel_args_destroy(ch_args);
diff --git a/test/core/client_config/lb_policies_test.c b/test/core/client_config/lb_policies_test.c
index e766672..2ec4612 100644
--- a/test/core/client_config/lb_policies_test.c
+++ b/test/core/client_config/lb_policies_test.c
@@ -438,9 +438,9 @@
   return calls;
 }
 
-static void assert_channel_connectivity(
-    grpc_channel *ch, size_t num_accepted_conn_states,
-    grpc_connectivity_state accepted_conn_state, ...) {
+static void assert_channel_connectivity(grpc_channel *ch,
+                                        size_t num_accepted_conn_states,
+                                        int accepted_conn_state, ...) {
   size_t i;
   grpc_channel_stack *client_stack;
   grpc_channel_element *client_channel_filter;
@@ -456,7 +456,7 @@
   grpc_exec_ctx_finish(&exec_ctx);
   va_start(ap, accepted_conn_state);
   for (i = 0; i < num_accepted_conn_states; i++) {
-    if (actual_conn_state == accepted_conn_state) {
+    if ((int)actual_conn_state == accepted_conn_state) {
       break;
     }
     accepted_conn_state = va_arg(ap, grpc_connectivity_state);
diff --git a/test/core/client_config/set_initial_connect_string_test.c b/test/core/client_config/set_initial_connect_string_test.c
index 83058d9..c1b8452 100644
--- a/test/core/client_config/set_initial_connect_string_test.c
+++ b/test/core/client_config/set_initial_connect_string_test.c
@@ -37,6 +37,7 @@
 #include <grpc/support/host_port.h>
 #include <grpc/support/log.h>
 #include <grpc/support/slice.h>
+#include <grpc/support/thd.h>
 
 #include "src/core/ext/client_config/initial_connect_string.h"
 #include "src/core/lib/iomgr/sockaddr.h"
@@ -56,7 +57,7 @@
   gpr_slice_buffer incoming_buffer;
   gpr_slice_buffer temp_incoming_buffer;
   grpc_endpoint *tcp;
-  int done;
+  gpr_atm done_atm;
 };
 
 static const char *magic_connect_string = "magic initial string";
@@ -69,7 +70,7 @@
   gpr_slice_buffer_move_into(&state.temp_incoming_buffer,
                              &state.incoming_buffer);
   if (state.incoming_buffer.length > strlen(magic_connect_string)) {
-    state.done = 1;
+    gpr_atm_rel_store(&state.done_atm, 1);
     grpc_endpoint_shutdown(exec_ctx, state.tcp);
     grpc_endpoint_destroy(exec_ctx, state.tcp);
   } else {
@@ -116,7 +117,7 @@
 }
 
 static void start_rpc(int use_creds, int target_port) {
-  state.done = 0;
+  gpr_atm_rel_store(&state.done_atm, 0);
   state.cq = grpc_completion_queue_create(NULL);
   if (use_creds) {
     state.creds = grpc_fake_transport_security_credentials_create();
@@ -139,7 +140,7 @@
   state.op.reserved = NULL;
   GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(state.call, &state.op,
                                                    (size_t)(1), NULL, NULL));
-  grpc_completion_queue_next(state.cq, n_sec_deadline(1), NULL);
+  grpc_completion_queue_next(state.cq, n_sec_deadline(5), NULL);
 }
 
 static void cleanup_rpc(void) {
@@ -157,12 +158,29 @@
   gpr_free(state.target);
 }
 
-static void poll_server_until_read_done(test_tcp_server *server) {
-  gpr_timespec deadline = n_sec_deadline(5);
-  while (state.done == 0 &&
+typedef struct {
+  test_tcp_server *server;
+  gpr_event *signal_when_done;
+} poll_args;
+
+static void actually_poll_server(void *arg) {
+  poll_args *pa = arg;
+  gpr_timespec deadline = n_sec_deadline(10);
+  while (gpr_atm_acq_load(&state.done_atm) == 0 &&
          gpr_time_cmp(gpr_now(GPR_CLOCK_REALTIME), deadline) < 0) {
-    test_tcp_server_poll(server, 1);
+    test_tcp_server_poll(pa->server, 1);
   }
+  gpr_event_set(pa->signal_when_done, (void *)1);
+  gpr_free(pa);
+}
+
+static void poll_server_until_read_done(test_tcp_server *server,
+                                        gpr_event *signal_when_done) {
+  gpr_thd_id id;
+  poll_args *pa = gpr_malloc(sizeof(*pa));
+  pa->server = server;
+  pa->signal_when_done = signal_when_done;
+  gpr_thd_new(&id, actually_poll_server, pa, NULL);
 }
 
 static void match_initial_magic_string(gpr_slice_buffer *buffer) {
@@ -180,20 +198,26 @@
 }
 
 static void test_initial_string(test_tcp_server *server, int secure) {
+  gpr_event ev;
+  gpr_event_init(&ev);
   grpc_test_set_initial_connect_string_function(set_magic_initial_string);
+  poll_server_until_read_done(server, &ev);
   start_rpc(secure, server_port);
-  poll_server_until_read_done(server);
+  gpr_event_wait(&ev, gpr_inf_future(GPR_CLOCK_REALTIME));
   match_initial_magic_string(&state.incoming_buffer);
   cleanup_rpc();
 }
 
 static void test_initial_string_with_redirect(test_tcp_server *server,
                                               int secure) {
+  gpr_event ev;
+  gpr_event_init(&ev);
   int another_port = grpc_pick_unused_port_or_die();
   grpc_test_set_initial_connect_string_function(
       reset_addr_and_set_magic_string);
+  poll_server_until_read_done(server, &ev);
   start_rpc(secure, another_port);
-  poll_server_until_read_done(server);
+  gpr_event_wait(&ev, gpr_inf_future(GPR_CLOCK_REALTIME));
   match_initial_magic_string(&state.incoming_buffer);
   cleanup_rpc();
 }
diff --git a/test/core/end2end/fixtures/h2_census.c b/test/core/end2end/fixtures/h2_census.c
index ff2f028..e46b39e 100644
--- a/test/core/end2end/fixtures/h2_census.c
+++ b/test/core/end2end/fixtures/h2_census.c
@@ -111,7 +111,7 @@
 
 /* All test configurations */
 static grpc_end2end_test_config configs[] = {
-    {"chttp2/fullstack", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION,
+    {"chttp2/fullstack+census", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION,
      chttp2_create_fixture_fullstack, chttp2_init_client_fullstack,
      chttp2_init_server_fullstack, chttp2_tear_down_fullstack},
 };
diff --git a/test/core/end2end/fixtures/h2_proxy.c b/test/core/end2end/fixtures/h2_proxy.c
index 863673a..8c50eeb 100644
--- a/test/core/end2end/fixtures/h2_proxy.c
+++ b/test/core/end2end/fixtures/h2_proxy.c
@@ -55,14 +55,16 @@
   grpc_end2end_proxy *proxy;
 } fullstack_fixture_data;
 
-static grpc_server *create_proxy_server(const char *port) {
-  grpc_server *s = grpc_server_create(NULL, NULL);
+static grpc_server *create_proxy_server(const char *port,
+                                        grpc_channel_args *server_args) {
+  grpc_server *s = grpc_server_create(server_args, NULL);
   GPR_ASSERT(grpc_server_add_insecure_http2_port(s, port));
   return s;
 }
 
-static grpc_channel *create_proxy_client(const char *target) {
-  return grpc_insecure_channel_create(target, NULL, NULL);
+static grpc_channel *create_proxy_client(const char *target,
+                                         grpc_channel_args *client_args) {
+  return grpc_insecure_channel_create(target, client_args, NULL);
 }
 
 static const grpc_end2end_proxy_def proxy_def = {create_proxy_server,
@@ -74,7 +76,7 @@
   fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
   memset(&f, 0, sizeof(f));
 
-  ffd->proxy = grpc_end2end_proxy_create(&proxy_def);
+  ffd->proxy = grpc_end2end_proxy_create(&proxy_def, client_args, server_args);
 
   f.fixture_data = ffd;
   f.cq = grpc_completion_queue_create(NULL);
diff --git a/test/core/end2end/fixtures/h2_ssl_cert.c b/test/core/end2end/fixtures/h2_ssl_cert.c
index cd031ca..f4dea2c 100644
--- a/test/core/end2end/fixtures/h2_ssl_cert.c
+++ b/test/core/end2end/fixtures/h2_ssl_cert.c
@@ -143,11 +143,11 @@
     chttp2_init_server_secure_fullstack(f, server_args, ssl_creds);         \
   }
 
-SERVER_INIT(GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE);
-SERVER_INIT(GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_BUT_DONT_VERIFY);
-SERVER_INIT(GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY);
-SERVER_INIT(GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY);
-SERVER_INIT(GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY);
+SERVER_INIT(GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE)
+SERVER_INIT(GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_BUT_DONT_VERIFY)
+SERVER_INIT(GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY)
+SERVER_INIT(GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY)
+SERVER_INIT(GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY)
 
 #define CLIENT_INIT_NAME(cert_type) \
   chttp2_init_client_simple_ssl_secure_fullstack_##cert_type
@@ -189,10 +189,10 @@
     grpc_channel_args_destroy(new_client_args);                              \
   }
 
-CLIENT_INIT(NONE);
-CLIENT_INIT(SELF_SIGNED);
-CLIENT_INIT(SIGNED);
-CLIENT_INIT(BAD_CERT_PAIR);
+CLIENT_INIT(NONE)
+CLIENT_INIT(SELF_SIGNED)
+CLIENT_INIT(SIGNED)
+CLIENT_INIT(BAD_CERT_PAIR)
 
 #define TEST_NAME(enum_name, cert_type, result) \
   "chttp2/ssl_" #enum_name "_" #cert_type "_" #result "_"
diff --git a/test/core/end2end/fixtures/h2_ssl_proxy.c b/test/core/end2end/fixtures/h2_ssl_proxy.c
index 1403b76..151a86c 100644
--- a/test/core/end2end/fixtures/h2_ssl_proxy.c
+++ b/test/core/end2end/fixtures/h2_ssl_proxy.c
@@ -54,8 +54,9 @@
   grpc_end2end_proxy *proxy;
 } fullstack_secure_fixture_data;
 
-static grpc_server *create_proxy_server(const char *port) {
-  grpc_server *s = grpc_server_create(NULL, NULL);
+static grpc_server *create_proxy_server(const char *port,
+                                        grpc_channel_args *server_args) {
+  grpc_server *s = grpc_server_create(server_args, NULL);
   grpc_ssl_pem_key_cert_pair pem_cert_key_pair = {test_server1_key,
                                                   test_server1_cert};
   grpc_server_credentials *ssl_creds =
@@ -65,18 +66,20 @@
   return s;
 }
 
-static grpc_channel *create_proxy_client(const char *target) {
+static grpc_channel *create_proxy_client(const char *target,
+                                         grpc_channel_args *client_args) {
   grpc_channel *channel;
   grpc_channel_credentials *ssl_creds =
       grpc_ssl_credentials_create(NULL, NULL, NULL);
   grpc_arg ssl_name_override = {GRPC_ARG_STRING,
                                 GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
                                 {"foo.test.google.fr"}};
-  grpc_channel_args client_args;
-  client_args.num_args = 1;
-  client_args.args = &ssl_name_override;
-  channel = grpc_secure_channel_create(ssl_creds, target, &client_args, NULL);
+  grpc_channel_args *new_client_args =
+      grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1);
+  channel =
+      grpc_secure_channel_create(ssl_creds, target, new_client_args, NULL);
   grpc_channel_credentials_release(ssl_creds);
+  grpc_channel_args_destroy(new_client_args);
   return channel;
 }
 
@@ -90,7 +93,7 @@
       gpr_malloc(sizeof(fullstack_secure_fixture_data));
   memset(&f, 0, sizeof(f));
 
-  ffd->proxy = grpc_end2end_proxy_create(&proxy_def);
+  ffd->proxy = grpc_end2end_proxy_create(&proxy_def, client_args, server_args);
 
   f.fixture_data = ffd;
   f.cq = grpc_completion_queue_create(NULL);
diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.c
index a6487a1..f6e01ec 100644
--- a/test/core/end2end/fixtures/proxy.c
+++ b/test/core/end2end/fixtures/proxy.c
@@ -89,8 +89,9 @@
 static void thread_main(void *arg);
 static void request_call(grpc_end2end_proxy *proxy);
 
-grpc_end2end_proxy *grpc_end2end_proxy_create(
-    const grpc_end2end_proxy_def *def) {
+grpc_end2end_proxy *grpc_end2end_proxy_create(const grpc_end2end_proxy_def *def,
+                                              grpc_channel_args *client_args,
+                                              grpc_channel_args *server_args) {
   gpr_thd_options opt = gpr_thd_options_default();
   int proxy_port = grpc_pick_unused_port_or_die();
   int server_port = grpc_pick_unused_port_or_die();
@@ -105,8 +106,8 @@
           proxy->server_port);
 
   proxy->cq = grpc_completion_queue_create(NULL);
-  proxy->server = def->create_server(proxy->proxy_port);
-  proxy->client = def->create_client(proxy->server_port);
+  proxy->server = def->create_server(proxy->proxy_port, server_args);
+  proxy->client = def->create_client(proxy->server_port, client_args);
 
   grpc_server_register_completion_queue(proxy->server, proxy->cq, NULL);
   grpc_server_start(proxy->server);
diff --git a/test/core/end2end/fixtures/proxy.h b/test/core/end2end/fixtures/proxy.h
index c1cf01d..75b75d1 100644
--- a/test/core/end2end/fixtures/proxy.h
+++ b/test/core/end2end/fixtures/proxy.h
@@ -41,12 +41,15 @@
 typedef struct grpc_end2end_proxy grpc_end2end_proxy;
 
 typedef struct grpc_end2end_proxy_def {
-  grpc_server *(*create_server)(const char *port);
-  grpc_channel *(*create_client)(const char *target);
+  grpc_server *(*create_server)(const char *port,
+                                grpc_channel_args *server_args);
+  grpc_channel *(*create_client)(const char *target,
+                                 grpc_channel_args *client_args);
 } grpc_end2end_proxy_def;
 
-grpc_end2end_proxy *grpc_end2end_proxy_create(
-    const grpc_end2end_proxy_def *def);
+grpc_end2end_proxy *grpc_end2end_proxy_create(const grpc_end2end_proxy_def *def,
+                                              grpc_channel_args *client_args,
+                                              grpc_channel_args *server_args);
 void grpc_end2end_proxy_destroy(grpc_end2end_proxy *proxy);
 
 const char *grpc_end2end_proxy_get_client_target(grpc_end2end_proxy *proxy);
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/03a72675e1969f836094f1ecfec2a7b34418e306 b/test/core/end2end/fuzzers/server_fuzzer_corpus/03a72675e1969f836094f1ecfec2a7b34418e306
new file mode 100644
index 0000000..503af15
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/03a72675e1969f836094f1ecfec2a7b34418e306
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/0416afd6875d9ba55f1e5f86a6456a5445d5e576 b/test/core/end2end/fuzzers/server_fuzzer_corpus/0416afd6875d9ba55f1e5f86a6456a5445d5e576
new file mode 100644
index 0000000..30229f9
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/0416afd6875d9ba55f1e5f86a6456a5445d5e576
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/08c42ef29eff83052c5887855f2fa3e07ebe470c b/test/core/end2end/fuzzers/server_fuzzer_corpus/08c42ef29eff83052c5887855f2fa3e07ebe470c
new file mode 100644
index 0000000..828275e
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/08c42ef29eff83052c5887855f2fa3e07ebe470c
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/1ba889ea1543297824e99e641e6ca8b91f45732e b/test/core/end2end/fuzzers/server_fuzzer_corpus/1ba889ea1543297824e99e641e6ca8b91f45732e
new file mode 100644
index 0000000..6ed060d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/1ba889ea1543297824e99e641e6ca8b91f45732e
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/3b09bf453c6f93983c24c4d5481e55d66213f93a b/test/core/end2end/fuzzers/server_fuzzer_corpus/3b09bf453c6f93983c24c4d5481e55d66213f93a
new file mode 100644
index 0000000..1a7a213
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/3b09bf453c6f93983c24c4d5481e55d66213f93a
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/49cb33cbb60f041e8e99dd718993acd2c3354416 b/test/core/end2end/fuzzers/server_fuzzer_corpus/49cb33cbb60f041e8e99dd718993acd2c3354416
new file mode 100644
index 0000000..7f97525
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/49cb33cbb60f041e8e99dd718993acd2c3354416
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/59743fe120be6ae1aed1c02230ee1bb460f621ee b/test/core/end2end/fuzzers/server_fuzzer_corpus/59743fe120be6ae1aed1c02230ee1bb460f621ee
new file mode 100644
index 0000000..3038fde
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/59743fe120be6ae1aed1c02230ee1bb460f621ee
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a5ccb8f124d8ddb5350b90bc0d6b96db280cb7c9 b/test/core/end2end/fuzzers/server_fuzzer_corpus/a5ccb8f124d8ddb5350b90bc0d6b96db280cb7c9
new file mode 100644
index 0000000..9d39854
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a5ccb8f124d8ddb5350b90bc0d6b96db280cb7c9
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/a7fac1265a384fe9e45a9ee3d708b79c4e80505e b/test/core/end2end/fuzzers/server_fuzzer_corpus/a7fac1265a384fe9e45a9ee3d708b79c4e80505e
new file mode 100644
index 0000000..338f61b
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/a7fac1265a384fe9e45a9ee3d708b79c4e80505e
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/aaf049720c707d4e14e47e7eb31d6a2dda60e66a b/test/core/end2end/fuzzers/server_fuzzer_corpus/aaf049720c707d4e14e47e7eb31d6a2dda60e66a
new file mode 100644
index 0000000..dab9c75
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/aaf049720c707d4e14e47e7eb31d6a2dda60e66a
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/c4e4c7572e005e18d56eac407033da058737a5ab b/test/core/end2end/fuzzers/server_fuzzer_corpus/c4e4c7572e005e18d56eac407033da058737a5ab
new file mode 100644
index 0000000..070a581
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/c4e4c7572e005e18d56eac407033da058737a5ab
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-dae0f07934a527989f23f06e630710ff6ca8c809 b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-dae0f07934a527989f23f06e630710ff6ca8c809
new file mode 100644
index 0000000..b6dfd77
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/crash-dae0f07934a527989f23f06e630710ff6ca8c809
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/e96ad9c17795e52edc810a08d4fc61fe8790002a b/test/core/end2end/fuzzers/server_fuzzer_corpus/e96ad9c17795e52edc810a08d4fc61fe8790002a
new file mode 100644
index 0000000..df9241d
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/e96ad9c17795e52edc810a08d4fc61fe8790002a
Binary files differ
diff --git a/test/core/end2end/fuzzers/server_fuzzer_corpus/fa202a5f51cd49f8ea5af60c5f403f797c01c504 b/test/core/end2end/fuzzers/server_fuzzer_corpus/fa202a5f51cd49f8ea5af60c5f403f797c01c504
new file mode 100644
index 0000000..0ba5935
--- /dev/null
+++ b/test/core/end2end/fuzzers/server_fuzzer_corpus/fa202a5f51cd49f8ea5af60c5f403f797c01c504
Binary files differ
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index cffe599..3e10ad5 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -39,9 +39,9 @@
 
 FixtureOptions = collections.namedtuple(
     'FixtureOptions',
-    'fullstack includes_proxy dns_resolver secure platforms ci_mac tracing')
+    'fullstack includes_proxy dns_resolver secure platforms ci_mac tracing exclude_configs')
 default_unsecure_fixture_options = FixtureOptions(
-    True, False, True, False, ['windows', 'linux', 'mac', 'posix'], True, False)
+    True, False, True, False, ['windows', 'linux', 'mac', 'posix'], True, False, [])
 socketpair_unsecure_fixture_options = default_unsecure_fixture_options._replace(fullstack=False, dns_resolver=False)
 default_secure_fixture_options = default_unsecure_fixture_options._replace(secure=True)
 uds_fixture_options = default_unsecure_fixture_options._replace(dns_resolver=False, platforms=['linux', 'mac', 'posix'])
@@ -60,7 +60,7 @@
     'h2_proxy': default_unsecure_fixture_options._replace(includes_proxy=True,
                                                           ci_mac=False),
     'h2_sockpair_1byte': socketpair_unsecure_fixture_options._replace(
-        ci_mac=False),
+        ci_mac=False, exclude_configs=['msan']),
     'h2_sockpair': socketpair_unsecure_fixture_options._replace(ci_mac=False),
     'h2_sockpair+trace': socketpair_unsecure_fixture_options._replace(
         ci_mac=False, tracing=True),
@@ -246,7 +246,7 @@
           {
               'name': '%s_nosec_test' % f,
               'args': [t],
-              'exclude_configs': [],
+              'exclude_configs': END2END_FIXTURES[f].exclude_configs,
               'platforms': END2END_FIXTURES[f].platforms,
               'ci_platforms': (END2END_FIXTURES[f].platforms
                                if END2END_FIXTURES[f].ci_mac else without(
diff --git a/test/core/end2end/tests/large_metadata.c b/test/core/end2end/tests/large_metadata.c
index 0e5d6b4..ae1f68a 100644
--- a/test/core/end2end/tests/large_metadata.c
+++ b/test/core/end2end/tests/large_metadata.c
@@ -97,7 +97,7 @@
   grpc_completion_queue_destroy(f->cq);
 }
 
-/* Request with a large amount of metadata.*/
+// Request with a large amount of metadata.
 static void test_request_with_large_metadata(grpc_end2end_test_config config) {
   grpc_call *c;
   grpc_call *s;
@@ -106,8 +106,13 @@
       grpc_raw_byte_buffer_create(&request_payload_slice, 1);
   gpr_timespec deadline = five_seconds_time();
   grpc_metadata meta;
+  const size_t large_size = 64 * 1024;
+  grpc_arg arg = {GRPC_ARG_INTEGER,
+                  GRPC_ARG_MAX_METADATA_SIZE,
+                  {.integer = (int)large_size + 1024}};
+  grpc_channel_args args = {1, &arg};
   grpc_end2end_test_fixture f =
-      begin_test(config, "test_request_with_large_metadata", NULL, NULL);
+      begin_test(config, "test_request_with_large_metadata", &args, &args);
   cq_verifier *cqv = cq_verifier_create(f.cq);
   grpc_op ops[6];
   grpc_op *op;
@@ -121,7 +126,6 @@
   char *details = NULL;
   size_t details_capacity = 0;
   int was_cancelled = 2;
-  const size_t large_size = 64 * 1024;
 
   c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq,
                                "/foo", "foo.test.google.fr", deadline, NULL);
@@ -138,6 +142,7 @@
   grpc_metadata_array_init(&request_metadata_recv);
   grpc_call_details_init(&call_details);
 
+  // Client: send request.
   op = ops;
   op->op = GRPC_OP_SEND_INITIAL_METADATA;
   op->data.send_initial_metadata.count = 1;
@@ -174,9 +179,11 @@
       grpc_server_request_call(f.server, &s, &call_details,
                                &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
+
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
 
+  // Server: send initial metadata and receive request.
   op = ops;
   op->op = GRPC_OP_SEND_INITIAL_METADATA;
   op->data.send_initial_metadata.count = 0;
@@ -194,6 +201,8 @@
   cq_expect_completion(cqv, tag(102), 1);
   cq_verify(cqv);
 
+  // Server: receive close and send status.  This should trigger
+  // completion of request on client.
   op = ops;
   op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
   op->data.recv_close_on_server.cancelled = &was_cancelled;
diff --git a/test/core/end2end/tests/max_message_length.c b/test/core/end2end/tests/max_message_length.c
index b5dbc13..4f57278 100644
--- a/test/core/end2end/tests/max_message_length.c
+++ b/test/core/end2end/tests/max_message_length.c
@@ -53,7 +53,10 @@
                                             grpc_channel_args *server_args) {
   grpc_end2end_test_fixture f;
   gpr_log(GPR_INFO, "%s/%s", test_name, config.name);
-  f = config.create_fixture(client_args, server_args);
+  // We intentionally do not pass the client and server args to
+  // create_fixture(), since we don't want the limit enforced on the
+  // proxy, only on the backend server.
+  f = config.create_fixture(NULL, NULL);
   config.init_server(&f, server_args);
   config.init_client(&f, client_args);
   return f;
diff --git a/test/core/iomgr/udp_server_test.c b/test/core/iomgr/udp_server_test.c
index 5248b61..1e7e4fa 100644
--- a/test/core/iomgr/udp_server_test.c
+++ b/test/core/iomgr/udp_server_test.c
@@ -32,20 +32,22 @@
  */
 
 #include "src/core/lib/iomgr/udp_server.h"
-#include <grpc/grpc.h>
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/ev_posix.h"
-#include "src/core/lib/iomgr/iomgr.h"
-#include "test/core/util/test_config.h"
 
 #include <netinet/in.h>
 #include <string.h>
 #include <sys/socket.h>
 #include <unistd.h>
 
+#include <grpc/grpc.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/sync.h>
+#include <grpc/support/time.h>
+
+#include "src/core/lib/iomgr/ev_posix.h"
+#include "src/core/lib/iomgr/iomgr.h"
+#include "test/core/util/test_config.h"
+
 #ifdef GRPC_NEED_UDP
 
 #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", #x)
@@ -54,6 +56,7 @@
 static gpr_mu *g_mu;
 static int g_number_of_reads = 0;
 static int g_number_of_bytes_read = 0;
+static int g_number_of_orphan_calls = 0;
 
 static void on_read(grpc_exec_ctx *exec_ctx, grpc_fd *emfd,
                     grpc_server *server) {
@@ -71,6 +74,12 @@
   gpr_mu_unlock(g_mu);
 }
 
+static void on_fd_orphaned(grpc_fd *emfd) {
+  gpr_log(GPR_INFO, "gRPC FD about to be orphaned: %d",
+          grpc_fd_wrapped_fd(emfd));
+  g_number_of_orphan_calls++;
+}
+
 static void test_no_op(void) {
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   grpc_udp_server *s = grpc_udp_server_create();
@@ -88,6 +97,7 @@
 }
 
 static void test_no_op_with_port(void) {
+  g_number_of_orphan_calls = 0;
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   struct sockaddr_in addr;
   grpc_udp_server *s = grpc_udp_server_create();
@@ -96,13 +106,17 @@
   memset(&addr, 0, sizeof(addr));
   addr.sin_family = AF_INET;
   GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, sizeof(addr),
-                                      on_read));
+                                      on_read, on_fd_orphaned));
 
   grpc_udp_server_destroy(&exec_ctx, s, NULL);
   grpc_exec_ctx_finish(&exec_ctx);
+
+  /* The server had a single FD, which should be orphaned. */
+  GPR_ASSERT(g_number_of_orphan_calls == 1);
 }
 
 static void test_no_op_with_port_and_start(void) {
+  g_number_of_orphan_calls = 0;
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
   struct sockaddr_in addr;
   grpc_udp_server *s = grpc_udp_server_create();
@@ -111,12 +125,15 @@
   memset(&addr, 0, sizeof(addr));
   addr.sin_family = AF_INET;
   GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, sizeof(addr),
-                                      on_read));
+                                      on_read, on_fd_orphaned));
 
   grpc_udp_server_start(&exec_ctx, s, NULL, 0, NULL);
 
   grpc_udp_server_destroy(&exec_ctx, s, NULL);
   grpc_exec_ctx_finish(&exec_ctx);
+
+  /* The server had a single FD which should be orphaned. */
+  GPR_ASSERT(g_number_of_orphan_calls == 1);
 }
 
 static void test_receive(int number_of_clients) {
@@ -133,11 +150,12 @@
   gpr_log(GPR_INFO, "clients=%d", number_of_clients);
 
   g_number_of_bytes_read = 0;
+  g_number_of_orphan_calls = 0;
 
   memset(&addr, 0, sizeof(addr));
   addr.ss_family = AF_INET;
-  GPR_ASSERT(
-      grpc_udp_server_add_port(s, (struct sockaddr *)&addr, addr_len, on_read));
+  GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, addr_len,
+                                      on_read, on_fd_orphaned));
 
   svrfd = grpc_udp_server_get_fd(s, 0);
   GPR_ASSERT(svrfd >= 0);
@@ -176,6 +194,8 @@
 
   grpc_udp_server_destroy(&exec_ctx, s, NULL);
   grpc_exec_ctx_finish(&exec_ctx);
+
+  GPR_ASSERT(g_number_of_orphan_calls == 5);
 }
 
 static void destroy_pollset(grpc_exec_ctx *exec_ctx, void *p, bool success) {
diff --git a/test/core/iomgr/workqueue_test.c b/test/core/iomgr/workqueue_test.c
index 874e696..953cc35 100644
--- a/test/core/iomgr/workqueue_test.c
+++ b/test/core/iomgr/workqueue_test.c
@@ -73,8 +73,10 @@
 
   gpr_mu_lock(g_mu);
   GPR_ASSERT(!done);
-  grpc_pollset_work(&exec_ctx, g_pollset, &worker, gpr_now(deadline.clock_type),
-                    deadline);
+  while (!done) {
+    grpc_pollset_work(&exec_ctx, g_pollset, &worker,
+                      gpr_now(deadline.clock_type), deadline);
+  }
   gpr_mu_unlock(g_mu);
   grpc_exec_ctx_finish(&exec_ctx);
   GPR_ASSERT(done);
@@ -97,9 +99,10 @@
   grpc_workqueue_add_to_pollset(&exec_ctx, wq, g_pollset);
 
   gpr_mu_lock(g_mu);
-  GPR_ASSERT(!done);
-  grpc_pollset_work(&exec_ctx, g_pollset, &worker, gpr_now(deadline.clock_type),
-                    deadline);
+  while (!done) {
+    grpc_pollset_work(&exec_ctx, g_pollset, &worker,
+                      gpr_now(deadline.clock_type), deadline);
+  }
   gpr_mu_unlock(g_mu);
   grpc_exec_ctx_finish(&exec_ctx);
   GPR_ASSERT(done);
diff --git a/test/core/surface/public_headers_must_be_c89.c b/test/core/surface/public_headers_must_be_c89.c
index 0eede6c..fd6ff2c 100644
--- a/test/core/surface/public_headers_must_be_c89.c
+++ b/test/core/surface/public_headers_must_be_c89.c
@@ -36,11 +36,13 @@
 #include <grpc/census.h>
 #include <grpc/compression.h>
 #include <grpc/grpc.h>
+#include <grpc/grpc_cronet.h>
 #include <grpc/grpc_security.h>
 #include <grpc/grpc_security_constants.h>
 #include <grpc/impl/codegen/alloc.h>
 #include <grpc/impl/codegen/atm.h>
 #include <grpc/impl/codegen/byte_buffer.h>
+#include <grpc/impl/codegen/byte_buffer_reader.h>
 #include <grpc/impl/codegen/compression_types.h>
 #include <grpc/impl/codegen/connectivity_state.h>
 #include <grpc/impl/codegen/grpc_types.h>
diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc
index 7e4d604..e0649bd 100644
--- a/test/cpp/end2end/async_end2end_test.cc
+++ b/test/cpp/end2end/async_end2end_test.cc
@@ -51,6 +51,7 @@
 #include "test/core/util/port.h"
 #include "test/core/util/test_config.h"
 #include "test/cpp/util/string_ref_helper.h"
+#include "test/cpp/util/test_credentials_provider.h"
 
 #ifdef GPR_POSIX_SOCKET
 #include "src/core/lib/iomgr/ev_posix.h"
@@ -58,6 +59,7 @@
 
 using grpc::testing::EchoRequest;
 using grpc::testing::EchoResponse;
+using grpc::testing::kTlsCredentialsType;
 using std::chrono::system_clock;
 
 GPR_TLS_DECL(g_is_async_end2end_test);
@@ -197,22 +199,67 @@
   bool spin_;
 };
 
-class AsyncEnd2endTest : public ::testing::TestWithParam<bool> {
+// This class disables the server builder plugins that may add sync services to
+// the server. If there are sync services, UnimplementedRpc test will triger
+// the sync unkown rpc routine on the server side, rather than the async one
+// that needs to be tested here.
+class ServerBuilderSyncPluginDisabler : public ::grpc::ServerBuilderOption {
+ public:
+  void UpdateArguments(ChannelArguments* arg) GRPC_OVERRIDE {}
+
+  void UpdatePlugins(
+      std::map<grpc::string, std::unique_ptr<ServerBuilderPlugin>>* plugins)
+      GRPC_OVERRIDE {
+    auto plugin = plugins->begin();
+    while (plugin != plugins->end()) {
+      if ((*plugin).second->has_sync_methods()) {
+        plugins->erase(plugin++);
+      } else {
+        plugin++;
+      }
+    }
+  }
+};
+
+class TestScenario {
+ public:
+  TestScenario(bool non_block, const grpc::string& creds_type,
+               const grpc::string& content)
+      : disable_blocking(non_block),
+        credentials_type(creds_type),
+        message_content(content) {}
+  void Log() const {
+    gpr_log(GPR_INFO,
+            "Scenario: disable_blocking %d, credentials %s, message size %d",
+            disable_blocking, credentials_type.c_str(), message_content.size());
+  }
+  bool disable_blocking;
+  const grpc::string credentials_type;
+  const grpc::string message_content;
+};
+
+class AsyncEnd2endTest : public ::testing::TestWithParam<TestScenario> {
  protected:
-  AsyncEnd2endTest() {}
+  AsyncEnd2endTest() { GetParam().Log(); }
 
   void SetUp() GRPC_OVERRIDE {
-    poll_overrider_.reset(new PollingOverrider(!GetParam()));
+    poll_overrider_.reset(new PollingOverrider(!GetParam().disable_blocking));
 
     int port = grpc_pick_unused_port_or_die();
     server_address_ << "localhost:" << port;
 
     // Setup server
     ServerBuilder builder;
-    builder.AddListeningPort(server_address_.str(),
-                             grpc::InsecureServerCredentials());
+    auto server_creds = GetServerCredentials(GetParam().credentials_type);
+    builder.AddListeningPort(server_address_.str(), server_creds);
     builder.RegisterService(&service_);
     cq_ = builder.AddCompletionQueue();
+
+    // TODO(zyc): make a test option to choose wheather sync plugins should be
+    // deleted
+    std::unique_ptr<ServerBuilderOption> sync_plugin_disabler(
+        new ServerBuilderSyncPluginDisabler());
+    builder.SetOption(move(sync_plugin_disabler));
     server_ = builder.BuildAndStart();
 
     gpr_tls_set(&g_is_async_end2end_test, 1);
@@ -230,8 +277,11 @@
   }
 
   void ResetStub() {
+    ChannelArguments args;
+    auto channel_creds =
+        GetChannelCredentials(GetParam().credentials_type, &args);
     std::shared_ptr<Channel> channel =
-        CreateChannel(server_address_.str(), InsecureChannelCredentials());
+        CreateCustomChannel(server_address_.str(), channel_creds, args);
     stub_ = grpc::testing::EchoTestService::NewStub(channel);
   }
 
@@ -247,22 +297,23 @@
       ServerContext srv_ctx;
       grpc::ServerAsyncResponseWriter<EchoResponse> response_writer(&srv_ctx);
 
-      send_request.set_message("Hello");
+      send_request.set_message(GetParam().message_content);
       std::unique_ptr<ClientAsyncResponseReader<EchoResponse>> response_reader(
           stub_->AsyncEcho(&cli_ctx, send_request, cq_.get()));
 
       service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                            cq_.get(), tag(2));
 
-      Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+      Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
       EXPECT_EQ(send_request.message(), recv_request.message());
 
       send_response.set_message(recv_request.message());
       response_writer.Finish(send_response, Status::OK, tag(3));
-      Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
-
       response_reader->Finish(&recv_response, &recv_status, tag(4));
-      Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
+      Verifier(GetParam().disable_blocking)
+          .Expect(3, true)
+          .Expect(4, true)
+          .Verify(cq_.get());
 
       EXPECT_EQ(send_response.message(), recv_response.message());
       EXPECT_TRUE(recv_status.ok());
@@ -302,7 +353,7 @@
   ServerContext srv_ctx;
   grpc::ServerAsyncResponseWriter<EchoResponse> response_writer(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::unique_ptr<ClientAsyncResponseReader<EchoResponse>> response_reader(
       stub_->AsyncEcho(&cli_ctx, send_request, cq_.get()));
 
@@ -310,23 +361,22 @@
       std::chrono::system_clock::now());
   std::chrono::system_clock::time_point time_limit(
       std::chrono::system_clock::now() + std::chrono::seconds(10));
-  Verifier(GetParam()).Verify(cq_.get(), time_now);
-  Verifier(GetParam()).Verify(cq_.get(), time_now);
+  Verifier(GetParam().disable_blocking).Verify(cq_.get(), time_now);
+  Verifier(GetParam().disable_blocking).Verify(cq_.get(), time_now);
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
 
-  Verifier(GetParam()).Expect(2, true).Verify(cq_.get(), time_limit);
+  Verifier(GetParam().disable_blocking)
+      .Expect(2, true)
+      .Verify(cq_.get(), time_limit);
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   send_response.set_message(recv_request.message());
   response_writer.Finish(send_response, Status::OK, tag(3));
-  Verifier(GetParam())
-      .Expect(3, true)
-      .Verify(cq_.get(), std::chrono::system_clock::time_point::max());
-
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier(GetParam())
+  Verifier(GetParam().disable_blocking)
+      .Expect(3, true)
       .Expect(4, true)
       .Verify(cq_.get(), std::chrono::system_clock::time_point::max());
 
@@ -347,41 +397,48 @@
   ServerContext srv_ctx;
   ServerAsyncReader<EchoResponse, EchoRequest> srv_stream(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::unique_ptr<ClientAsyncWriter<EchoRequest>> cli_stream(
       stub_->AsyncRequestStream(&cli_ctx, &recv_response, cq_.get(), tag(1)));
 
   service_.RequestRequestStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
                                 tag(2));
 
-  Verifier(GetParam()).Expect(2, true).Expect(1, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(2, true)
+      .Expect(1, true)
+      .Verify(cq_.get());
 
   cli_stream->Write(send_request, tag(3));
-  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
-
   srv_stream.Read(&recv_request, tag(4));
-  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(3, true)
+      .Expect(4, true)
+      .Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   cli_stream->Write(send_request, tag(5));
-  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
-
   srv_stream.Read(&recv_request, tag(6));
-  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(5, true)
+      .Expect(6, true)
+      .Verify(cq_.get());
 
   EXPECT_EQ(send_request.message(), recv_request.message());
   cli_stream->WritesDone(tag(7));
-  Verifier(GetParam()).Expect(7, true).Verify(cq_.get());
-
   srv_stream.Read(&recv_request, tag(8));
-  Verifier(GetParam()).Expect(8, false).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(7, true)
+      .Expect(8, false)
+      .Verify(cq_.get());
 
   send_response.set_message(recv_request.message());
   srv_stream.Finish(send_response, Status::OK, tag(9));
-  Verifier(GetParam()).Expect(9, true).Verify(cq_.get());
-
   cli_stream->Finish(&recv_status, tag(10));
-  Verifier(GetParam()).Expect(10, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(9, true)
+      .Expect(10, true)
+      .Verify(cq_.get());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
@@ -400,39 +457,45 @@
   ServerContext srv_ctx;
   ServerAsyncWriter<EchoResponse> srv_stream(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::unique_ptr<ClientAsyncReader<EchoResponse>> cli_stream(
       stub_->AsyncResponseStream(&cli_ctx, send_request, cq_.get(), tag(1)));
 
   service_.RequestResponseStream(&srv_ctx, &recv_request, &srv_stream,
                                  cq_.get(), cq_.get(), tag(2));
 
-  Verifier(GetParam()).Expect(1, true).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(1, true)
+      .Expect(2, true)
+      .Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   send_response.set_message(recv_request.message());
   srv_stream.Write(send_response, tag(3));
-  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
-
   cli_stream->Read(&recv_response, tag(4));
-  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(3, true)
+      .Expect(4, true)
+      .Verify(cq_.get());
   EXPECT_EQ(send_response.message(), recv_response.message());
 
   srv_stream.Write(send_response, tag(5));
-  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
-
   cli_stream->Read(&recv_response, tag(6));
-  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(5, true)
+      .Expect(6, true)
+      .Verify(cq_.get());
   EXPECT_EQ(send_response.message(), recv_response.message());
 
   srv_stream.Finish(Status::OK, tag(7));
-  Verifier(GetParam()).Expect(7, true).Verify(cq_.get());
-
   cli_stream->Read(&recv_response, tag(8));
-  Verifier(GetParam()).Expect(8, false).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(7, true)
+      .Expect(8, false)
+      .Verify(cq_.get());
 
   cli_stream->Finish(&recv_status, tag(9));
-  Verifier(GetParam()).Expect(9, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(9, true).Verify(cq_.get());
 
   EXPECT_TRUE(recv_status.ok());
 }
@@ -450,41 +513,48 @@
   ServerContext srv_ctx;
   ServerAsyncReaderWriter<EchoResponse, EchoRequest> srv_stream(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::unique_ptr<ClientAsyncReaderWriter<EchoRequest, EchoResponse>>
       cli_stream(stub_->AsyncBidiStream(&cli_ctx, cq_.get(), tag(1)));
 
   service_.RequestBidiStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
                              tag(2));
 
-  Verifier(GetParam()).Expect(1, true).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(1, true)
+      .Expect(2, true)
+      .Verify(cq_.get());
 
   cli_stream->Write(send_request, tag(3));
-  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
-
   srv_stream.Read(&recv_request, tag(4));
-  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(3, true)
+      .Expect(4, true)
+      .Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   send_response.set_message(recv_request.message());
   srv_stream.Write(send_response, tag(5));
-  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
-
   cli_stream->Read(&recv_response, tag(6));
-  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(5, true)
+      .Expect(6, true)
+      .Verify(cq_.get());
   EXPECT_EQ(send_response.message(), recv_response.message());
 
   cli_stream->WritesDone(tag(7));
-  Verifier(GetParam()).Expect(7, true).Verify(cq_.get());
-
   srv_stream.Read(&recv_request, tag(8));
-  Verifier(GetParam()).Expect(8, false).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(7, true)
+      .Expect(8, false)
+      .Verify(cq_.get());
 
   srv_stream.Finish(Status::OK, tag(9));
-  Verifier(GetParam()).Expect(9, true).Verify(cq_.get());
-
   cli_stream->Finish(&recv_status, tag(10));
-  Verifier(GetParam()).Expect(10, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(9, true)
+      .Expect(10, true)
+      .Verify(cq_.get());
 
   EXPECT_TRUE(recv_status.ok());
 }
@@ -503,7 +573,7 @@
   ServerContext srv_ctx;
   grpc::ServerAsyncResponseWriter<EchoResponse> response_writer(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::pair<grpc::string, grpc::string> meta1("key1", "val1");
   std::pair<grpc::string, grpc::string> meta2("key2", "val2");
   std::pair<grpc::string, grpc::string> meta3("g.r.d-bin", "xyz");
@@ -516,7 +586,7 @@
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
-  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
   auto client_initial_metadata = srv_ctx.client_metadata();
   EXPECT_EQ(meta1.second,
@@ -529,11 +599,11 @@
 
   send_response.set_message(recv_request.message());
   response_writer.Finish(send_response, Status::OK, tag(3));
-
-  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
-
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(3, true)
+      .Expect(4, true)
+      .Verify(cq_.get());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
@@ -552,7 +622,7 @@
   ServerContext srv_ctx;
   grpc::ServerAsyncResponseWriter<EchoResponse> response_writer(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::pair<grpc::string, grpc::string> meta1("key1", "val1");
   std::pair<grpc::string, grpc::string> meta2("key2", "val2");
 
@@ -561,15 +631,15 @@
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
-  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
   srv_ctx.AddInitialMetadata(meta1.first, meta1.second);
   srv_ctx.AddInitialMetadata(meta2.first, meta2.second);
   response_writer.SendInitialMetadata(tag(3));
-  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(3, true).Verify(cq_.get());
 
   response_reader->ReadInitialMetadata(tag(4));
-  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(4, true).Verify(cq_.get());
   auto server_initial_metadata = cli_ctx.GetServerInitialMetadata();
   EXPECT_EQ(meta1.second,
             ToString(server_initial_metadata.find(meta1.first)->second));
@@ -579,10 +649,11 @@
 
   send_response.set_message(recv_request.message());
   response_writer.Finish(send_response, Status::OK, tag(5));
-  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
-
   response_reader->Finish(&recv_response, &recv_status, tag(6));
-  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(5, true)
+      .Expect(6, true)
+      .Verify(cq_.get());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
@@ -601,7 +672,7 @@
   ServerContext srv_ctx;
   grpc::ServerAsyncResponseWriter<EchoResponse> response_writer(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::pair<grpc::string, grpc::string> meta1("key1", "val1");
   std::pair<grpc::string, grpc::string> meta2("key2", "val2");
 
@@ -610,20 +681,22 @@
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
-  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
   response_writer.SendInitialMetadata(tag(3));
-  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(3, true).Verify(cq_.get());
 
   send_response.set_message(recv_request.message());
   srv_ctx.AddTrailingMetadata(meta1.first, meta1.second);
   srv_ctx.AddTrailingMetadata(meta2.first, meta2.second);
   response_writer.Finish(send_response, Status::OK, tag(4));
-
-  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
-
   response_reader->Finish(&recv_response, &recv_status, tag(5));
-  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
+
+  Verifier(GetParam().disable_blocking)
+      .Expect(4, true)
+      .Expect(5, true)
+      .Verify(cq_.get());
+
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
   auto server_trailing_metadata = cli_ctx.GetServerTrailingMetadata();
@@ -647,7 +720,7 @@
   ServerContext srv_ctx;
   grpc::ServerAsyncResponseWriter<EchoResponse> response_writer(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::pair<grpc::string, grpc::string> meta1("key1", "val1");
   std::pair<grpc::string, grpc::string> meta2(
       "key2-bin",
@@ -671,7 +744,7 @@
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
-  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
   auto client_initial_metadata = srv_ctx.client_metadata();
   EXPECT_EQ(meta1.second,
@@ -683,9 +756,9 @@
   srv_ctx.AddInitialMetadata(meta3.first, meta3.second);
   srv_ctx.AddInitialMetadata(meta4.first, meta4.second);
   response_writer.SendInitialMetadata(tag(3));
-  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(3, true).Verify(cq_.get());
   response_reader->ReadInitialMetadata(tag(4));
-  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(4, true).Verify(cq_.get());
   auto server_initial_metadata = cli_ctx.GetServerInitialMetadata();
   EXPECT_EQ(meta3.second,
             ToString(server_initial_metadata.find(meta3.first)->second));
@@ -697,11 +770,13 @@
   srv_ctx.AddTrailingMetadata(meta5.first, meta5.second);
   srv_ctx.AddTrailingMetadata(meta6.first, meta6.second);
   response_writer.Finish(send_response, Status::OK, tag(5));
-
-  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
-
   response_reader->Finish(&recv_response, &recv_status, tag(6));
-  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
+
+  Verifier(GetParam().disable_blocking)
+      .Expect(5, true)
+      .Expect(6, true)
+      .Verify(cq_.get());
+
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
   auto server_trailing_metadata = cli_ctx.GetServerTrailingMetadata();
@@ -726,7 +801,7 @@
   ServerContext srv_ctx;
   grpc::ServerAsyncResponseWriter<EchoResponse> response_writer(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::unique_ptr<ClientAsyncResponseReader<EchoResponse>> response_reader(
       stub_->AsyncEcho(&cli_ctx, send_request, cq_.get()));
 
@@ -734,15 +809,15 @@
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
 
-  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   cli_ctx.TryCancel();
-  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(5, true).Verify(cq_.get());
   EXPECT_TRUE(srv_ctx.IsCancelled());
 
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier(GetParam()).Expect(4, false).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(4, false).Verify(cq_.get());
 
   EXPECT_EQ(StatusCode::CANCELLED, recv_status.error_code());
 }
@@ -761,7 +836,7 @@
   ServerContext srv_ctx;
   grpc::ServerAsyncResponseWriter<EchoResponse> response_writer(&srv_ctx);
 
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::unique_ptr<ClientAsyncResponseReader<EchoResponse>> response_reader(
       stub_->AsyncEcho(&cli_ctx, send_request, cq_.get()));
 
@@ -769,25 +844,29 @@
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
 
-  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   send_response.set_message(recv_request.message());
   response_writer.Finish(send_response, Status::OK, tag(3));
-  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
-  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
-  EXPECT_FALSE(srv_ctx.IsCancelled());
-
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking)
+      .Expect(3, true)
+      .Expect(4, true)
+      .Expect(5, true)
+      .Verify(cq_.get());
+  EXPECT_FALSE(srv_ctx.IsCancelled());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
 }
 
 TEST_P(AsyncEnd2endTest, UnimplementedRpc) {
+  ChannelArguments args;
+  auto channel_creds =
+      GetChannelCredentials(GetParam().credentials_type, &args);
   std::shared_ptr<Channel> channel =
-      CreateChannel(server_address_.str(), InsecureChannelCredentials());
+      CreateCustomChannel(server_address_.str(), channel_creds, args);
   std::unique_ptr<grpc::testing::UnimplementedService::Stub> stub;
   stub = grpc::testing::UnimplementedService::NewStub(channel);
   EchoRequest send_request;
@@ -795,12 +874,12 @@
   Status recv_status;
 
   ClientContext cli_ctx;
-  send_request.set_message("Hello");
+  send_request.set_message(GetParam().message_content);
   std::unique_ptr<ClientAsyncResponseReader<EchoResponse>> response_reader(
       stub->AsyncUnimplemented(&cli_ctx, send_request, cq_.get()));
 
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier(GetParam()).Expect(4, false).Verify(cq_.get());
+  Verifier(GetParam().disable_blocking).Expect(4, false).Verify(cq_.get());
 
   EXPECT_EQ(StatusCode::UNIMPLEMENTED, recv_status.error_code());
   EXPECT_EQ("", recv_status.error_message());
@@ -847,23 +926,25 @@
     // Initiate the 'RequestStream' call on client
     std::unique_ptr<ClientAsyncWriter<EchoRequest>> cli_stream(
         stub_->AsyncRequestStream(&cli_ctx, &recv_response, cq_.get(), tag(1)));
-    Verifier(GetParam()).Expect(1, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(1, true).Verify(cq_.get());
 
     // On the server, request to be notified of 'RequestStream' calls
     // and receive the 'RequestStream' call just made by the client
     srv_ctx.AsyncNotifyWhenDone(tag(11));
     service_.RequestRequestStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
                                   tag(2));
-    Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 
     // Client sends 3 messages (tags 3, 4 and 5)
     for (int tag_idx = 3; tag_idx <= 5; tag_idx++) {
       send_request.set_message("Ping " + std::to_string(tag_idx));
       cli_stream->Write(send_request, tag(tag_idx));
-      Verifier(GetParam()).Expect(tag_idx, true).Verify(cq_.get());
+      Verifier(GetParam().disable_blocking)
+          .Expect(tag_idx, true)
+          .Verify(cq_.get());
     }
     cli_stream->WritesDone(tag(6));
-    Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(6, true).Verify(cq_.get());
 
     bool expected_server_cq_result = true;
     bool ignore_cq_result = false;
@@ -871,7 +952,7 @@
 
     if (server_try_cancel == CANCEL_BEFORE_PROCESSING) {
       srv_ctx.TryCancel();
-      Verifier(GetParam()).Expect(11, true).Verify(cq_.get());
+      Verifier(GetParam().disable_blocking).Expect(11, true).Verify(cq_.get());
       EXPECT_TRUE(srv_ctx.IsCancelled());
 
       // Since cancellation is done before server reads any results, we know
@@ -881,7 +962,7 @@
 
     std::thread* server_try_cancel_thd = NULL;
 
-    auto verif = Verifier(GetParam());
+    auto verif = Verifier(GetParam().disable_blocking);
 
     if (server_try_cancel == CANCEL_DURING_PROCESSING) {
       server_try_cancel_thd =
@@ -939,13 +1020,13 @@
     // Server sends the final message and cancelled status (but the RPC is
     // already cancelled at this point. So we expect the operation to fail)
     srv_stream.Finish(send_response, Status::CANCELLED, tag(9));
-    Verifier(GetParam()).Expect(9, false).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(9, false).Verify(cq_.get());
 
     // Client will see the cancellation
     cli_stream->Finish(&recv_status, tag(10));
     // TODO(sreek): The expectation here should be true. This is a bug (github
     // issue #4972)
-    Verifier(GetParam()).Expect(10, false).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(10, false).Verify(cq_.get());
     EXPECT_FALSE(recv_status.ok());
     EXPECT_EQ(::grpc::StatusCode::CANCELLED, recv_status.error_code());
   }
@@ -979,13 +1060,13 @@
     // Initiate the 'ResponseStream' call on the client
     std::unique_ptr<ClientAsyncReader<EchoResponse>> cli_stream(
         stub_->AsyncResponseStream(&cli_ctx, send_request, cq_.get(), tag(1)));
-    Verifier(GetParam()).Expect(1, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(1, true).Verify(cq_.get());
     // On the server, request to be notified of 'ResponseStream' calls and
     // receive the call just made by the client
     srv_ctx.AsyncNotifyWhenDone(tag(11));
     service_.RequestResponseStream(&srv_ctx, &recv_request, &srv_stream,
                                    cq_.get(), cq_.get(), tag(2));
-    Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
     EXPECT_EQ(send_request.message(), recv_request.message());
 
     bool expected_cq_result = true;
@@ -994,7 +1075,7 @@
 
     if (server_try_cancel == CANCEL_BEFORE_PROCESSING) {
       srv_ctx.TryCancel();
-      Verifier(GetParam()).Expect(11, true).Verify(cq_.get());
+      Verifier(GetParam().disable_blocking).Expect(11, true).Verify(cq_.get());
       EXPECT_TRUE(srv_ctx.IsCancelled());
 
       // We know for sure that all cq results will be false from this point
@@ -1004,7 +1085,7 @@
 
     std::thread* server_try_cancel_thd = NULL;
 
-    auto verif = Verifier(GetParam());
+    auto verif = Verifier(GetParam().disable_blocking);
 
     if (server_try_cancel == CANCEL_DURING_PROCESSING) {
       server_try_cancel_thd =
@@ -1064,7 +1145,7 @@
     // Client attemts to read the three messages from the server
     for (int tag_idx = 6; tag_idx <= 8; tag_idx++) {
       cli_stream->Read(&recv_response, tag(tag_idx));
-      Verifier(GetParam())
+      Verifier(GetParam().disable_blocking)
           .Expect(tag_idx, expected_cq_result)
           .Verify(cq_.get(), ignore_cq_result);
     }
@@ -1075,11 +1156,11 @@
 
     // Server finishes the stream (but the RPC is already cancelled)
     srv_stream.Finish(Status::CANCELLED, tag(9));
-    Verifier(GetParam()).Expect(9, false).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(9, false).Verify(cq_.get());
 
     // Client will see the cancellation
     cli_stream->Finish(&recv_status, tag(10));
-    Verifier(GetParam()).Expect(10, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(10, true).Verify(cq_.get());
     EXPECT_FALSE(recv_status.ok());
     EXPECT_EQ(::grpc::StatusCode::CANCELLED, recv_status.error_code());
   }
@@ -1114,19 +1195,19 @@
     // Initiate the call from the client side
     std::unique_ptr<ClientAsyncReaderWriter<EchoRequest, EchoResponse>>
         cli_stream(stub_->AsyncBidiStream(&cli_ctx, cq_.get(), tag(1)));
-    Verifier(GetParam()).Expect(1, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(1, true).Verify(cq_.get());
 
     // On the server, request to be notified of the 'BidiStream' call and
     // receive the call just made by the client
     srv_ctx.AsyncNotifyWhenDone(tag(11));
     service_.RequestBidiStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
                                tag(2));
-    Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(2, true).Verify(cq_.get());
 
     // Client sends the first and the only message
     send_request.set_message("Ping");
     cli_stream->Write(send_request, tag(3));
-    Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(3, true).Verify(cq_.get());
 
     bool expected_cq_result = true;
     bool ignore_cq_result = false;
@@ -1134,7 +1215,7 @@
 
     if (server_try_cancel == CANCEL_BEFORE_PROCESSING) {
       srv_ctx.TryCancel();
-      Verifier(GetParam()).Expect(11, true).Verify(cq_.get());
+      Verifier(GetParam().disable_blocking).Expect(11, true).Verify(cq_.get());
       EXPECT_TRUE(srv_ctx.IsCancelled());
 
       // We know for sure that all cq results will be false from this point
@@ -1144,7 +1225,7 @@
 
     std::thread* server_try_cancel_thd = NULL;
 
-    auto verif = Verifier(GetParam());
+    auto verif = Verifier(GetParam().disable_blocking);
 
     if (server_try_cancel == CANCEL_DURING_PROCESSING) {
       server_try_cancel_thd =
@@ -1244,10 +1325,10 @@
     // know that cq results are supposed to return false on server.
 
     srv_stream.Finish(Status::CANCELLED, tag(9));
-    Verifier(GetParam()).Expect(9, false).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(9, false).Verify(cq_.get());
 
     cli_stream->Finish(&recv_status, tag(10));
-    Verifier(GetParam()).Expect(10, true).Verify(cq_.get());
+    Verifier(GetParam().disable_blocking).Expect(10, true).Verify(cq_.get());
     EXPECT_FALSE(recv_status.ok());
     EXPECT_EQ(grpc::StatusCode::CANCELLED, recv_status.error_code());
   }
@@ -1289,11 +1370,48 @@
   TestBidiStreamingServerCancel(CANCEL_AFTER_PROCESSING);
 }
 
+std::vector<TestScenario> CreateTestScenarios(bool test_disable_blocking,
+                                              bool test_secure,
+                                              int test_big_limit) {
+  std::vector<TestScenario> scenarios;
+  std::vector<grpc::string> credentials_types;
+  std::vector<grpc::string> messages;
+
+  credentials_types.push_back(kInsecureCredentialsType);
+  auto sec_list = GetSecureCredentialsTypeList();
+  for (auto sec = sec_list.begin(); sec != sec_list.end(); sec++) {
+    credentials_types.push_back(*sec);
+  }
+
+  messages.push_back("Hello");
+  for (int sz = 1; sz < test_big_limit; sz *= 2) {
+    grpc::string big_msg;
+    for (int i = 0; i < sz * 1024; i++) {
+      char c = 'a' + (i % 26);
+      big_msg += c;
+    }
+    messages.push_back(big_msg);
+  }
+
+  for (auto cred = credentials_types.begin(); cred != credentials_types.end();
+       ++cred) {
+    for (auto msg = messages.begin(); msg != messages.end(); msg++) {
+      scenarios.push_back(TestScenario(false, *cred, *msg));
+      if (test_disable_blocking) {
+        scenarios.push_back(TestScenario(true, *cred, *msg));
+      }
+    }
+  }
+  return scenarios;
+}
+
 INSTANTIATE_TEST_CASE_P(AsyncEnd2end, AsyncEnd2endTest,
-                        ::testing::Values(false, true));
+                        ::testing::ValuesIn(CreateTestScenarios(true, true,
+                                                                1024)));
 INSTANTIATE_TEST_CASE_P(AsyncEnd2endServerTryCancel,
                         AsyncEnd2endServerTryCancelTest,
-                        ::testing::Values(false));
+                        ::testing::ValuesIn(CreateTestScenarios(false, false,
+                                                                0)));
 
 }  // namespace
 }  // namespace testing
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index 0c9313f..e3408bf 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -975,6 +975,34 @@
   EXPECT_EQ("", s.error_message());
 }
 
+// Ask the server to send back a serialized proto in trailer.
+// This is an example of setting error details.
+TEST_P(End2endTest, BinaryTrailerTest) {
+  ResetStub();
+  EchoRequest request;
+  EchoResponse response;
+  ClientContext context;
+
+  request.mutable_param()->set_echo_metadata(true);
+  DebugInfo* info = request.mutable_param()->mutable_debug_info();
+  info->add_stack_entries("stack_entry_1");
+  info->add_stack_entries("stack_entry_2");
+  info->add_stack_entries("stack_entry_3");
+  info->set_detail("detailed debug info");
+  grpc::string expected_string = info->SerializeAsString();
+  request.set_message("Hello");
+
+  Status s = stub_->Echo(&context, request, &response);
+  EXPECT_FALSE(s.ok());
+  auto trailers = context.GetServerTrailingMetadata();
+  EXPECT_EQ(1u, trailers.count(kDebugInfoTrailerKey));
+  auto iter = trailers.find(kDebugInfoTrailerKey);
+  EXPECT_EQ(expected_string, iter->second);
+  // Parse the returned trailer into a DebugInfo proto.
+  DebugInfo returned_info;
+  EXPECT_TRUE(returned_info.ParseFromString(ToString(iter->second)));
+}
+
 //////////////////////////////////////////////////////////////////////////
 // Test with and without a proxy.
 class ProxyEnd2endTest : public End2endTest {
diff --git a/test/cpp/end2end/server_builder_plugin_test.cc b/test/cpp/end2end/server_builder_plugin_test.cc
new file mode 100644
index 0000000..87e3709
--- /dev/null
+++ b/test/cpp/end2end/server_builder_plugin_test.cc
@@ -0,0 +1,256 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc++/channel.h>
+#include <grpc++/client_context.h>
+#include <grpc++/create_channel.h>
+#include <grpc++/impl/server_builder_option.h>
+#include <grpc++/impl/server_builder_plugin.h>
+#include <grpc++/impl/server_initializer.h>
+#include <grpc++/security/credentials.h>
+#include <grpc++/security/server_credentials.h>
+#include <grpc++/server.h>
+#include <grpc++/server_builder.h>
+#include <grpc++/server_context.h>
+#include <grpc/grpc.h>
+#include <gtest/gtest.h>
+
+#include "src/proto/grpc/testing/echo.grpc.pb.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/end2end/test_service_impl.h"
+
+#define PLUGIN_NAME "TestServerBuilderPlugin"
+
+namespace grpc {
+namespace testing {
+
+class TestServerBuilderPlugin : public ServerBuilderPlugin {
+ public:
+  TestServerBuilderPlugin() : service_(new TestServiceImpl()) {
+    init_server_is_called_ = false;
+    finish_is_called_ = false;
+    change_arguments_is_called_ = false;
+  }
+
+  grpc::string name() GRPC_OVERRIDE { return PLUGIN_NAME; }
+
+  void InitServer(ServerInitializer* si) GRPC_OVERRIDE {
+    init_server_is_called_ = true;
+    if (register_service_) {
+      si->RegisterService(service_);
+    }
+  }
+
+  void Finish(ServerInitializer* si) GRPC_OVERRIDE { finish_is_called_ = true; }
+
+  void ChangeArguments(const grpc::string& name, void* value) GRPC_OVERRIDE {
+    change_arguments_is_called_ = true;
+  }
+
+  bool has_async_methods() const GRPC_OVERRIDE {
+    if (register_service_) {
+      return service_->has_async_methods();
+    }
+    return false;
+  }
+
+  bool has_sync_methods() const GRPC_OVERRIDE {
+    if (register_service_) {
+      return service_->has_synchronous_methods();
+    }
+    return false;
+  }
+
+  void SetRegisterService() { register_service_ = true; }
+
+  bool init_server_is_called() { return init_server_is_called_; }
+  bool finish_is_called() { return finish_is_called_; }
+  bool change_arguments_is_called() { return change_arguments_is_called_; }
+
+ private:
+  bool init_server_is_called_;
+  bool finish_is_called_;
+  bool change_arguments_is_called_;
+  bool register_service_;
+  std::shared_ptr<TestServiceImpl> service_;
+};
+
+class InsertPluginServerBuilderOption : public ServerBuilderOption {
+ public:
+  InsertPluginServerBuilderOption() { register_service_ = false; }
+
+  void UpdateArguments(ChannelArguments* arg) GRPC_OVERRIDE {}
+
+  void UpdatePlugins(
+      std::map<grpc::string, std::unique_ptr<ServerBuilderPlugin>>* plugins)
+      GRPC_OVERRIDE {
+    plugins->clear();
+
+    std::unique_ptr<TestServerBuilderPlugin> plugin(
+        new TestServerBuilderPlugin());
+    if (register_service_) plugin->SetRegisterService();
+    (*plugins)[plugin->name()] = std::move(plugin);
+  }
+
+  void SetRegisterService() { register_service_ = true; }
+
+ private:
+  bool register_service_;
+};
+
+std::unique_ptr<ServerBuilderPlugin> CreateTestServerBuilderPlugin() {
+  return std::unique_ptr<ServerBuilderPlugin>(new TestServerBuilderPlugin());
+}
+
+void AddTestServerBuilderPlugin() {
+  static bool already_here = false;
+  if (already_here) return;
+  already_here = true;
+  ::grpc::ServerBuilder::InternalAddPluginFactory(
+      &CreateTestServerBuilderPlugin);
+}
+
+// Force AddServerBuilderPlugin() to be called at static initialization time.
+struct StaticTestPluginInitializer {
+  StaticTestPluginInitializer() { AddTestServerBuilderPlugin(); }
+} static_plugin_initializer_test_;
+
+// When the param boolean is true, the ServerBuilder plugin will be added at the
+// time of static initialization. When it's false, the ServerBuilder plugin will
+// be added using ServerBuilder::SetOption().
+class ServerBuilderPluginTest : public ::testing::TestWithParam<bool> {
+ public:
+  ServerBuilderPluginTest() {}
+
+  void SetUp() GRPC_OVERRIDE {
+    port_ = grpc_pick_unused_port_or_die();
+    builder_.reset(new ServerBuilder());
+  }
+
+  void InsertPlugin() {
+    if (GetParam()) {
+      // Add ServerBuilder plugin in static initialization
+      EXPECT_TRUE(builder_->plugins_[PLUGIN_NAME] != nullptr);
+    } else {
+      // Add ServerBuilder plugin using ServerBuilder::SetOption()
+      builder_->SetOption(std::unique_ptr<ServerBuilderOption>(
+          new InsertPluginServerBuilderOption()));
+    }
+  }
+
+  void InsertPluginWithTestService() {
+    if (GetParam()) {
+      // Add ServerBuilder plugin in static initialization
+      EXPECT_TRUE(builder_->plugins_[PLUGIN_NAME] != nullptr);
+      auto plugin = static_cast<TestServerBuilderPlugin*>(
+          builder_->plugins_[PLUGIN_NAME].get());
+      EXPECT_TRUE(plugin != nullptr);
+      plugin->SetRegisterService();
+    } else {
+      // Add ServerBuilder plugin using ServerBuilder::SetOption()
+      std::unique_ptr<InsertPluginServerBuilderOption> option(
+          new InsertPluginServerBuilderOption());
+      option->SetRegisterService();
+      builder_->SetOption(std::move(option));
+    }
+  }
+
+  void StartServer() {
+    grpc::string server_address = "localhost:" + to_string(port_);
+    builder_->AddListeningPort(server_address, InsecureServerCredentials());
+    server_ = builder_->BuildAndStart();
+    EXPECT_TRUE(builder_->plugins_[PLUGIN_NAME] != nullptr);
+  }
+
+  void ResetStub() {
+    string target = "dns:localhost:" + to_string(port_);
+    channel_ = CreateChannel(target, InsecureChannelCredentials());
+    stub_ = grpc::testing::EchoTestService::NewStub(channel_);
+  }
+
+  void TearDown() GRPC_OVERRIDE {
+    EXPECT_TRUE(builder_->plugins_[PLUGIN_NAME] != nullptr);
+    auto plugin = static_cast<TestServerBuilderPlugin*>(
+        builder_->plugins_[PLUGIN_NAME].get());
+    EXPECT_TRUE(plugin != nullptr);
+    EXPECT_TRUE(plugin->init_server_is_called());
+    EXPECT_TRUE(plugin->finish_is_called());
+  }
+
+  string to_string(const int number) {
+    std::stringstream strs;
+    strs << number;
+    return strs.str();
+  }
+
+ protected:
+  std::shared_ptr<Channel> channel_;
+  std::unique_ptr<ServerBuilder> builder_;
+  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_;
+  std::unique_ptr<Server> server_;
+  TestServiceImpl service_;
+  int port_;
+};
+
+TEST_P(ServerBuilderPluginTest, PluginWithoutServiceTest) {
+  InsertPlugin();
+  StartServer();
+}
+
+TEST_P(ServerBuilderPluginTest, PluginWithServiceTest) {
+  InsertPluginWithTestService();
+  StartServer();
+  ResetStub();
+
+  EchoRequest request;
+  EchoResponse response;
+  request.set_message("Hello hello hello hello");
+  ClientContext context;
+  context.set_compression_algorithm(GRPC_COMPRESS_GZIP);
+  Status s = stub_->Echo(&context, request, &response);
+  EXPECT_EQ(response.message(), request.message());
+  EXPECT_TRUE(s.ok());
+}
+
+INSTANTIATE_TEST_CASE_P(ServerBuilderPluginTest, ServerBuilderPluginTest,
+                        ::testing::Values(false, true));
+
+}  // namespace testing
+}  // namespace grpc
+
+int main(int argc, char** argv) {
+  grpc_test_init(argc, argv);
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/test/cpp/end2end/test_service_impl.cc b/test/cpp/end2end/test_service_impl.cc
index 2f5dd6d..cbaee92 100644
--- a/test/cpp/end2end/test_service_impl.cc
+++ b/test/cpp/end2end/test_service_impl.cc
@@ -135,6 +135,14 @@
       context->AddTrailingMetadata(ToString(iter->first),
                                    ToString(iter->second));
     }
+    // Terminate rpc with error and debug info in trailer.
+    if (request->param().debug_info().stack_entries_size() ||
+        !request->param().debug_info().detail().empty()) {
+      grpc::string serialized_debug_info =
+          request->param().debug_info().SerializeAsString();
+      context->AddTrailingMetadata(kDebugInfoTrailerKey, serialized_debug_info);
+      return Status::CANCELLED;
+    }
   }
   if (request->has_param() &&
       (request->param().expected_client_identity().length() > 0 ||
diff --git a/test/cpp/end2end/test_service_impl.h b/test/cpp/end2end/test_service_impl.h
index 1ab6ced..c89f88c 100644
--- a/test/cpp/end2end/test_service_impl.h
+++ b/test/cpp/end2end/test_service_impl.h
@@ -47,6 +47,7 @@
 const int kNumResponseStreamsMsgs = 3;
 const char* const kServerCancelAfterReads = "cancel_after_reads";
 const char* const kServerTryCancelRequest = "server_try_cancel";
+const char* const kDebugInfoTrailerKey = "debug-info-bin";
 
 typedef enum {
   DO_NOT_CANCEL = 0,
diff --git a/test/cpp/grpclb/grpclb_api_test.cc b/test/cpp/grpclb/grpclb_api_test.cc
index 92f93c8..bf77878 100644
--- a/test/cpp/grpclb/grpclb_api_test.cc
+++ b/test/cpp/grpclb/grpclb_api_test.cc
@@ -35,13 +35,13 @@
 #include <string>
 
 #include "src/core/ext/lb_policy/grpclb/load_balancer_api.h"
-#include "src/proto/grpc/lb/v0/load_balancer.pb.h"  // C++ version
+#include "src/proto/grpc/lb/v1/load_balancer.pb.h"  // C++ version
 
 namespace grpc {
 namespace {
 
-using grpc::lb::v0::LoadBalanceRequest;
-using grpc::lb::v0::LoadBalanceResponse;
+using grpc::lb::v1::LoadBalanceRequest;
+using grpc::lb::v1::LoadBalanceResponse;
 
 class GrpclbTest : public ::testing::Test {};
 
@@ -60,9 +60,7 @@
 
 TEST_F(GrpclbTest, ParseResponse) {
   LoadBalanceResponse response;
-  const std::string client_config_str = "I'm a client config";
   auto* initial_response = response.mutable_initial_response();
-  initial_response->set_client_config(client_config_str);
   auto* client_stats_report_interval =
       initial_response->mutable_client_stats_report_interval();
   client_stats_report_interval->set_seconds(123);
@@ -73,10 +71,7 @@
       gpr_slice_from_copied_string(encoded_response.c_str());
   grpc_grpclb_response* c_response = grpc_grpclb_response_parse(encoded_slice);
   EXPECT_TRUE(c_response->has_initial_response);
-  EXPECT_TRUE(c_response->initial_response.has_client_config);
   EXPECT_FALSE(c_response->initial_response.has_load_balancer_delegate);
-  EXPECT_TRUE(strcmp(c_response->initial_response.client_config,
-                     client_config_str.c_str()) == 0);
   EXPECT_EQ(c_response->initial_response.client_stats_report_interval.seconds,
             123);
   EXPECT_EQ(c_response->initial_response.client_stats_report_interval.nanos,
diff --git a/test/cpp/interop/client.cc b/test/cpp/interop/client.cc
index 9af6a88..7727824 100644
--- a/test/cpp/interop/client.cc
+++ b/test/cpp/interop/client.cc
@@ -81,6 +81,14 @@
 DEFINE_string(service_account_key_file, "",
               "Path to service account json key file.");
 DEFINE_string(oauth_scope, "", "Scope for OAuth tokens.");
+DEFINE_bool(do_not_abort_on_transient_failures, false,
+            "If set to 'true', abort() is not called in case of transient "
+            "failures (i.e failures that are temporary and will likely go away "
+            "on retrying; like a temporary connection failure) and an error "
+            "message is printed instead. Note that this flag just controls "
+            "whether abort() is called or not. It does not control whether the "
+            "test is retried in case of transient failures (and currently the "
+            "interop tests are not retried even if this flag is set to true)");
 
 using grpc::testing::CreateChannelForTestCase;
 using grpc::testing::GetServiceAccountJsonKey;
@@ -89,8 +97,9 @@
   grpc::testing::InitTest(&argc, &argv, true);
   gpr_log(GPR_INFO, "Testing these cases: %s", FLAGS_test_case.c_str());
   int ret = 0;
-  grpc::testing::InteropClient client(
-      CreateChannelForTestCase(FLAGS_test_case));
+  grpc::testing::InteropClient client(CreateChannelForTestCase(FLAGS_test_case),
+                                      true,
+                                      FLAGS_do_not_abort_on_transient_failures);
   if (FLAGS_test_case == "empty_unary") {
     client.DoEmpty();
   } else if (FLAGS_test_case == "large_unary") {
diff --git a/test/cpp/interop/interop_client.cc b/test/cpp/interop/interop_client.cc
index 22293d2..cba52b1 100644
--- a/test/cpp/interop/interop_client.cc
+++ b/test/cpp/interop/interop_client.cc
@@ -134,23 +134,43 @@
   serviceStub_.Reset(channel);
 }
 
-InteropClient::InteropClient(std::shared_ptr<Channel> channel)
-    : serviceStub_(channel, true) {}
-
 InteropClient::InteropClient(std::shared_ptr<Channel> channel,
-                             bool new_stub_every_test_case)
-    : serviceStub_(channel, new_stub_every_test_case) {}
+                             bool new_stub_every_test_case,
+                             bool do_not_abort_on_transient_failures)
+    : serviceStub_(channel, new_stub_every_test_case),
+      do_not_abort_on_transient_failures_(do_not_abort_on_transient_failures) {}
 
-void InteropClient::AssertOkOrPrintErrorStatus(const Status& s) {
+bool InteropClient::AssertStatusOk(const Status& s) {
   if (s.ok()) {
-    return;
+    return true;
   }
-  gpr_log(GPR_ERROR, "Error status code: %d, message: %s", s.error_code(),
-          s.error_message().c_str());
-  GPR_ASSERT(0);
+
+  // Note: At this point, s.error_code is definitely not StatusCode::OK (we
+  // already checked for s.ok() above). So, the following will call abort()
+  // (unless s.error_code() corresponds to a transient failure and
+  // 'do_not_abort_on_transient_failures' is true)
+  return AssertStatusCode(s, StatusCode::OK);
 }
 
-void InteropClient::DoEmpty() {
+bool InteropClient::AssertStatusCode(const Status& s,
+                                     StatusCode expected_code) {
+  if (s.error_code() == expected_code) {
+    return true;
+  }
+
+  gpr_log(GPR_ERROR, "Error status code: %d (expected: %d), message: %s",
+          s.error_code(), expected_code, s.error_message().c_str());
+
+  // In case of transient transient/retryable failures (like a broken
+  // connection) we may or may not abort (see TransientFailureOrAbort())
+  if (s.error_code() == grpc::StatusCode::UNAVAILABLE) {
+    return TransientFailureOrAbort();
+  }
+
+  abort();
+}
+
+bool InteropClient::DoEmpty() {
   gpr_log(GPR_DEBUG, "Sending an empty rpc...");
 
   Empty request = Empty::default_instance();
@@ -158,17 +178,21 @@
   ClientContext context;
 
   Status s = serviceStub_.Get()->EmptyCall(&context, request, &response);
-  AssertOkOrPrintErrorStatus(s);
+
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
 
   gpr_log(GPR_DEBUG, "Empty rpc done.");
+  return true;
 }
 
-void InteropClient::PerformLargeUnary(SimpleRequest* request,
+bool InteropClient::PerformLargeUnary(SimpleRequest* request,
                                       SimpleResponse* response) {
-  PerformLargeUnary(request, response, NoopChecks);
+  return PerformLargeUnary(request, response, NoopChecks);
 }
 
-void InteropClient::PerformLargeUnary(SimpleRequest* request,
+bool InteropClient::PerformLargeUnary(SimpleRequest* request,
                                       SimpleResponse* response,
                                       CheckerFn custom_checks_fn) {
   ClientContext context;
@@ -180,7 +204,9 @@
   request->mutable_payload()->set_body(payload.c_str(), kLargeRequestSize);
 
   Status s = serviceStub_.Get()->UnaryCall(&context, *request, response);
-  AssertOkOrPrintErrorStatus(s);
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
 
   custom_checks_fn(inspector, request, response);
 
@@ -203,9 +229,11 @@
     default:
       GPR_ASSERT(false);
   }
+
+  return true;
 }
 
-void InteropClient::DoComputeEngineCreds(
+bool InteropClient::DoComputeEngineCreds(
     const grpc::string& default_service_account,
     const grpc::string& oauth_scope) {
   gpr_log(GPR_DEBUG,
@@ -215,7 +243,11 @@
   request.set_fill_username(true);
   request.set_fill_oauth_scope(true);
   request.set_response_type(PayloadType::COMPRESSABLE);
-  PerformLargeUnary(&request, &response);
+
+  if (!PerformLargeUnary(&request, &response)) {
+    return false;
+  }
+
   gpr_log(GPR_DEBUG, "Got username %s", response.username().c_str());
   gpr_log(GPR_DEBUG, "Got oauth_scope %s", response.oauth_scope().c_str());
   GPR_ASSERT(!response.username().empty());
@@ -224,9 +256,10 @@
   const char* oauth_scope_str = response.oauth_scope().c_str();
   GPR_ASSERT(oauth_scope.find(oauth_scope_str) != grpc::string::npos);
   gpr_log(GPR_DEBUG, "Large unary with compute engine creds done.");
+  return true;
 }
 
-void InteropClient::DoOauth2AuthToken(const grpc::string& username,
+bool InteropClient::DoOauth2AuthToken(const grpc::string& username,
                                       const grpc::string& oauth_scope) {
   gpr_log(GPR_DEBUG,
           "Sending a unary rpc with raw oauth2 access token credentials ...");
@@ -239,16 +272,20 @@
 
   Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
 
-  AssertOkOrPrintErrorStatus(s);
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
+
   GPR_ASSERT(!response.username().empty());
   GPR_ASSERT(!response.oauth_scope().empty());
   GPR_ASSERT(username == response.username());
   const char* oauth_scope_str = response.oauth_scope().c_str();
   GPR_ASSERT(oauth_scope.find(oauth_scope_str) != grpc::string::npos);
   gpr_log(GPR_DEBUG, "Unary with oauth2 access token credentials done.");
+  return true;
 }
 
-void InteropClient::DoPerRpcCreds(const grpc::string& json_key) {
+bool InteropClient::DoPerRpcCreds(const grpc::string& json_key) {
   gpr_log(GPR_DEBUG, "Sending a unary rpc with per-rpc JWT access token ...");
   SimpleRequest request;
   SimpleResponse response;
@@ -263,35 +300,47 @@
 
   Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
 
-  AssertOkOrPrintErrorStatus(s);
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
+
   GPR_ASSERT(!response.username().empty());
   GPR_ASSERT(json_key.find(response.username()) != grpc::string::npos);
   gpr_log(GPR_DEBUG, "Unary with per-rpc JWT access token done.");
+  return true;
 }
 
-void InteropClient::DoJwtTokenCreds(const grpc::string& username) {
+bool InteropClient::DoJwtTokenCreds(const grpc::string& username) {
   gpr_log(GPR_DEBUG,
           "Sending a large unary rpc with JWT token credentials ...");
   SimpleRequest request;
   SimpleResponse response;
   request.set_fill_username(true);
   request.set_response_type(PayloadType::COMPRESSABLE);
-  PerformLargeUnary(&request, &response);
+
+  if (!PerformLargeUnary(&request, &response)) {
+    return false;
+  }
+
   GPR_ASSERT(!response.username().empty());
   GPR_ASSERT(username.find(response.username()) != grpc::string::npos);
   gpr_log(GPR_DEBUG, "Large unary with JWT token creds done.");
+  return true;
 }
 
-void InteropClient::DoLargeUnary() {
+bool InteropClient::DoLargeUnary() {
   gpr_log(GPR_DEBUG, "Sending a large unary rpc...");
   SimpleRequest request;
   SimpleResponse response;
   request.set_response_type(PayloadType::COMPRESSABLE);
-  PerformLargeUnary(&request, &response);
+  if (!PerformLargeUnary(&request, &response)) {
+    return false;
+  }
   gpr_log(GPR_DEBUG, "Large unary done.");
+  return true;
 }
 
-void InteropClient::DoLargeCompressedUnary() {
+bool InteropClient::DoLargeCompressedUnary() {
   const CompressionType compression_types[] = {NONE, GZIP, DEFLATE};
   const PayloadType payload_types[] = {COMPRESSABLE, UNCOMPRESSABLE, RANDOM};
   for (size_t i = 0; i < GPR_ARRAY_SIZE(payload_types); i++) {
@@ -307,14 +356,32 @@
       SimpleResponse response;
       request.set_response_type(payload_types[i]);
       request.set_response_compression(compression_types[j]);
-      PerformLargeUnary(&request, &response, CompressionChecks);
+
+      if (!PerformLargeUnary(&request, &response, CompressionChecks)) {
+        gpr_log(GPR_ERROR, "Large compressed unary failed %s", log_suffix);
+        gpr_free(log_suffix);
+        return false;
+      }
+
       gpr_log(GPR_DEBUG, "Large compressed unary done %s.", log_suffix);
       gpr_free(log_suffix);
     }
   }
+
+  return true;
 }
 
-void InteropClient::DoRequestStreaming() {
+// Either abort() (unless do_not_abort_on_transient_failures_ is true) or return
+// false
+bool InteropClient::TransientFailureOrAbort() {
+  if (do_not_abort_on_transient_failures_) {
+    return false;
+  }
+
+  abort();
+}
+
+bool InteropClient::DoRequestStreaming() {
   gpr_log(GPR_DEBUG, "Sending request steaming rpc ...");
 
   ClientContext context;
@@ -328,19 +395,25 @@
   for (unsigned int i = 0; i < request_stream_sizes.size(); ++i) {
     Payload* payload = request.mutable_payload();
     payload->set_body(grpc::string(request_stream_sizes[i], '\0'));
-    GPR_ASSERT(stream->Write(request));
+    if (!stream->Write(request)) {
+      gpr_log(GPR_ERROR, "DoRequestStreaming(): stream->Write() failed");
+      return TransientFailureOrAbort();
+    }
     aggregated_payload_size += request_stream_sizes[i];
   }
   stream->WritesDone();
+
   Status s = stream->Finish();
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
 
   GPR_ASSERT(response.aggregated_payload_size() == aggregated_payload_size);
-  AssertOkOrPrintErrorStatus(s);
-  gpr_log(GPR_DEBUG, "Request streaming done.");
+  return true;
 }
 
-void InteropClient::DoResponseStreaming() {
-  gpr_log(GPR_DEBUG, "Receiving response steaming rpc ...");
+bool InteropClient::DoResponseStreaming() {
+  gpr_log(GPR_DEBUG, "Receiving response streaming rpc ...");
 
   ClientContext context;
   StreamingOutputCallRequest request;
@@ -358,13 +431,27 @@
                grpc::string(response_stream_sizes[i], '\0'));
     ++i;
   }
-  GPR_ASSERT(response_stream_sizes.size() == i);
+
+  if (i < response_stream_sizes.size()) {
+    // stream->Read() failed before reading all the expected messages. This is
+    // most likely due to connection failure.
+    gpr_log(GPR_ERROR,
+            "DoResponseStreaming(): Read fewer streams (%d) than "
+            "response_stream_sizes.size() (%d)",
+            i, response_stream_sizes.size());
+    return TransientFailureOrAbort();
+  }
+
   Status s = stream->Finish();
-  AssertOkOrPrintErrorStatus(s);
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
+
   gpr_log(GPR_DEBUG, "Response streaming done.");
+  return true;
 }
 
-void InteropClient::DoResponseCompressedStreaming() {
+bool InteropClient::DoResponseCompressedStreaming() {
   const CompressionType compression_types[] = {NONE, GZIP, DEFLATE};
   const PayloadType payload_types[] = {COMPRESSABLE, UNCOMPRESSABLE, RANDOM};
   for (size_t i = 0; i < GPR_ARRAY_SIZE(payload_types); i++) {
@@ -378,7 +465,7 @@
                    CompressionType_Name(compression_types[j]).c_str(),
                    PayloadType_Name(payload_types[i]).c_str());
 
-      gpr_log(GPR_DEBUG, "Receiving response steaming rpc %s.", log_suffix);
+      gpr_log(GPR_DEBUG, "Receiving response streaming rpc %s.", log_suffix);
 
       request.set_response_type(payload_types[i]);
       request.set_response_compression(compression_types[j]);
@@ -432,18 +519,32 @@
         ++k;
       }
 
-      GPR_ASSERT(response_stream_sizes.size() == k);
-      Status s = stream->Finish();
-
-      AssertOkOrPrintErrorStatus(s);
       gpr_log(GPR_DEBUG, "Response streaming done %s.", log_suffix);
       gpr_free(log_suffix);
+
+      if (k < response_stream_sizes.size()) {
+        // stream->Read() failed before reading all the expected messages. This
+        // is most likely due to a connection failure.
+        gpr_log(GPR_ERROR,
+                "DoResponseCompressedStreaming(): Responses read (k=%d) is "
+                "less than the expected messages (i.e "
+                "response_stream_sizes.size() (%d)). (i=%d, j=%d)",
+                k, response_stream_sizes.size(), i, j);
+        return TransientFailureOrAbort();
+      }
+
+      Status s = stream->Finish();
+      if (!AssertStatusOk(s)) {
+        return false;
+      }
     }
   }
+
+  return true;
 }
 
-void InteropClient::DoResponseStreamingWithSlowConsumer() {
-  gpr_log(GPR_DEBUG, "Receiving response steaming rpc with slow consumer ...");
+bool InteropClient::DoResponseStreamingWithSlowConsumer() {
+  gpr_log(GPR_DEBUG, "Receiving response streaming rpc with slow consumer ...");
 
   ClientContext context;
   StreamingOutputCallRequest request;
@@ -464,14 +565,26 @@
     usleep(kReceiveDelayMilliSeconds * 1000);
     ++i;
   }
-  GPR_ASSERT(kNumResponseMessages == i);
-  Status s = stream->Finish();
 
-  AssertOkOrPrintErrorStatus(s);
+  if (i < kNumResponseMessages) {
+    gpr_log(GPR_ERROR,
+            "DoResponseStreamingWithSlowConsumer(): Responses read (i=%d) is "
+            "less than the expected messages (i.e kNumResponseMessages = %d)",
+            i, kNumResponseMessages);
+
+    return TransientFailureOrAbort();
+  }
+
+  Status s = stream->Finish();
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
+
   gpr_log(GPR_DEBUG, "Response streaming done.");
+  return true;
 }
 
-void InteropClient::DoHalfDuplex() {
+bool InteropClient::DoHalfDuplex() {
   gpr_log(GPR_DEBUG, "Sending half-duplex streaming rpc ...");
 
   ClientContext context;
@@ -483,7 +596,11 @@
   ResponseParameters* response_parameter = request.add_response_parameters();
   for (unsigned int i = 0; i < response_stream_sizes.size(); ++i) {
     response_parameter->set_size(response_stream_sizes[i]);
-    GPR_ASSERT(stream->Write(request));
+
+    if (!stream->Write(request)) {
+      gpr_log(GPR_ERROR, "DoHalfDuplex(): stream->Write() failed. i=%d", i);
+      return TransientFailureOrAbort();
+    }
   }
   stream->WritesDone();
 
@@ -494,13 +611,27 @@
                grpc::string(response_stream_sizes[i], '\0'));
     ++i;
   }
-  GPR_ASSERT(response_stream_sizes.size() == i);
+
+  if (i < response_stream_sizes.size()) {
+    // stream->Read() failed before reading all the expected messages. This is
+    // most likely due to a connection failure
+    gpr_log(GPR_ERROR,
+            "DoHalfDuplex(): Responses read (i=%d) are less than the expected "
+            "number of messages response_stream_sizes.size() (%d)",
+            i, response_stream_sizes.size());
+    return TransientFailureOrAbort();
+  }
+
   Status s = stream->Finish();
-  AssertOkOrPrintErrorStatus(s);
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
+
   gpr_log(GPR_DEBUG, "Half-duplex streaming rpc done.");
+  return true;
 }
 
-void InteropClient::DoPingPong() {
+bool InteropClient::DoPingPong() {
   gpr_log(GPR_DEBUG, "Sending Ping Pong streaming rpc ...");
 
   ClientContext context;
@@ -513,24 +644,40 @@
   ResponseParameters* response_parameter = request.add_response_parameters();
   Payload* payload = request.mutable_payload();
   StreamingOutputCallResponse response;
+
   for (unsigned int i = 0; i < request_stream_sizes.size(); ++i) {
     response_parameter->set_size(response_stream_sizes[i]);
     payload->set_body(grpc::string(request_stream_sizes[i], '\0'));
-    GPR_ASSERT(stream->Write(request));
-    GPR_ASSERT(stream->Read(&response));
+
+    if (!stream->Write(request)) {
+      gpr_log(GPR_ERROR, "DoPingPong(): stream->Write() failed. i: %d", i);
+      return TransientFailureOrAbort();
+    }
+
+    if (!stream->Read(&response)) {
+      gpr_log(GPR_ERROR, "DoPingPong(): stream->Read() failed. i:%d", i);
+      return TransientFailureOrAbort();
+    }
+
     GPR_ASSERT(response.payload().body() ==
                grpc::string(response_stream_sizes[i], '\0'));
   }
 
   stream->WritesDone();
+
   GPR_ASSERT(!stream->Read(&response));
+
   Status s = stream->Finish();
-  AssertOkOrPrintErrorStatus(s);
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
+
   gpr_log(GPR_DEBUG, "Ping pong streaming done.");
+  return true;
 }
 
-void InteropClient::DoCancelAfterBegin() {
-  gpr_log(GPR_DEBUG, "Sending request steaming rpc ...");
+bool InteropClient::DoCancelAfterBegin() {
+  gpr_log(GPR_DEBUG, "Sending request streaming rpc ...");
 
   ClientContext context;
   StreamingInputCallRequest request;
@@ -542,11 +689,16 @@
   gpr_log(GPR_DEBUG, "Trying to cancel...");
   context.TryCancel();
   Status s = stream->Finish();
-  GPR_ASSERT(s.error_code() == StatusCode::CANCELLED);
+
+  if (!AssertStatusCode(s, StatusCode::CANCELLED)) {
+    return false;
+  }
+
   gpr_log(GPR_DEBUG, "Canceling streaming done.");
+  return true;
 }
 
-void InteropClient::DoCancelAfterFirstResponse() {
+bool InteropClient::DoCancelAfterFirstResponse() {
   gpr_log(GPR_DEBUG, "Sending Ping Pong streaming rpc ...");
 
   ClientContext context;
@@ -560,17 +712,27 @@
   response_parameter->set_size(31415);
   request.mutable_payload()->set_body(grpc::string(27182, '\0'));
   StreamingOutputCallResponse response;
-  GPR_ASSERT(stream->Write(request));
-  GPR_ASSERT(stream->Read(&response));
+
+  if (!stream->Write(request)) {
+    gpr_log(GPR_ERROR, "DoCancelAfterFirstResponse(): stream->Write() failed");
+    return TransientFailureOrAbort();
+  }
+
+  if (!stream->Read(&response)) {
+    gpr_log(GPR_ERROR, "DoCancelAfterFirstResponse(): stream->Read failed");
+    return TransientFailureOrAbort();
+  }
   GPR_ASSERT(response.payload().body() == grpc::string(31415, '\0'));
+
   gpr_log(GPR_DEBUG, "Trying to cancel...");
   context.TryCancel();
 
   Status s = stream->Finish();
   gpr_log(GPR_DEBUG, "Canceling pingpong streaming done.");
+  return true;
 }
 
-void InteropClient::DoTimeoutOnSleepingServer() {
+bool InteropClient::DoTimeoutOnSleepingServer() {
   gpr_log(GPR_DEBUG,
           "Sending Ping Pong streaming rpc with a short deadline...");
 
@@ -587,11 +749,15 @@
   stream->Write(request);
 
   Status s = stream->Finish();
-  GPR_ASSERT(s.error_code() == StatusCode::DEADLINE_EXCEEDED);
+  if (!AssertStatusCode(s, StatusCode::DEADLINE_EXCEEDED)) {
+    return false;
+  }
+
   gpr_log(GPR_DEBUG, "Pingpong streaming timeout done.");
+  return true;
 }
 
-void InteropClient::DoEmptyStream() {
+bool InteropClient::DoEmptyStream() {
   gpr_log(GPR_DEBUG, "Starting empty_stream.");
 
   ClientContext context;
@@ -601,12 +767,17 @@
   stream->WritesDone();
   StreamingOutputCallResponse response;
   GPR_ASSERT(stream->Read(&response) == false);
+
   Status s = stream->Finish();
-  AssertOkOrPrintErrorStatus(s);
+  if (!AssertStatusOk(s)) {
+    return false;
+  }
+
   gpr_log(GPR_DEBUG, "empty_stream done.");
+  return true;
 }
 
-void InteropClient::DoStatusWithMessage() {
+bool InteropClient::DoStatusWithMessage() {
   gpr_log(GPR_DEBUG,
           "Sending RPC with a request for status code 2 and message");
 
@@ -620,12 +791,16 @@
 
   Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
 
-  GPR_ASSERT(s.error_code() == grpc::StatusCode::UNKNOWN);
+  if (!AssertStatusCode(s, grpc::StatusCode::UNKNOWN)) {
+    return false;
+  }
+
   GPR_ASSERT(s.error_message() == test_msg);
   gpr_log(GPR_DEBUG, "Done testing Status and Message");
+  return true;
 }
 
-void InteropClient::DoCustomMetadata() {
+bool InteropClient::DoCustomMetadata() {
   const grpc::string kEchoInitialMetadataKey("x-grpc-test-echo-initial");
   const grpc::string kInitialMetadataValue("test_initial_metadata_value");
   const grpc::string kEchoTrailingBinMetadataKey(
@@ -645,7 +820,10 @@
     request.mutable_payload()->set_body(payload.c_str(), kLargeRequestSize);
 
     Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
-    AssertOkOrPrintErrorStatus(s);
+    if (!AssertStatusOk(s)) {
+      return false;
+    }
+
     const auto& server_initial_metadata = context.GetServerInitialMetadata();
     auto iter = server_initial_metadata.find(kEchoInitialMetadataKey);
     GPR_ASSERT(iter != server_initial_metadata.end());
@@ -675,14 +853,29 @@
     grpc::string payload(kLargeRequestSize, '\0');
     request.mutable_payload()->set_body(payload.c_str(), kLargeRequestSize);
     StreamingOutputCallResponse response;
-    GPR_ASSERT(stream->Write(request));
+
+    if (!stream->Write(request)) {
+      gpr_log(GPR_ERROR, "DoCustomMetadata(): stream->Write() failed");
+      return TransientFailureOrAbort();
+    }
+
     stream->WritesDone();
-    GPR_ASSERT(stream->Read(&response));
+
+    if (!stream->Read(&response)) {
+      gpr_log(GPR_ERROR, "DoCustomMetadata(): stream->Read() failed");
+      return TransientFailureOrAbort();
+    }
+
     GPR_ASSERT(response.payload().body() ==
                grpc::string(kLargeResponseSize, '\0'));
+
     GPR_ASSERT(!stream->Read(&response));
+
     Status s = stream->Finish();
-    AssertOkOrPrintErrorStatus(s);
+    if (!AssertStatusOk(s)) {
+      return false;
+    }
+
     const auto& server_initial_metadata = context.GetServerInitialMetadata();
     auto iter = server_initial_metadata.find(kEchoInitialMetadataKey);
     GPR_ASSERT(iter != server_initial_metadata.end());
@@ -695,6 +888,8 @@
 
     gpr_log(GPR_DEBUG, "Done testing stream with custom metadata");
   }
+
+  return true;
 }
 
 }  // namespace testing
diff --git a/test/cpp/interop/interop_client.h b/test/cpp/interop/interop_client.h
index a3794fd..ae75762 100644
--- a/test/cpp/interop/interop_client.h
+++ b/test/cpp/interop/interop_client.h
@@ -51,41 +51,42 @@
 
 class InteropClient {
  public:
-  explicit InteropClient(std::shared_ptr<Channel> channel);
-  explicit InteropClient(
-      std::shared_ptr<Channel> channel,
-      bool new_stub_every_test_case);  // If new_stub_every_test_case is true,
-                                       // a new TestService::Stub object is
-                                       // created for every test case below
+  /// If new_stub_every_test_case is true, a new TestService::Stub object is
+  /// created for every test case
+  /// If do_not_abort_on_transient_failures is true, abort() is not called in
+  /// case of transient failures (like connection failures)
+  explicit InteropClient(std::shared_ptr<Channel> channel,
+                         bool new_stub_every_test_case,
+                         bool do_not_abort_on_transient_failures);
   ~InteropClient() {}
 
   void Reset(std::shared_ptr<Channel> channel);
 
-  void DoEmpty();
-  void DoLargeUnary();
-  void DoLargeCompressedUnary();
-  void DoPingPong();
-  void DoHalfDuplex();
-  void DoRequestStreaming();
-  void DoResponseStreaming();
-  void DoResponseCompressedStreaming();
-  void DoResponseStreamingWithSlowConsumer();
-  void DoCancelAfterBegin();
-  void DoCancelAfterFirstResponse();
-  void DoTimeoutOnSleepingServer();
-  void DoEmptyStream();
-  void DoStatusWithMessage();
-  void DoCustomMetadata();
+  bool DoEmpty();
+  bool DoLargeUnary();
+  bool DoLargeCompressedUnary();
+  bool DoPingPong();
+  bool DoHalfDuplex();
+  bool DoRequestStreaming();
+  bool DoResponseStreaming();
+  bool DoResponseCompressedStreaming();
+  bool DoResponseStreamingWithSlowConsumer();
+  bool DoCancelAfterBegin();
+  bool DoCancelAfterFirstResponse();
+  bool DoTimeoutOnSleepingServer();
+  bool DoEmptyStream();
+  bool DoStatusWithMessage();
+  bool DoCustomMetadata();
   // Auth tests.
   // username is a string containing the user email
-  void DoJwtTokenCreds(const grpc::string& username);
-  void DoComputeEngineCreds(const grpc::string& default_service_account,
+  bool DoJwtTokenCreds(const grpc::string& username);
+  bool DoComputeEngineCreds(const grpc::string& default_service_account,
                             const grpc::string& oauth_scope);
   // username the GCE default service account email
-  void DoOauth2AuthToken(const grpc::string& username,
+  bool DoOauth2AuthToken(const grpc::string& username,
                          const grpc::string& oauth_scope);
   // username is a string containing the user email
-  void DoPerRpcCreds(const grpc::string& json_key);
+  bool DoPerRpcCreds(const grpc::string& json_key);
 
  private:
   class ServiceStub {
@@ -105,13 +106,18 @@
                                 // Get() call
   };
 
-  void PerformLargeUnary(SimpleRequest* request, SimpleResponse* response);
+  bool PerformLargeUnary(SimpleRequest* request, SimpleResponse* response);
 
   /// Run \a custom_check_fn as an additional check.
-  void PerformLargeUnary(SimpleRequest* request, SimpleResponse* response,
+  bool PerformLargeUnary(SimpleRequest* request, SimpleResponse* response,
                          CheckerFn custom_checks_fn);
-  void AssertOkOrPrintErrorStatus(const Status& s);
+  bool AssertStatusOk(const Status& s);
+  bool AssertStatusCode(const Status& s, StatusCode expected_code);
+  bool TransientFailureOrAbort();
   ServiceStub serviceStub_;
+
+  /// If true, abort() is not called for transient failures
+  bool do_not_abort_on_transient_failures_;
 };
 
 }  // namespace testing
diff --git a/test/cpp/interop/stress_interop_client.cc b/test/cpp/interop/stress_interop_client.cc
index f287a5a..aa95682 100644
--- a/test/cpp/interop/stress_interop_client.cc
+++ b/test/cpp/interop/stress_interop_client.cc
@@ -84,11 +84,12 @@
     int test_id, const grpc::string& server_address,
     std::shared_ptr<Channel> channel,
     const WeightedRandomTestSelector& test_selector, long test_duration_secs,
-    long sleep_duration_ms)
+    long sleep_duration_ms, bool do_not_abort_on_transient_failures)
     : test_id_(test_id),
       server_address_(server_address),
       channel_(channel),
-      interop_client_(new InteropClient(channel, false)),
+      interop_client_(new InteropClient(channel, false,
+                                        do_not_abort_on_transient_failures)),
       test_selector_(test_selector),
       test_duration_secs_(test_duration_secs),
       sleep_duration_ms_(sleep_duration_ms) {}
@@ -126,31 +127,67 @@
   }
 }
 
-// TODO(sree): Add all interop tests
-void StressTestInteropClient::RunTest(TestCaseType test_case) {
+bool StressTestInteropClient::RunTest(TestCaseType test_case) {
+  bool is_success = false;
   switch (test_case) {
     case EMPTY_UNARY: {
-      interop_client_->DoEmpty();
+      is_success = interop_client_->DoEmpty();
       break;
     }
     case LARGE_UNARY: {
-      interop_client_->DoLargeUnary();
+      is_success = interop_client_->DoLargeUnary();
       break;
     }
     case LARGE_COMPRESSED_UNARY: {
-      interop_client_->DoLargeCompressedUnary();
+      is_success = interop_client_->DoLargeCompressedUnary();
       break;
     }
     case CLIENT_STREAMING: {
-      interop_client_->DoRequestStreaming();
+      is_success = interop_client_->DoRequestStreaming();
       break;
     }
     case SERVER_STREAMING: {
-      interop_client_->DoResponseStreaming();
+      is_success = interop_client_->DoResponseStreaming();
+      break;
+    }
+    case SERVER_COMPRESSED_STREAMING: {
+      is_success = interop_client_->DoResponseCompressedStreaming();
+      break;
+    }
+    case SLOW_CONSUMER: {
+      is_success = interop_client_->DoResponseStreamingWithSlowConsumer();
+      break;
+    }
+    case HALF_DUPLEX: {
+      is_success = interop_client_->DoHalfDuplex();
+      break;
+    }
+    case PING_PONG: {
+      is_success = interop_client_->DoPingPong();
+      break;
+    }
+    case CANCEL_AFTER_BEGIN: {
+      is_success = interop_client_->DoCancelAfterBegin();
+      break;
+    }
+    case CANCEL_AFTER_FIRST_RESPONSE: {
+      is_success = interop_client_->DoCancelAfterFirstResponse();
+      break;
+    }
+    case TIMEOUT_ON_SLEEPING_SERVER: {
+      is_success = interop_client_->DoTimeoutOnSleepingServer();
       break;
     }
     case EMPTY_STREAM: {
-      interop_client_->DoEmptyStream();
+      is_success = interop_client_->DoEmptyStream();
+      break;
+    }
+    case STATUS_CODE_AND_MESSAGE: {
+      is_success = interop_client_->DoStatusWithMessage();
+      break;
+    }
+    case CUSTOM_METADATA: {
+      is_success = interop_client_->DoCustomMetadata();
       break;
     }
     default: {
@@ -159,6 +196,8 @@
       break;
     }
   }
+
+  return is_success;
 }
 
 }  // namespace testing
diff --git a/test/cpp/interop/stress_interop_client.h b/test/cpp/interop/stress_interop_client.h
index cb0cd98..aa93b58 100644
--- a/test/cpp/interop/stress_interop_client.h
+++ b/test/cpp/interop/stress_interop_client.h
@@ -49,7 +49,6 @@
 using std::pair;
 using std::vector;
 
-// TODO(sreek): Add more test cases here in future
 enum TestCaseType {
   UNKNOWN_TEST = -1,
   EMPTY_UNARY = 0,
@@ -57,7 +56,16 @@
   LARGE_COMPRESSED_UNARY = 2,
   CLIENT_STREAMING = 3,
   SERVER_STREAMING = 4,
-  EMPTY_STREAM = 5
+  SERVER_COMPRESSED_STREAMING = 5,
+  SLOW_CONSUMER = 6,
+  HALF_DUPLEX = 7,
+  PING_PONG = 8,
+  CANCEL_AFTER_BEGIN = 9,
+  CANCEL_AFTER_FIRST_RESPONSE = 10,
+  TIMEOUT_ON_SLEEPING_SERVER = 11,
+  EMPTY_STREAM = 12,
+  STATUS_CODE_AND_MESSAGE = 13,
+  CUSTOM_METADATA = 14
 };
 
 const vector<pair<TestCaseType, grpc::string>> kTestCaseList = {
@@ -66,7 +74,16 @@
     {LARGE_COMPRESSED_UNARY, "large_compressed_unary"},
     {CLIENT_STREAMING, "client_streaming"},
     {SERVER_STREAMING, "server_streaming"},
-    {EMPTY_STREAM, "empty_stream"}};
+    {SERVER_COMPRESSED_STREAMING, "server_compressed_streaming"},
+    {SLOW_CONSUMER, "slow_consumer"},
+    {HALF_DUPLEX, "half_duplex"},
+    {PING_PONG, "ping_pong"},
+    {CANCEL_AFTER_BEGIN, "cancel_after_begin"},
+    {CANCEL_AFTER_FIRST_RESPONSE, "cancel_after_first_response"},
+    {TIMEOUT_ON_SLEEPING_SERVER, "timeout_on_sleeping_server"},
+    {EMPTY_STREAM, "empty_stream"},
+    {STATUS_CODE_AND_MESSAGE, "status_code_and_message"},
+    {CUSTOM_METADATA, "custom_metadata"}};
 
 class WeightedRandomTestSelector {
  public:
@@ -87,14 +104,15 @@
   StressTestInteropClient(int test_id, const grpc::string& server_address,
                           std::shared_ptr<Channel> channel,
                           const WeightedRandomTestSelector& test_selector,
-                          long test_duration_secs, long sleep_duration_ms);
+                          long test_duration_secs, long sleep_duration_ms,
+                          bool do_not_abort_on_transient_failures);
 
   // The main function. Use this as the thread entry point.
   // qps_gauge is the QpsGauge to record the requests per second metric
   void MainLoop(std::shared_ptr<QpsGauge> qps_gauge);
 
  private:
-  void RunTest(TestCaseType test_case);
+  bool RunTest(TestCaseType test_case);
 
   int test_id_;
   const grpc::string& server_address_;
diff --git a/test/cpp/interop/stress_test.cc b/test/cpp/interop/stress_test.cc
index d9e3fd2..7787931 100644
--- a/test/cpp/interop/stress_test.cc
+++ b/test/cpp/interop/stress_test.cc
@@ -89,7 +89,16 @@
               "   large_compressed_unary\n"
               "   client_streaming\n"
               "   server_streaming\n"
+              "   server_compressed_streaming\n"
+              "   slow_consumer\n"
+              "   half_duplex\n"
+              "   ping_pong\n"
+              "   cancel_after_begin\n"
+              "   cancel_after_first_response\n"
+              "   timeout_on_sleeping_server\n"
               "   empty_stream\n"
+              "   status_code_and_message\n"
+              "   custom_metadata\n"
               " Example: \"empty_unary:20,large_unary:10,empty_stream:70\"\n"
               " The above will execute 'empty_unary', 20% of the time,"
               " 'large_unary', 10% of the time and 'empty_stream' the remaining"
@@ -101,6 +110,10 @@
              "The choices are: 0 (GPR_LOG_SEVERITY_DEBUG), 1 "
              "(GPR_LOG_SEVERITY_INFO) and 2 (GPR_LOG_SEVERITY_ERROR)");
 
+DEFINE_bool(do_not_abort_on_transient_failures, true,
+            "If set to 'true', abort() is not called in case of transient "
+            "failures like temporary connection failures.");
+
 using grpc::testing::kTestCaseList;
 using grpc::testing::MetricsService;
 using grpc::testing::MetricsServiceImpl;
@@ -189,6 +202,12 @@
   gpr_log(GPR_INFO, "test_cases : %s", FLAGS_test_cases.c_str());
   gpr_log(GPR_INFO, "sleep_duration_ms: %d", FLAGS_sleep_duration_ms);
   gpr_log(GPR_INFO, "test_duration_secs: %d", FLAGS_test_duration_secs);
+  gpr_log(GPR_INFO, "num_channels_per_server: %d",
+          FLAGS_num_channels_per_server);
+  gpr_log(GPR_INFO, "num_stubs_per_channel: %d", FLAGS_num_stubs_per_channel);
+  gpr_log(GPR_INFO, "log_level: %d", FLAGS_log_level);
+  gpr_log(GPR_INFO, "do_not_abort_on_transient_failures: %s",
+          FLAGS_do_not_abort_on_transient_failures ? "true" : "false");
 
   int num = 0;
   for (auto it = addresses.begin(); it != addresses.end(); it++) {
@@ -272,7 +291,7 @@
            stub_idx++) {
         StressTestInteropClient* client = new StressTestInteropClient(
             ++thread_idx, *it, channel, test_selector, FLAGS_test_duration_secs,
-            FLAGS_sleep_duration_ms);
+            FLAGS_sleep_duration_ms, FLAGS_do_not_abort_on_transient_failures);
 
         bool is_already_created = false;
         // QpsGauge name
diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc
index e72cef2..c32160a 100644
--- a/test/cpp/qps/client_async.cc
+++ b/test/cpp/qps/client_async.cc
@@ -84,7 +84,8 @@
       std::function<
           std::unique_ptr<grpc::ClientAsyncResponseReader<ResponseType>>(
               BenchmarkService::Stub*, grpc::ClientContext*, const RequestType&,
-              CompletionQueue*)> start_req,
+              CompletionQueue*)>
+          start_req,
       std::function<void(grpc::Status, ResponseType*)> on_done)
       : context_(),
         stub_(stub),
@@ -165,7 +166,8 @@
   AsyncClient(const ClientConfig& config,
               std::function<ClientRpcContext*(
                   StubType*, std::function<gpr_timespec()> next_issue,
-                  const RequestType&)> setup_ctx,
+                  const RequestType&)>
+                  setup_ctx,
               std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)>
                   create_stub)
       : ClientImpl<StubType, RequestType>(config, create_stub),
@@ -278,7 +280,8 @@
       std::function<std::unique_ptr<
           grpc::ClientAsyncReaderWriter<RequestType, ResponseType>>(
           BenchmarkService::Stub*, grpc::ClientContext*, CompletionQueue*,
-          void*)> start_req,
+          void*)>
+          start_req,
       std::function<void(grpc::Status, ResponseType*)> on_done)
       : context_(),
         stub_(stub),
@@ -405,7 +408,8 @@
       std::function<gpr_timespec()> next_issue,
       std::function<std::unique_ptr<grpc::GenericClientAsyncReaderWriter>(
           grpc::GenericStub*, grpc::ClientContext*,
-          const grpc::string& method_name, CompletionQueue*, void*)> start_req,
+          const grpc::string& method_name, CompletionQueue*, void*)>
+          start_req,
       std::function<void(grpc::Status, ByteBuffer*)> on_done)
       : context_(),
         stub_(stub),
diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc
index 2583ceb..04b2b45 100644
--- a/test/cpp/qps/driver.cc
+++ b/test/cpp/qps/driver.cc
@@ -83,6 +83,7 @@
       auto stub = WorkerService::NewStub(
           CreateChannel(*it, InsecureChannelCredentials()));
       grpc::ClientContext ctx;
+      ctx.set_fail_fast(false);
       CoreRequest dummy;
       CoreResponse cores;
       grpc::Status s = stub->CoreCount(&ctx, dummy, &cores);
@@ -166,6 +167,7 @@
 static ClientContext* AllocContext(list<ClientContext>* contexts) {
   contexts->emplace_back();
   auto context = &contexts->back();
+  context->set_fail_fast(false);
   return context;
 }
 
@@ -435,6 +437,7 @@
         CreateChannel(workers[i], InsecureChannelCredentials()));
     Void dummy;
     grpc::ClientContext ctx;
+    ctx.set_fail_fast(false);
     GPR_ASSERT(stub->QuitWorker(&ctx, dummy, &dummy).ok());
   }
 }
diff --git a/test/cpp/qps/gen_build_yaml.py b/test/cpp/qps/gen_build_yaml.py
index 9d6bf2a..6b3329b 100755
--- a/test/cpp/qps/gen_build_yaml.py
+++ b/test/cpp/qps/gen_build_yaml.py
@@ -43,12 +43,16 @@
 
 import performance.scenario_config as scenario_config
 
+def _scenario_json_string(scenario_json):
+  return json.dumps(scenario_config.remove_nonproto_fields(scenario_json))
+
 print yaml.dump({
   'tests': [
     {
       'name': 'json_run_localhost',
-      'shortname': 'json_run_localhost:%s' % js['name'],
-      'args': ['--scenario_json', pipes.quote(json.dumps(js))],
+      'shortname': 'json_run_localhost:%s' % scenario_json['name'],
+      'args': ['--scenario_json',
+               pipes.quote(_scenario_json_string(scenario_json))],
       'ci_platforms': ['linux', 'mac', 'posix', 'windows'],
       'platforms': ['linux', 'mac', 'posix', 'windows'],
       'flaky': False,
@@ -58,6 +62,6 @@
       'cpu_cost': 1000.0,
       'exclude_configs': []
     }
-    for js in scenario_config.CXXLanguage().scenarios()
+    for scenario_json in scenario_config.CXXLanguage().scenarios()
   ]
 })
diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc
index a68f1ae..1234542 100644
--- a/test/cpp/qps/server_async.cc
+++ b/test/cpp/qps/server_async.cc
@@ -73,7 +73,8 @@
                          CompletionQueue *, ServerCompletionQueue *, void *)>
           request_streaming_function,
       std::function<grpc::Status(const PayloadConfig &, const RequestType *,
-                                 ResponseType *)> process_rpc)
+                                 ResponseType *)>
+          process_rpc)
       : Server(config) {
     char *server_address = NULL;
 
@@ -190,7 +191,8 @@
     ServerRpcContextUnaryImpl(
         std::function<void(ServerContextType *, RequestType *,
                            grpc::ServerAsyncResponseWriter<ResponseType> *,
-                           void *)> request_method,
+                           void *)>
+            request_method,
         std::function<grpc::Status(const RequestType *, ResponseType *)>
             invoke_method)
         : srv_ctx_(new ServerContextType),
diff --git a/test/distrib/csharp/DistribTest/DistribTest.csproj b/test/distrib/csharp/DistribTest/DistribTest.csproj
index 7605495..1acb34d 100644
--- a/test/distrib/csharp/DistribTest/DistribTest.csproj
+++ b/test/distrib/csharp/DistribTest/DistribTest.csproj
@@ -113,12 +113,12 @@
     <None Include="packages.config" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="..\packages\grpc.native.csharp.__GRPC_NUGET_VERSION__\build\portable-net45+netcore45+wpa81+wp8\grpc.native.csharp.targets" Condition="Exists('..\packages\grpc.native.csharp.__GRPC_NUGET_VERSION__\build\portable-net45+netcore45+wpa81+wp8\grpc.native.csharp.targets')" />
+  <Import Project="..\packages\Grpc.Core.__GRPC_NUGET_VERSION__\build\net45\Grpc.Core.targets" Condition="Exists('..\packages\Grpc.Core.__GRPC_NUGET_VERSION__\build\net45\Grpc.Core.targets')" />
   <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
     <PropertyGroup>
       <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\grpc.native.csharp.__GRPC_NUGET_VERSION__\build\portable-net45+netcore45+wpa81+wp8\grpc.native.csharp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\grpc.native.csharp.__GRPC_NUGET_VERSION__\build\portable-net45+netcore45+wpa81+wp8\grpc.native.csharp.targets'))" />
+    <Error Condition="!Exists('..\packages\Grpc.Core.__GRPC_NUGET_VERSION__\build\net45\Grpc.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Grpc.Core.__GRPC_NUGET_VERSION__\build\net45\Grpc.Core.targets'))" />
     <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
   </Target>
   <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
@@ -129,4 +129,4 @@
   <Target Name="AfterBuild">
   </Target>
   -->
-</Project>
\ No newline at end of file
+</Project>
diff --git a/test/distrib/csharp/DistribTest/packages.config b/test/distrib/csharp/DistribTest/packages.config
index aca09f6..6963019 100644
--- a/test/distrib/csharp/DistribTest/packages.config
+++ b/test/distrib/csharp/DistribTest/packages.config
@@ -6,11 +6,10 @@
   <package id="Grpc" version="__GRPC_NUGET_VERSION__" targetFramework="net45" />
   <package id="Grpc.Auth" version="__GRPC_NUGET_VERSION__" targetFramework="net45" />
   <package id="Grpc.Core" version="__GRPC_NUGET_VERSION__" targetFramework="net45" />
-  <package id="grpc.native.csharp" version="__GRPC_NUGET_VERSION__" targetFramework="net45" />
   <package id="Ix-Async" version="1.2.3" targetFramework="net45" />
   <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
   <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
   <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
   <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
   <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
-</packages>
\ No newline at end of file
+</packages>
diff --git a/test/distrib/python/run_distrib_test.sh b/test/distrib/python/run_distrib_test.sh
index 79893af..8a983bc 100755
--- a/test/distrib/python/run_distrib_test.sh
+++ b/test/distrib/python/run_distrib_test.sh
@@ -33,8 +33,8 @@
 cd $(dirname $0)
 
 # Pick up the source dist archive whatever its version is
-SDIST_ARCHIVE=$EXTERNAL_GIT_ROOT/input_artifacts/grpcio-*.tar.gz
-BDIST_DIR="file://$EXTERNAL_GIT_ROOT/input_artifacts"
+BDIST_ARCHIVES=$EXTERNAL_GIT_ROOT/input_artifacts/grpcio-*.whl
+TOOLS_BDIST_ARCHIVES=$EXTERNAL_GIT_ROOT/input_artifacts/grpcio_tools-*.whl
 
 if [ ! -f ${SDIST_ARCHIVE} ]
 then
@@ -42,17 +42,25 @@
   exit 1
 fi
 
-PIP=pip2
-which $PIP || PIP=pip
 PYTHON=python2
+PIP=pip2
 which $PYTHON || PYTHON=python
+which $PIP || PIP=pip
 
 # TODO(jtattermusch): this shouldn't be required
-$PIP install --upgrade six
+# TODO(jtattermusch): run the command twice to workaround docker-on-overlay
+# issue https://github.com/docker/docker/issues/12327
+# (first attempt will fail when using docker with overlayFS)
+${PIP} install --upgrade six pip || ${PIP} install --upgrade six pip
 
-GRPC_PYTHON_BINARIES_REPOSITORY="${BDIST_DIR}" \
-    $PIP install \
-    ${SDIST_ARCHIVE}
+# At least one of the bdist packages has to succeed (whichever one matches the
+# test machine, anyway).
+for bdist in ${BDIST_ARCHIVES} ${TOOLS_BDIST_ARCHIVES}; do
+  ($PYTHON -m pip install $bdist) || true
+done
+
+# TODO(jtattermusch): add a .proto file to the distribtest, generate python
+# code from it and then use the generated code from distribtest.py
+$PYTHON -m grpc.tools.protoc
 
 $PYTHON distribtest.py
-
diff --git a/third_party/objective_c/Cronet/cronet_c_for_grpc.h b/third_party/objective_c/Cronet/cronet_c_for_grpc.h
new file mode 100644
index 0000000..15a511a
--- /dev/null
+++ b/third_party/objective_c/Cronet/cronet_c_for_grpc.h
@@ -0,0 +1,202 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
+#define COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stddef.h>
+
+/* Cronet Engine API. */
+
+/* Opaque object representing Cronet Engine. Created and configured outside
+ * of this API to facilitate sharing with other components */
+typedef struct cronet_engine { void* obj; } cronet_engine;
+
+void cronet_engine_add_quic_hint(cronet_engine* engine,
+                                 const char* host,
+                                 int port,
+                                 int alternate_port);
+
+/* Cronet Bidirectional Stream API */
+
+/* Opaque object representing Cronet Bidirectional Stream. */
+typedef struct cronet_bidirectional_stream {
+  void* obj;
+  void* annotation;
+} cronet_bidirectional_stream;
+
+/* A single request or response header element. */
+typedef struct cronet_bidirectional_stream_header {
+  const char* key;
+  const char* value;
+} cronet_bidirectional_stream_header;
+
+/* Array of request or response headers or trailers. */
+typedef struct cronet_bidirectional_stream_header_array {
+  size_t count;
+  size_t capacity;
+  cronet_bidirectional_stream_header* headers;
+} cronet_bidirectional_stream_header_array;
+
+/* Set of callbacks used to receive callbacks from bidirectional stream. */
+typedef struct cronet_bidirectional_stream_callback {
+  /* Invoked when request headers are sent. Indicates that stream has initiated
+   * the request. Consumer may call cronet_bidirectional_stream_write() to start
+   * writing data.
+   */
+  void (*on_request_headers_sent)(cronet_bidirectional_stream* stream);
+
+  /* Invoked when initial response headers are received.
+   * Consumer must call cronet_bidirectional_stream_read() to start reading.
+   * Consumer may call cronet_bidirectional_stream_write() to start writing or
+   * close the stream. Contents of |headers| is valid for duration of the call.
+   */
+  void (*on_response_headers_received)(
+      cronet_bidirectional_stream* stream,
+      const cronet_bidirectional_stream_header_array* headers,
+      const char* negotiated_protocol);
+
+  /* Invoked when data is read into the buffer passed to
+   * cronet_bidirectional_stream_read(). Only part of the buffer may be
+   * populated. To continue reading, call cronet_bidirectional_stream_read().
+   * It may be invoked after on_response_trailers_received()}, if there was
+   * pending read data before trailers were received.
+   *
+   * If count is 0, it means the remote side has signaled that it will send no
+   * more data; future calls to cronet_bidirectional_stream_read() will result
+   * in the on_data_read() callback or on_succeded() callback if
+   * cronet_bidirectional_stream_write() was invoked with end_of_stream set to
+   * true.
+   */
+  void (*on_read_completed)(cronet_bidirectional_stream* stream,
+                            char* data,
+                            int count);
+
+  /**
+   * Invoked when all data passed to cronet_bidirectional_stream_write() is
+   * sent.
+   * To continue writing, call cronet_bidirectional_stream_write().
+   */
+  void (*on_write_completed)(cronet_bidirectional_stream* stream,
+                             const char* data);
+
+  /* Invoked when trailers are received before closing the stream. Only invoked
+   * when server sends trailers, which it may not. May be invoked while there is
+   * read data remaining in local buffer. Contents of |trailers| is valid for
+   * duration of the call.
+   */
+  void (*on_response_trailers_received)(
+      cronet_bidirectional_stream* stream,
+      const cronet_bidirectional_stream_header_array* trailers);
+
+  /**
+   * Invoked when there is no data to be read or written and the stream is
+   * closed successfully remotely and locally. Once invoked, no further callback
+   * methods will be invoked.
+   */
+  void (*on_succeded)(cronet_bidirectional_stream* stream);
+
+  /**
+   * Invoked if the stream failed for any reason after
+   * cronet_bidirectional_stream_start(). HTTP/2 error codes are
+   * mapped to chrome net error codes. Once invoked, no further callback methods
+   * will be invoked.
+   */
+  void (*on_failed)(cronet_bidirectional_stream* stream, int net_error);
+
+  /**
+   * Invoked if the stream was canceled via
+   * cronet_bidirectional_stream_cancel(). Once invoked, no further callback
+   * methods will be invoked.
+   */
+  void (*on_canceled)(cronet_bidirectional_stream* stream);
+} cronet_bidirectional_stream_callback;
+
+/* Create a new stream object that uses |engine| and |callback|. All stream
+ * tasks are performed asynchronously on the |engine| network thread. |callback|
+ * methods are invoked synchronously on the |engine| network thread, but must
+ * not run tasks on the current thread to prevent blocking networking operations
+ * and causing exceptions during shutdown. The |annotation| is stored in
+ * bidirectional stream for arbitrary use by application.
+ *
+ * Returned |cronet_bidirectional_stream*| is owned by the caller, and must be
+ * destroyed using |cronet_bidirectional_stream_destroy|.
+ *
+ * Both |calback| and |engine| must remain valid until stream is destroyed.
+ */
+cronet_bidirectional_stream* cronet_bidirectional_stream_create(
+    cronet_engine* engine,
+    void* annotation,
+    cronet_bidirectional_stream_callback* callback);
+
+/* TBD: The following methods return int. Should it be a custom type? */
+
+/* Destroy stream object. Destroy could be called from any thread, including
+ * network thread, but is posted, so |stream| is valid until calling task is
+ * complete.
+ */
+int cronet_bidirectional_stream_destroy(cronet_bidirectional_stream* stream);
+
+/* Start the stream by sending request to |url| using |method| and |headers|. If
+ * |end_of_stream| is true, then no data is expected to be written.
+ */
+int cronet_bidirectional_stream_start(
+    cronet_bidirectional_stream* stream,
+    const char* url,
+    int priority,
+    const char* method,
+    const cronet_bidirectional_stream_header_array* headers,
+    bool end_of_stream);
+
+/* Read response data into |buffer| of |capacity| length. Must only be called at
+ * most once in response to each invocation of the
+ * on_response_headers_received() and on_read_completed() methods of the
+ * cronet_bidirectional_stream_callback.
+ * Each call will result in an invocation of one of the callback's
+ * on_read_completed  method if data is read, its on_succeeded() method if
+ * the stream is closed, or its on_failed() method if there's an error.
+ */
+int cronet_bidirectional_stream_read(cronet_bidirectional_stream* stream,
+                                     char* buffer,
+                                     int capacity);
+
+/* Read response data into |buffer| of |capacity| length. Must only be called at
+ * most once in response to each invocation of the
+ * on_response_headers_received() and on_read_completed() methods of the
+ * cronet_bidirectional_stream_callback.
+ * Each call will result in an invocation of one of the callback's
+ * on_read_completed  method if data is read, its on_succeeded() method if
+ * the stream is closed, or its on_failed() method if there's an error.
+ */
+int cronet_bidirectional_stream_write(cronet_bidirectional_stream* stream,
+                                      const char* buffer,
+                                      int count,
+                                      bool end_of_stream);
+
+/* Cancels the stream. Can be called at any time after
+ * cronet_bidirectional_stream_start(). The on_canceled() method of
+ * cronet_bidirectional_stream_callback will be invoked when cancelation
+ * is complete and no further callback methods will be invoked. If the
+ * stream has completed or has not started, calling
+ * cronet_bidirectional_stream_cancel() has no effect and on_canceled() will not
+ * be  invoked. At most one callback method may be invoked after
+ * cronet_bidirectional_stream_cancel() has completed.
+ */
+int cronet_bidirectional_stream_cancel(cronet_bidirectional_stream* stream);
+
+/* Returns true if the |stream| was successfully started and is now done
+ * (succeeded, canceled, or failed).
+ * Returns false if the |stream| stream is not yet started or is in progress.
+ */
+bool cronet_bidirectional_stream_is_done(cronet_bidirectional_stream* stream);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
diff --git a/third_party/protobuf b/third_party/protobuf
index d5fb408..a1938b2 160000
--- a/third_party/protobuf
+++ b/third_party/protobuf
@@ -1 +1 @@
-Subproject commit d5fb408ddc281ffcadeb08699e65bb694656d0bd
+Subproject commit a1938b2aa9ca86ce7ce50c27ff9737c1008d2a03
diff --git a/tools/buildgen/plugins/list_api.py b/tools/buildgen/plugins/list_api.py
index ff937a0..1fc4f41 100755
--- a/tools/buildgen/plugins/list_api.py
+++ b/tools/buildgen/plugins/list_api.py
@@ -64,12 +64,13 @@
 
 def mako_plugin(dictionary):
   apis = []
+  headers = []
 
-#  for lib in dictionary['libs']:
-#    if lib['name'] == 'grpc':
-#      apis.extend(list_c_apis(lib['public_headers']))
-  apis.extend(list_c_apis(sorted(headers_under('include/grpc'))))
+  for lib in dictionary['libs']:
+    if lib['name'] in ['grpc', 'gpr']:
+      headers.extend(lib['public_headers'])
 
+  apis.extend(list_c_apis(sorted(set(headers))))
   dictionary['c_apis'] = apis
 
 
diff --git a/tools/buildgen/plugins/make_fuzzer_tests.py b/tools/buildgen/plugins/make_fuzzer_tests.py
index 9d00069..7c6fd53 100644
--- a/tools/buildgen/plugins/make_fuzzer_tests.py
+++ b/tools/buildgen/plugins/make_fuzzer_tests.py
@@ -50,6 +50,7 @@
               'name': new_target['name'],
               'args': [fn],
               'exclude_configs': [],
+              'uses_polling': False,
               'platforms': ['linux'],
               'ci_platforms': ['linux'],
               'flaky': False,
diff --git a/tools/codegen/core/gen_header_frame.py b/tools/codegen/core/gen_header_frame.py
index 96e6c67..ee47626 100755
--- a/tools/codegen/core/gen_header_frame.py
+++ b/tools/codegen/core/gen_header_frame.py
@@ -38,6 +38,8 @@
 import json
 import sys
 
+set_end_stream = len(sys.argv) > 1 and sys.argv[1] == '--set_end_stream'
+
 # parse input, fill in vals
 vals = []
 for line in sys.stdin:
@@ -65,6 +67,9 @@
   payload_bytes.append(payload_line)
 
 # fill in header
+flags = 0x04  # END_HEADERS
+if set_end_stream:
+  flags |= 0x01  # END_STREAM
 payload_bytes[0].extend([
     (payload_len >> 16) & 0xff,
     (payload_len >> 8) & 0xff,
@@ -72,7 +77,7 @@
     # header frame
     0x01,
     # flags
-    0x04,
+    flags,
     # stream id
     0x00,
     0x00,
diff --git a/tools/codegen/core/gen_nano_proto.sh b/tools/codegen/core/gen_nano_proto.sh
index e2d2f67..b216a20 100755
--- a/tools/codegen/core/gen_nano_proto.sh
+++ b/tools/codegen/core/gen_nano_proto.sh
@@ -29,11 +29,11 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-#
 # Example usage:
 #   tools/codegen/core/gen_nano_proto.sh \
-#     src/proto/grpc/lb/v0/load_balancer.proto
-#     $PWD/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0
+#     src/proto/grpc/lb/v1/load_balancer.proto \
+#     $PWD/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1 \
+#     src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1
 #
 # Exit statuses:
 # 1: Incorrect number of arguments
diff --git a/tools/distrib/check_include_guards.py b/tools/distrib/check_include_guards.py
index 897a899..8207f5c 100755
--- a/tools/distrib/check_include_guards.py
+++ b/tools/distrib/check_include_guards.py
@@ -31,6 +31,7 @@
 
 import argparse
 import os
+import os.path
 import re
 import sys
 import subprocess
@@ -169,7 +170,7 @@
 args = argp.parse_args()
 
 KNOWN_BAD = set([
-    'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
+    'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h',
 ])
 
 
@@ -187,6 +188,8 @@
 try:
   filename_list = subprocess.check_output(FILE_LIST_COMMAND,
                                           shell=True).splitlines()
+  # Filter out non-existent files (ie, file removed or renamed)
+  filename_list = (f for f in filename_list if os.path.isfile(f))
 except subprocess.CalledProcessError:
   sys.exit(0)
 
diff --git a/tools/distrib/check_nanopb_output.sh b/tools/distrib/check_nanopb_output.sh
index 92cb8ec..c070705 100755
--- a/tools/distrib/check_nanopb_output.sh
+++ b/tools/distrib/check_nanopb_output.sh
@@ -58,15 +58,15 @@
 #
 # Checks for load_balancer.proto
 #
-readonly LOAD_BALANCER_GRPC_OUTPUT_PATH='src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0'
+readonly LOAD_BALANCER_GRPC_OUTPUT_PATH='src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1'
 # nanopb-compile the proto to a temp location
 ./tools/codegen/core/gen_nano_proto.sh \
-  src/proto/grpc/lb/v0/load_balancer.proto \
+  src/proto/grpc/lb/v1/load_balancer.proto \
   "$NANOPB_TMP_OUTPUT" \
   "$LOAD_BALANCER_GRPC_OUTPUT_PATH"
 
 # compare outputs to checked compiled code
-if ! diff -r $NANOPB_TMP_OUTPUT src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0; then
+if ! diff -r $NANOPB_TMP_OUTPUT src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1; then
   echo "Outputs differ: $NANOPB_TMP_OUTPUT vs $LOAD_BALANCER_GRPC_OUTPUT_PATH"
   exit 2
 fi
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/distrib/python/bazel_deps.sh
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/distrib/python/bazel_deps.sh
index 2fc66c2..de3ee07 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/distrib/python/bazel_deps.sh
@@ -1,5 +1,6 @@
 #!/bin/bash
-# Copyright 2015, Google Inc.
+
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +28,19 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+cd $(dirname $0)/../../../
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+# First check if bazel is installed on the machine. If it is, then we don't need
+# to invoke the docker bazel.
+if [ "bazel version" ]
+then
+  cd third_party/protobuf
+  bazel query 'deps('$1')'
+else
+  docker build -t bazel `realpath ./tools/dockerfile/bazel/`
+  docker run -v "`realpath .`:/src/grpc/"          \
+    -w /src/grpc/third_party/protobuf              \
+    bazel                                          \
+    bazel query 'deps('$1')'
+fi
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/distrib/python/check_grpcio_tools.py
similarity index 61%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/distrib/python/check_grpcio_tools.py
index 2fc66c2..baf2ff4 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/distrib/python/check_grpcio_tools.py
@@ -1,4 +1,5 @@
-#!/bin/bash
+#!/usr/bin/env python
+
 # Copyright 2015, Google Inc.
 # All rights reserved.
 #
@@ -27,41 +28,18 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+import cStringIO
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+import make_grpcio_tools as make
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+OUT_OF_DATE_MESSAGE = """file {} is out of date
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+Have you called tools/distrib/python/make_grpcio_tools.py since upgrading protobuf?"""
 
-mkdir -p reports
+check_protoc_lib_deps_content = make.get_deps(make.BAZEL_DEPS_PROTOC_LIB_QUERY)
 
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+with open(make.GRPC_PYTHON_PROTOC_LIB_DEPS, 'r') as protoc_lib_deps_file:
+  if protoc_lib_deps_file.read() != check_protoc_lib_deps_content:
+    print(OUT_OF_DATE_MESSAGE.format(make.GRPC_PYTHON_PROTOC_LIB_DEPS))
+    raise SystemExit(1)
diff --git a/tools/distrib/python/grpcio_tools/.gitignore b/tools/distrib/python/grpcio_tools/.gitignore
new file mode 100644
index 0000000..979704d
--- /dev/null
+++ b/tools/distrib/python/grpcio_tools/.gitignore
@@ -0,0 +1,7 @@
+build/
+protobuf/
+grpc_plugin/
+grpc_root/
+*.c
+*.cpp
+*.egg-info
diff --git a/tools/distrib/python/grpcio_tools/MANIFEST.in b/tools/distrib/python/grpcio_tools/MANIFEST.in
new file mode 100644
index 0000000..7712834
--- /dev/null
+++ b/tools/distrib/python/grpcio_tools/MANIFEST.in
@@ -0,0 +1,7 @@
+include grpc_version.py
+include protoc_deps.py
+include protoc_lib_deps.py
+include README.rst
+graft grpc
+graft grpc_root
+graft third_party
diff --git a/tools/distrib/python/grpcio_tools/README.rst b/tools/distrib/python/grpcio_tools/README.rst
new file mode 100644
index 0000000..10d2fe8
--- /dev/null
+++ b/tools/distrib/python/grpcio_tools/README.rst
@@ -0,0 +1,128 @@
+gRPC Python Tools
+=================
+
+Package for gRPC Python tools.
+
+Installation
+------------
+
+The gRPC Python tools package is available for Linux, Mac OS X, and Windows
+running Python 2.7.
+
+From PyPI
+~~~~~~~~~
+
+If you are installing locally...
+
+::
+
+  $ pip install grpcio-tools
+
+Else system wide (on Ubuntu)...
+
+::
+
+  $ sudo pip install grpcio-tools
+
+If you're on Windows make sure that you installed the :code:`pip.exe` component
+when you installed Python (if not go back and install it!) then invoke:
+
+::
+
+  $ pip.exe install grpcio-tools
+
+Windows users may need to invoke :code:`pip.exe` from a command line ran as
+administrator.
+
+n.b. On Windows and on Mac OS X one *must* have a recent release of :code:`pip`
+to retrieve the proper wheel from PyPI. Be sure to upgrade to the latest
+version!
+
+You might also need to install Cython to handle installation via the source
+distribution if gRPC Python's system coverage with wheels does not happen to
+include your system.
+
+From Source
+~~~~~~~~~~~
+
+Building from source requires that you have the Python headers (usually a
+package named :code:`python-dev`) and Cython installed. It further requires a
+GCC-like compiler to go smoothly; you can probably get it to work without
+GCC-like stuff, but you may end up having a bad time.
+
+::
+
+  $ export REPO_ROOT=grpc  # REPO_ROOT can be any directory of your choice
+  $ git clone https://github.com/grpc/grpc.git $REPO_ROOT
+  $ cd $REPO_ROOT
+  $ git submodule update --init
+
+  $ cd tools/distrib/python/grpcio_tools
+  $ python ../make_grpcio_tools.py
+
+  # For the next command do `sudo pip install` if you get permission-denied errors
+  $ pip install .
+
+You cannot currently install Python from source on Windows. Things might work
+out for you in MSYS2 (follow the Linux instructions), but it isn't officially
+supported at the moment.
+
+Troubleshooting
+~~~~~~~~~~~~~~~
+
+Help, I ...
+
+* **... see a** :code:`pkg_resources.VersionConflict` **when I try to install
+  grpc**
+
+  This is likely because :code:`pip` doesn't own the offending dependency,
+  which in turn is likely because your operating system's package manager owns
+  it. You'll need to force the installation of the dependency:
+
+  :code:`pip install --ignore-installed $OFFENDING_DEPENDENCY`
+
+  For example, if you get an error like the following:
+
+  ::
+
+    Traceback (most recent call last):
+    File "<string>", line 17, in <module>
+     ...
+    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 509, in find
+      raise VersionConflict(dist, req)
+    pkg_resources.VersionConflict: (six 1.8.0 (/usr/lib/python2.7/dist-packages), Requirement.parse('six>=1.10'))
+
+  You can fix it by doing:
+
+  ::
+
+    sudo pip install --ignore-installed six
+
+* **... see compiler errors on some platforms when either installing from source or from the source distribution**
+
+  If you see
+
+  ::
+
+    /tmp/pip-build-U8pSsr/cython/Cython/Plex/Scanners.c:4:20: fatal error: Python.h: No such file or directory
+    #include "Python.h"
+                    ^
+    compilation terminated.
+
+  You can fix it by installing `python-dev` package. i.e
+
+  ::
+
+    sudo apt-get install python-dev
+
+  If you see something similar to:
+
+  ::
+
+    third_party/protobuf/src/google/protobuf/stubs/mathlimits.h:173:31: note: in expansion of macro 'SIGNED_INT_MAX'
+    static const Type kPosMax = SIGNED_INT_MAX(Type); \\
+                               ^
+  And your toolchain is GCC (at the time of this writing, up through at least
+  GCC 6.0), this is probably a bug where GCC chokes on constant expressions
+  when the :code:`-fwrapv` flag is specified. You should consider setting your
+  environment with :code:`CFLAGS=-fno-wrapv` or using clang (:code:`CC=clang`).
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/distrib/python/grpcio_tools/grpc/__init__.py
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/distrib/python/grpcio_tools/grpc/__init__.py
index 2fc66c2..70ac5ed
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/distrib/python/grpcio_tools/grpc/__init__.py
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +26,5 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
-
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+__import__('pkg_resources').declare_namespace(__name__)
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/distrib/python/grpcio_tools/grpc/tools/__init__.py
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/distrib/python/grpcio_tools/grpc/tools/__init__.py
index 2fc66c2..d5ad73a
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/distrib/python/grpcio_tools/grpc/tools/__init__.py
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +26,4 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
-
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
diff --git a/tools/distrib/python/grpcio_tools/grpc/tools/main.cc b/tools/distrib/python/grpcio_tools/grpc/tools/main.cc
new file mode 100644
index 0000000..81675b4
--- /dev/null
+++ b/tools/distrib/python/grpcio_tools/grpc/tools/main.cc
@@ -0,0 +1,54 @@
+// Copyright 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <google/protobuf/compiler/command_line_interface.h>
+#include <google/protobuf/compiler/python/python_generator.h>
+
+#include "src/compiler/python_generator.h"
+
+#include "grpc/tools/main.h"
+
+int protoc_main(int argc, char* argv[]) {
+  google::protobuf::compiler::CommandLineInterface cli;
+  cli.AllowPlugins("protoc-");
+
+  // Proto2 Python
+  google::protobuf::compiler::python::Generator py_generator;
+  cli.RegisterGenerator("--python_out", &py_generator,
+                        "Generate Python source file.");
+
+  // gRPC Python
+  grpc_python_generator::GeneratorConfiguration grpc_py_config;
+  grpc_py_config.beta_package_root = "grpc.beta";
+  grpc_python_generator::PythonGrpcGenerator grpc_py_generator(grpc_py_config);
+  cli.RegisterGenerator("--grpc_python_out", &grpc_py_generator,
+                        "Generate Python source file.");
+
+  return cli.Run(argc, argv);
+}
diff --git a/tools/distrib/python/grpcio_tools/grpc/tools/main.h b/tools/distrib/python/grpcio_tools/grpc/tools/main.h
new file mode 100644
index 0000000..ea2860f
--- /dev/null
+++ b/tools/distrib/python/grpcio_tools/grpc/tools/main.h
@@ -0,0 +1,33 @@
+// Copyright 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+// We declare `protoc_main` here since we want access to it from Cython as an
+// extern but *without* triggering a dllimport declspec when on Windows.
+int protoc_main(int argc, char *argv[]);
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/distrib/python/grpcio_tools/grpc/tools/protoc.py
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/distrib/python/grpcio_tools/grpc/tools/protoc.py
index 2fc66c2..b4dd0ec
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/distrib/python/grpcio_tools/grpc/tools/protoc.py
@@ -1,5 +1,6 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+#!/usr/bin/env python
+
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +28,11 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+import sys
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+from grpc.tools import protoc_compiler
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+if __name__ == '__main__':
+  protoc_compiler.run_main(sys.argv)
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/distrib/python/grpcio_tools/grpc/tools/protoc_compiler.pyx
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/distrib/python/grpcio_tools/grpc/tools/protoc_compiler.pyx
index 2fc66c2..a653012
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/distrib/python/grpcio_tools/grpc/tools/protoc_compiler.pyx
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +26,14 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+from libc cimport stdlib
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+cdef extern from "grpc/tools/main.h":
+  int protoc_main(int argc, char *argv[])
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+def run_main(list args not None):
+  cdef char **argv = <char **>stdlib.malloc(len(args)*sizeof(char *))
+  for i in range(len(args)):
+    argv[i] = args[i]
+  return protoc_main(len(args), argv)
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/distrib/python/grpcio_tools/grpc_version.py
old mode 100755
new mode 100644
similarity index 61%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/distrib/python/grpcio_tools/grpc_version.py
index 2fc66c2..1267d0e
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/distrib/python/grpcio_tools/grpc_version.py
@@ -1,4 +1,3 @@
-#!/bin/bash
 # Copyright 2015, Google Inc.
 # All rights reserved.
 #
@@ -27,41 +26,7 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+# AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+VERSION='0.15.0.dev0'
diff --git a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py
new file mode 100644
index 0000000..135ac5c
--- /dev/null
+++ b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py
@@ -0,0 +1,32 @@
+
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# AUTO-GENERATED BY make_grpcio_tools.py!
+CC_FILES=['google/protobuf/compiler/zip_writer.cc', 'google/protobuf/compiler/subprocess.cc', 'google/protobuf/compiler/ruby/ruby_generator.cc', 'google/protobuf/compiler/python/python_generator.cc', 'google/protobuf/compiler/plugin.pb.cc', 'google/protobuf/compiler/plugin.cc', 'google/protobuf/compiler/objectivec/objectivec_primitive_field.cc', 'google/protobuf/compiler/objectivec/objectivec_oneof.cc', 'google/protobuf/compiler/objectivec/objectivec_message_field.cc', 'google/protobuf/compiler/objectivec/objectivec_message.cc', 'google/protobuf/compiler/objectivec/objectivec_map_field.cc', 'google/protobuf/compiler/objectivec/objectivec_helpers.cc', 'google/protobuf/compiler/objectivec/objectivec_generator.cc', 'google/protobuf/compiler/objectivec/objectivec_file.cc', 'google/protobuf/compiler/objectivec/objectivec_field.cc', 'google/protobuf/compiler/objectivec/objectivec_extension.cc', 'google/protobuf/compiler/objectivec/objectivec_enum_field.cc', 'google/protobuf/compiler/objectivec/objectivec_enum.cc', 'google/protobuf/compiler/js/js_generator.cc', 'google/protobuf/compiler/javanano/javanano_primitive_field.cc', 'google/protobuf/compiler/javanano/javanano_message_field.cc', 'google/protobuf/compiler/javanano/javanano_message.cc', 'google/protobuf/compiler/javanano/javanano_map_field.cc', 'google/protobuf/compiler/javanano/javanano_helpers.cc', 'google/protobuf/compiler/javanano/javanano_generator.cc', 'google/protobuf/compiler/javanano/javanano_file.cc', 'google/protobuf/compiler/javanano/javanano_field.cc', 'google/protobuf/compiler/javanano/javanano_extension.cc', 'google/protobuf/compiler/javanano/javanano_enum_field.cc', 'google/protobuf/compiler/javanano/javanano_enum.cc', 'google/protobuf/compiler/java/java_string_field_lite.cc', 'google/protobuf/compiler/java/java_string_field.cc', 'google/protobuf/compiler/java/java_shared_code_generator.cc', 'google/protobuf/compiler/java/java_service.cc', 'google/protobuf/compiler/java/java_primitive_field_lite.cc', 'google/protobuf/compiler/java/java_primitive_field.cc', 'google/protobuf/compiler/java/java_name_resolver.cc', 'google/protobuf/compiler/java/java_message_lite.cc', 'google/protobuf/compiler/java/java_message_field_lite.cc', 'google/protobuf/compiler/java/java_message_field.cc', 'google/protobuf/compiler/java/java_message_builder_lite.cc', 'google/protobuf/compiler/java/java_message_builder.cc', 'google/protobuf/compiler/java/java_message.cc', 'google/protobuf/compiler/java/java_map_field_lite.cc', 'google/protobuf/compiler/java/java_map_field.cc', 'google/protobuf/compiler/java/java_lazy_message_field_lite.cc', 'google/protobuf/compiler/java/java_lazy_message_field.cc', 'google/protobuf/compiler/java/java_helpers.cc', 'google/protobuf/compiler/java/java_generator_factory.cc', 'google/protobuf/compiler/java/java_generator.cc', 'google/protobuf/compiler/java/java_file.cc', 'google/protobuf/compiler/java/java_field.cc', 'google/protobuf/compiler/java/java_extension_lite.cc', 'google/protobuf/compiler/java/java_extension.cc', 'google/protobuf/compiler/java/java_enum_lite.cc', 'google/protobuf/compiler/java/java_enum_field_lite.cc', 'google/protobuf/compiler/java/java_enum_field.cc', 'google/protobuf/compiler/java/java_enum.cc', 'google/protobuf/compiler/java/java_doc_comment.cc', 'google/protobuf/compiler/java/java_context.cc', 'google/protobuf/compiler/csharp/csharp_wrapper_field.cc', 'google/protobuf/compiler/csharp/csharp_source_generator_base.cc', 'google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc', 'google/protobuf/compiler/csharp/csharp_repeated_message_field.cc', 'google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc', 'google/protobuf/compiler/csharp/csharp_reflection_class.cc', 'google/protobuf/compiler/csharp/csharp_primitive_field.cc', 'google/protobuf/compiler/csharp/csharp_message_field.cc', 'google/protobuf/compiler/csharp/csharp_message.cc', 'google/protobuf/compiler/csharp/csharp_map_field.cc', 'google/protobuf/compiler/csharp/csharp_helpers.cc', 'google/protobuf/compiler/csharp/csharp_generator.cc', 'google/protobuf/compiler/csharp/csharp_field_base.cc', 'google/protobuf/compiler/csharp/csharp_enum_field.cc', 'google/protobuf/compiler/csharp/csharp_enum.cc', 'google/protobuf/compiler/csharp/csharp_doc_comment.cc', 'google/protobuf/compiler/cpp/cpp_string_field.cc', 'google/protobuf/compiler/cpp/cpp_service.cc', 'google/protobuf/compiler/cpp/cpp_primitive_field.cc', 'google/protobuf/compiler/cpp/cpp_message_field.cc', 'google/protobuf/compiler/cpp/cpp_message.cc', 'google/protobuf/compiler/cpp/cpp_map_field.cc', 'google/protobuf/compiler/cpp/cpp_helpers.cc', 'google/protobuf/compiler/cpp/cpp_generator.cc', 'google/protobuf/compiler/cpp/cpp_file.cc', 'google/protobuf/compiler/cpp/cpp_field.cc', 'google/protobuf/compiler/cpp/cpp_extension.cc', 'google/protobuf/compiler/cpp/cpp_enum_field.cc', 'google/protobuf/compiler/cpp/cpp_enum.cc', 'google/protobuf/compiler/command_line_interface.cc', 'google/protobuf/compiler/code_generator.cc', 'google/protobuf/wrappers.pb.cc', 'google/protobuf/wire_format.cc', 'google/protobuf/util/type_resolver_util.cc', 'google/protobuf/util/time_util.cc', 'google/protobuf/util/message_differencer.cc', 'google/protobuf/util/json_util.cc', 'google/protobuf/util/internal/utility.cc', 'google/protobuf/util/internal/type_info_test_helper.cc', 'google/protobuf/util/internal/type_info.cc', 'google/protobuf/util/internal/protostream_objectwriter.cc', 'google/protobuf/util/internal/protostream_objectsource.cc', 'google/protobuf/util/internal/proto_writer.cc', 'google/protobuf/util/internal/object_writer.cc', 'google/protobuf/util/internal/json_stream_parser.cc', 'google/protobuf/util/internal/json_objectwriter.cc', 'google/protobuf/util/internal/json_escaping.cc', 'google/protobuf/util/internal/field_mask_utility.cc', 'google/protobuf/util/internal/error_listener.cc', 'google/protobuf/util/internal/default_value_objectwriter.cc', 'google/protobuf/util/internal/datapiece.cc', 'google/protobuf/util/field_mask_util.cc', 'google/protobuf/util/field_comparator.cc', 'google/protobuf/unknown_field_set.cc', 'google/protobuf/type.pb.cc', 'google/protobuf/timestamp.pb.cc', 'google/protobuf/text_format.cc', 'google/protobuf/stubs/substitute.cc', 'google/protobuf/stubs/mathlimits.cc', 'google/protobuf/struct.pb.cc', 'google/protobuf/source_context.pb.cc', 'google/protobuf/service.cc', 'google/protobuf/reflection_ops.cc', 'google/protobuf/message.cc', 'google/protobuf/map_field.cc', 'google/protobuf/io/zero_copy_stream_impl.cc', 'google/protobuf/io/tokenizer.cc', 'google/protobuf/io/strtod.cc', 'google/protobuf/io/printer.cc', 'google/protobuf/io/gzip_stream.cc', 'google/protobuf/generated_message_reflection.cc', 'google/protobuf/field_mask.pb.cc', 'google/protobuf/extension_set_heavy.cc', 'google/protobuf/empty.pb.cc', 'google/protobuf/dynamic_message.cc', 'google/protobuf/duration.pb.cc', 'google/protobuf/descriptor_database.cc', 'google/protobuf/descriptor.pb.cc', 'google/protobuf/descriptor.cc', 'google/protobuf/compiler/parser.cc', 'google/protobuf/compiler/importer.cc', 'google/protobuf/api.pb.cc', 'google/protobuf/any.pb.cc', 'google/protobuf/any.cc', 'google/protobuf/wire_format_lite.cc', 'google/protobuf/stubs/time.cc', 'google/protobuf/stubs/strutil.cc', 'google/protobuf/stubs/structurally_valid.cc', 'google/protobuf/stubs/stringprintf.cc', 'google/protobuf/stubs/stringpiece.cc', 'google/protobuf/stubs/statusor.cc', 'google/protobuf/stubs/status.cc', 'google/protobuf/stubs/once.cc', 'google/protobuf/stubs/int128.cc', 'google/protobuf/stubs/common.cc', 'google/protobuf/stubs/bytestream.cc', 'google/protobuf/stubs/atomicops_internals_x86_msvc.cc', 'google/protobuf/stubs/atomicops_internals_x86_gcc.cc', 'google/protobuf/repeated_field.cc', 'google/protobuf/message_lite.cc', 'google/protobuf/io/zero_copy_stream_impl_lite.cc', 'google/protobuf/io/zero_copy_stream.cc', 'google/protobuf/io/coded_stream.cc', 'google/protobuf/generated_message_util.cc', 'google/protobuf/extension_set.cc', 'google/protobuf/arenastring.cc', 'google/protobuf/arena.cc']
diff --git a/tools/distrib/python/grpcio_tools/setup.py b/tools/distrib/python/grpcio_tools/setup.py
new file mode 100644
index 0000000..576f7ae
--- /dev/null
+++ b/tools/distrib/python/grpcio_tools/setup.py
@@ -0,0 +1,96 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from distutils import extension
+import os
+import os.path
+import shlex
+import sys
+
+import setuptools
+from setuptools.command import build_ext
+
+# TODO(atash) add flag to disable Cython use
+
+os.chdir(os.path.dirname(os.path.abspath(__file__)))
+sys.path.insert(0, os.path.abspath('.'))
+
+# There are some situations (like on Windows) where CC, CFLAGS, and LDFLAGS are
+# entirely ignored/dropped/forgotten by distutils and its Cygwin/MinGW support.
+# We use these environment variables to thus get around that without locking
+# ourselves in w.r.t. the multitude of operating systems this ought to build on.
+# By default we assume a GCC-like compiler.
+EXTRA_COMPILE_ARGS = shlex.split(os.environ.get('GRPC_PYTHON_CFLAGS',
+                                                '-frtti -std=c++11'))
+EXTRA_LINK_ARGS = shlex.split(os.environ.get('GRPC_PYTHON_LDFLAGS',
+                                             '-lpthread'))
+
+import protoc_lib_deps
+import grpc_version
+
+def protoc_ext_module():
+  plugin_sources = [
+      'grpc/tools/main.cc',
+      'grpc_root/src/compiler/python_generator.cc'] + [
+      os.path.join('third_party/protobuf/src', cc_file)
+      for cc_file in protoc_lib_deps.CC_FILES]
+  plugin_ext = extension.Extension(
+      name='grpc.tools.protoc_compiler',
+      sources=['grpc/tools/protoc_compiler.pyx'] + plugin_sources,
+      include_dirs=[
+          '.',
+          'grpc_root',
+          'grpc_root/include',
+          'third_party/protobuf/src',
+      ],
+      language='c++',
+      define_macros=[('HAVE_PTHREAD', 1)],
+      extra_compile_args=EXTRA_COMPILE_ARGS,
+      extra_link_args=EXTRA_LINK_ARGS,
+  )
+  return plugin_ext
+
+def maybe_cythonize(exts):
+  from Cython import Build
+  return Build.cythonize(exts)
+
+setuptools.setup(
+  name='grpcio_tools',
+  version=grpc_version.VERSION,
+  license='3-clause BSD',
+  ext_modules=maybe_cythonize([
+      protoc_ext_module(),
+  ]),
+  packages=setuptools.find_packages('.'),
+  # TODO(atash): Figure out why auditwheel doesn't like namespace packages.
+  #namespace_packages=['grpc'],
+  install_requires=[
+    'protobuf>=3.0.0a3',
+  ],
+)
diff --git a/tools/distrib/python/make_grpcio_tools.py b/tools/distrib/python/make_grpcio_tools.py
new file mode 100755
index 0000000..50fbdbb
--- /dev/null
+++ b/tools/distrib/python/make_grpcio_tools.py
@@ -0,0 +1,140 @@
+#!/usr/bin/env python
+
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import os
+import os.path
+import shutil
+import subprocess
+import sys
+import traceback
+
+DEPS_FILE_CONTENT="""
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# AUTO-GENERATED BY make_grpcio_tools.py!
+CC_FILES={}
+"""
+
+# Bazel query result prefix for expected source files in protobuf.
+PROTOBUF_CC_PREFIX = '//:src/'
+
+GRPC_ROOT = os.path.abspath(
+    os.path.join(os.path.dirname(os.path.abspath(__file__)),
+                 '..', '..', '..'))
+
+GRPC_PYTHON_ROOT = os.path.join(GRPC_ROOT, 'tools/distrib/python/grpcio_tools')
+
+GRPC_PROTOBUF = os.path.join(GRPC_ROOT, 'third_party/protobuf/src')
+GRPC_PROTOC_PLUGINS = os.path.join(GRPC_ROOT, 'src/compiler')
+GRPC_PYTHON_PROTOBUF = os.path.join(GRPC_PYTHON_ROOT,
+                                    'third_party/protobuf/src')
+GRPC_PYTHON_PROTOC_PLUGINS = os.path.join(GRPC_PYTHON_ROOT,
+                                          'grpc_root/src/compiler')
+GRPC_PYTHON_PROTOC_LIB_DEPS = os.path.join(GRPC_PYTHON_ROOT,
+                                           'protoc_lib_deps.py')
+
+GRPC_INCLUDE = os.path.join(GRPC_ROOT, 'include')
+GRPC_PYTHON_INCLUDE = os.path.join(GRPC_PYTHON_ROOT, 'grpc_root/include')
+
+BAZEL_DEPS = os.path.join(GRPC_ROOT, 'tools/distrib/python/bazel_deps.sh')
+BAZEL_DEPS_PROTOC_LIB_QUERY = '//:protoc_lib'
+
+
+def get_deps(query):
+  """Write the result of the bazel query `query` against protobuf to
+     `out_file`."""
+  output = subprocess.check_output([BAZEL_DEPS, query])
+  output = output.splitlines()
+  cc_files = [
+      name for name in output
+      if name.endswith('.cc') and name.startswith(PROTOBUF_CC_PREFIX)]
+  cc_files = [cc_file[len(PROTOBUF_CC_PREFIX):] for cc_file in cc_files]
+  deps_file_content = DEPS_FILE_CONTENT.format(cc_files)
+  return deps_file_content
+
+
+def main():
+  os.chdir(GRPC_ROOT)
+
+  for tree in [GRPC_PYTHON_PROTOBUF,
+               GRPC_PYTHON_PROTOC_PLUGINS,
+               GRPC_PYTHON_INCLUDE]:
+    try:
+      shutil.rmtree(tree)
+    except Exception as _:
+      pass
+  shutil.copytree(GRPC_PROTOBUF, GRPC_PYTHON_PROTOBUF)
+  shutil.copytree(GRPC_PROTOC_PLUGINS, GRPC_PYTHON_PROTOC_PLUGINS)
+  shutil.copytree(GRPC_INCLUDE, GRPC_PYTHON_INCLUDE)
+
+  try:
+    protoc_lib_deps_content = get_deps(BAZEL_DEPS_PROTOC_LIB_QUERY)
+  except Exception as error:
+    # We allow this script to succeed even if we couldn't get the dependencies,
+    # as then we can assume that even without a successful bazel run the
+    # dependencies currently in source control are 'good enough'.
+    sys.stderr.write("Got non-fatal error:\n")
+    traceback.print_exc(file=sys.stderr)
+    return
+  # If we successfully got the dependencies, truncate and rewrite the deps file.
+  with open(GRPC_PYTHON_PROTOC_LIB_DEPS, 'w') as deps_file:
+    deps_file.write(protoc_lib_deps_content)
+
+if __name__ == '__main__':
+  main()
+
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/dockerfile/bazel/Dockerfile
old mode 100755
new mode 100644
similarity index 61%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/dockerfile/bazel/Dockerfile
index 2fc66c2..2a80a4d
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/dockerfile/bazel/Dockerfile
@@ -1,4 +1,3 @@
-#!/bin/bash
 # Copyright 2015, Google Inc.
 # All rights reserved.
 #
@@ -27,41 +26,27 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+FROM ubuntu:wily
+RUN apt-get update
+RUN apt-get -y install software-properties-common python-software-properties
+RUN add-apt-repository ppa:webupd8team/java
+RUN apt-get update
+RUN apt-get -y install \
+	vim            \
+	wget           \
+	openjdk-8-jdk  \
+	pkg-config     \
+	zip            \
+	g++            \
+	zlib1g-dev     \
+	unzip          \
+	git
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+RUN git clone https://github.com/bazelbuild/bazel.git /bazel
+RUN cd /bazel && ./compile.sh
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+RUN ln -s /bazel/output/bazel /bin/
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+# ensure the installation has been extracted
+RUN bazel
diff --git a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile
index d048b72..4ae4ebd 100644
--- a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile
+++ b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile
@@ -31,12 +31,15 @@
 
 FROM debian:jessie
 
+RUN apt-get update && apt-get install debian-keyring && apt-key update
+
 # Install Git and basic packages.
-RUN apt-get update && apt-get install -y \
+RUN apt-get update && apt-key update && apt-get install -y \
   autoconf \
   autotools-dev \
   build-essential \
   bzip2 \
+  clang \
   curl \
   gcc \
   gcc-multilib \
diff --git a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile
index 46bc9f8..9c2fd52 100644
--- a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile
+++ b/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile
@@ -31,12 +31,15 @@
 
 FROM 32bit/debian:jessie
 
+RUN apt-get update && apt-get install debian-keyring && apt-key update
+
 # Install Git and basic packages.
-RUN apt-get update && apt-get install -y \
+RUN apt-get update && apt-key update && apt-get install -y \
   autoconf \
   autotools-dev \
   build-essential \
   bzip2 \
+  clang \
   curl \
   gcc \
   gcc-multilib \
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/dockerfile/grpc_artifact_python_manylinux_x64/Dockerfile
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/dockerfile/grpc_artifact_python_manylinux_x64/Dockerfile
index 2fc66c2..3e31a2b
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/dockerfile/grpc_artifact_python_manylinux_x64/Dockerfile
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +26,18 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+# Docker file for building gRPC manylinux Python artifacts.
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+FROM quay.io/pypa/manylinux1_x86_64
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+# Update the package manager
+RUN yum update -y
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+###################################
+# Install Python build requirements
+RUN /opt/python/cp27-cp27m/bin/pip install cython
+RUN /opt/python/cp27-cp27mu/bin/pip install cython
+RUN /opt/python/cp34-cp34m/bin/pip install cython
+RUN /opt/python/cp35-cp35m/bin/pip install cython
 
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/dockerfile/grpc_artifact_python_manylinux_x86/Dockerfile
old mode 100755
new mode 100644
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/dockerfile/grpc_artifact_python_manylinux_x86/Dockerfile
index 2fc66c2..5fe62c2
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/dockerfile/grpc_artifact_python_manylinux_x86/Dockerfile
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +26,18 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+# Docker file for building gRPC manylinux Python artifacts.
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+FROM quay.io/pypa/manylinux1_i686
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+# Update the package manager
+RUN yum update -y
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+###################################
+# Install Python build requirements
+RUN /opt/python/cp27-cp27m/bin/pip install cython
+RUN /opt/python/cp27-cp27mu/bin/pip install cython
+RUN /opt/python/cp34-cp34m/bin/pip install cython
+RUN /opt/python/cp35-cp35m/bin/pip install cython
 
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
diff --git a/tools/dockerfile/grpc_clang_format/Dockerfile b/tools/dockerfile/grpc_clang_format/Dockerfile
index 41239e9..ab58017 100644
--- a/tools/dockerfile/grpc_clang_format/Dockerfile
+++ b/tools/dockerfile/grpc_clang_format/Dockerfile
@@ -30,8 +30,8 @@
 FROM ubuntu:wily
 RUN apt-get update
 RUN apt-get -y install wget
-RUN echo deb http://llvm.org/apt/wily/ llvm-toolchain-wily main >> /etc/apt/sources.list
-RUN echo deb-src http://llvm.org/apt/wily/ llvm-toolchain-wily main >> /etc/apt/sources.list
+RUN echo deb http://llvm.org/apt/wily/ llvm-toolchain-wily-3.8 main >> /etc/apt/sources.list
+RUN echo deb-src http://llvm.org/apt/wily/ llvm-toolchain-wily-3.8 main >> /etc/apt/sources.list
 RUN wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key| apt-key add -
 RUN apt-get update
 RUN apt-get -y install clang-format-3.8
diff --git a/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile b/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile
index 64314f8..2a8d35a 100644
--- a/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile
+++ b/tools/dockerfile/interoptest/grpc_interop_node/Dockerfile
@@ -69,8 +69,11 @@
 # Install nvm
 RUN touch .profile
 RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
+# Install all versions of node that we want to test
 RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache"
-
+RUN /bin/bash -l -c "nvm install 4 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm install 5 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm alias default 4"
 # Prepare ccache
 RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
 RUN ln -s /usr/bin/ccache /usr/local/bin/g++
diff --git a/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh b/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh
index b99fd44..976f55d 100755
--- a/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh
+++ b/tools/dockerfile/interoptest/grpc_interop_node/build_interop.sh
@@ -38,8 +38,6 @@
 cp -r /var/local/jenkins/service_account $HOME || true
 
 cd /var/local/git/grpc
-nvm use 0.12
-nvm alias default 0.12  # prevent the need to run 'nvm use' in every shell
 
 # build Node interop client & server
 npm install -g node-gyp
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile
new file mode 100644
index 0000000..823fe94
--- /dev/null
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/Dockerfile
@@ -0,0 +1,101 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:jessie
+
+# Install Git and basic packages.
+RUN apt-get update && apt-get install -y \
+  autoconf \
+  autotools-dev \
+  build-essential \
+  bzip2 \
+  ccache \
+  curl \
+  gcc \
+  gcc-multilib \
+  git \
+  golang \
+  gyp \
+  lcov \
+  libc6 \
+  libc6-dbg \
+  libc6-dev \
+  libgtest-dev \
+  libtool \
+  make \
+  perl \
+  strace \
+  python-dev \
+  python-setuptools \
+  python-yaml \
+  telnet \
+  unzip \
+  wget \
+  zip && apt-get clean
+
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
+
+#=================
+# C++ dependencies
+RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
+
+# Google Cloud platform API libraries
+RUN apt-get update && apt-get install -y python-pip && apt-get clean
+RUN pip install --upgrade google-api-python-client
+
+
+#================
+# C# dependencies
+
+# Update to a newer version of mono
+RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+
+# Install dependencies
+RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \
+    mono-devel \
+    ca-certificates-mono \
+    nuget \
+    && apt-get clean
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh
similarity index 66%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh
index 2fc66c2..1f4bf89 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_csharp/build_interop_stress.sh
@@ -28,40 +28,20 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
-
+# Builds C# interop server and client in a base image.
 set -e
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
 mkdir -p /var/local/git
 git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
 
-mkdir -p reports
+# Copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
 
-$POST_GIT_STEP
+cd /var/local/git/grpc
 
-exit_code=0
+# Build C++ metrics client (to query the metrics from csharp stress client)
+make metrics_client -j
 
-$RUN_TESTS_COMMAND || exit_code=$?
+# Build C# interop client & server
+tools/run_tests/run_tests.py -l csharp -c dbg --build_only
 
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_node/Dockerfile b/tools/dockerfile/stress_test/grpc_interop_stress_node/Dockerfile
index f70add4..4fd7cc2 100644
--- a/tools/dockerfile/stress_test/grpc_interop_stress_node/Dockerfile
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_node/Dockerfile
@@ -69,8 +69,11 @@
 # Install nvm
 RUN touch .profile
 RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
+# Install all versions of node that we want to test
 RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache"
-
+RUN /bin/bash -l -c "nvm install 4 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm install 5 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm alias default 4"
 # Google Cloud platform API libraries
 RUN apt-get update && apt-get install -y python-pip && apt-get clean
 RUN pip install --upgrade google-api-python-client
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh b/tools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh
index b99fd44..976f55d 100755
--- a/tools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_node/build_interop_stress.sh
@@ -38,8 +38,6 @@
 cp -r /var/local/jenkins/service_account $HOME || true
 
 cd /var/local/git/grpc
-nvm use 0.12
-nvm alias default 0.12  # prevent the need to run 'nvm use' in every shell
 
 # build Node interop client & server
 npm install -g node-gyp
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_python/Dockerfile b/tools/dockerfile/stress_test/grpc_interop_stress_python/Dockerfile
new file mode 100644
index 0000000..606b765
--- /dev/null
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_python/Dockerfile
@@ -0,0 +1,103 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:jessie
+
+# Install Git and basic packages.
+RUN apt-get update && apt-get install -y \
+  autoconf \
+  autotools-dev \
+  build-essential \
+  bzip2 \
+  ccache \
+  curl \
+  gcc \
+  gcc-multilib \
+  git \
+  golang \
+  gyp \
+  lcov \
+  libc6 \
+  libc6-dbg \
+  libc6-dev \
+  libgtest-dev \
+  libtool \
+  make \
+  perl \
+  strace \
+  python-dev \
+  python-setuptools \
+  python-yaml \
+  telnet \
+  unzip \
+  wget \
+  zip && apt-get clean
+
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
+
+#=================
+# C++ dependencies
+RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
+
+# Google Cloud platform API libraries
+RUN apt-get update && apt-get install -y python-pip && apt-get clean
+RUN pip install --upgrade google-api-python-client
+
+
+#====================
+# Python dependencies
+
+# Install dependencies
+
+RUN apt-get update && apt-get install -y \
+    python-all-dev \
+    python3-all-dev \
+    python-pip
+
+# Install Python packages from PyPI
+RUN pip install pip --upgrade
+RUN pip install virtualenv
+RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2 tox
+
+
+RUN pip install coverage
+RUN pip install oauth2client
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/dockerfile/stress_test/grpc_interop_stress_python/build_interop_stress.sh
similarity index 64%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/dockerfile/stress_test/grpc_interop_stress_python/build_interop_stress.sh
index 2fc66c2..e65332f 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_python/build_interop_stress.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -28,40 +28,19 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
-
+# Builds Python interop server and client in a base image.
 set -e
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
 mkdir -p /var/local/git
 git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
 
-mkdir -p reports
+# copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
 
-$POST_GIT_STEP
+cd /var/local/git/grpc
 
-exit_code=0
+tools/run_tests/run_tests.py -l python -c opt --build_only
 
-$RUN_TESTS_COMMAND || exit_code=$?
+# Build c++ interop client
+make metrics_client -j
 
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
diff --git a/tools/dockerfile/stress_test/grpc_interop_stress_ruby/Dockerfile b/tools/dockerfile/stress_test/grpc_interop_stress_ruby/Dockerfile
new file mode 100644
index 0000000..36b54dd
--- /dev/null
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_ruby/Dockerfile
@@ -0,0 +1,99 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:jessie
+
+# Install Git and basic packages.
+RUN apt-get update && apt-get install -y \
+  autoconf \
+  autotools-dev \
+  build-essential \
+  bzip2 \
+  ccache \
+  curl \
+  gcc \
+  gcc-multilib \
+  git \
+  golang \
+  gyp \
+  lcov \
+  libc6 \
+  libc6-dbg \
+  libc6-dev \
+  libgtest-dev \
+  libtool \
+  make \
+  perl \
+  strace \
+  python-dev \
+  python-setuptools \
+  python-yaml \
+  telnet \
+  unzip \
+  wget \
+  zip && apt-get clean
+
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
+
+#=================
+# C++ dependencies
+RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
+
+# Google Cloud platform API libraries
+RUN apt-get update && apt-get install -y python-pip && apt-get clean
+RUN pip install --upgrade google-api-python-client
+
+
+#==================
+# Ruby dependencies
+
+# Install rvm
+RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
+RUN \curl -sSL https://get.rvm.io | bash -s stable
+
+# Install Ruby 2.1
+RUN /bin/bash -l -c "rvm install ruby-2.1"
+RUN /bin/bash -l -c "rvm use --default ruby-2.1"
+RUN /bin/bash -l -c "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
+RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc"
+RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc"
+RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/dockerfile/stress_test/grpc_interop_stress_ruby/build_interop_stress.sh
similarity index 66%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/dockerfile/stress_test/grpc_interop_stress_ruby/build_interop_stress.sh
index 2fc66c2..1b7567d 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/dockerfile/stress_test/grpc_interop_stress_ruby/build_interop_stress.sh
@@ -28,40 +28,21 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
-
+# Builds Ruby interop server and client in a base image.
 set -e
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
 mkdir -p /var/local/git
 git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
 
-mkdir -p reports
+# Copy service account keys if available
+cp -r /var/local/jenkins/service_account $HOME || true
 
-$POST_GIT_STEP
+cd /var/local/git/grpc
+rvm --default use ruby-2.1
 
-exit_code=0
+# Build Ruby interop client and server
+(cd src/ruby && gem update bundler && bundle && rake compile)
 
-$RUN_TESTS_COMMAND || exit_code=$?
+# Build c++ metrics client to query the metrics from ruby stress client
+make metrics_client -j
 
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
diff --git a/tools/dockerfile/test/multilang_jessie_x64/Dockerfile b/tools/dockerfile/test/multilang_jessie_x64/Dockerfile
index 71ebf2b..5c3f7740 100644
--- a/tools/dockerfile/test/multilang_jessie_x64/Dockerfile
+++ b/tools/dockerfile/test/multilang_jessie_x64/Dockerfile
@@ -90,8 +90,11 @@
 # Install nvm
 RUN touch .profile
 RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
+# Install all versions of node that we want to test
 RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache"
-
+RUN /bin/bash -l -c "nvm install 4 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm install 5 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm alias default 4"
 #=================
 # PHP dependencies
 
diff --git a/tools/dockerfile/test/node_jessie_x64/Dockerfile b/tools/dockerfile/test/node_jessie_x64/Dockerfile
index 64314f8..2a8d35a 100644
--- a/tools/dockerfile/test/node_jessie_x64/Dockerfile
+++ b/tools/dockerfile/test/node_jessie_x64/Dockerfile
@@ -69,8 +69,11 @@
 # Install nvm
 RUN touch .profile
 RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
+# Install all versions of node that we want to test
 RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache"
-
+RUN /bin/bash -l -c "nvm install 4 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm install 5 && npm config set cache /tmp/npm-cache"
+RUN /bin/bash -l -c "nvm alias default 4"
 # Prepare ccache
 RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
 RUN ln -s /usr/bin/ccache /usr/local/bin/g++
diff --git a/tools/dockerfile/test/sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile
index 3146a92..43b2a0c 100644
--- a/tools/dockerfile/test/sanity/Dockerfile
+++ b/tools/dockerfile/test/sanity/Dockerfile
@@ -75,6 +75,15 @@
       python-lxml
 RUN pip install simplejson mako
 
+#======================================
+# More sanity test dependencies (bazel)
+RUN echo "deb http://httpredir.debian.org/debian jessie-backports main" >   /etc/apt/sources.list.d/backports.list
+RUN apt-get update
+RUN apt-get -t jessie-backports install -y openjdk-8-jdk
+RUN git clone https://github.com/bazelbuild/bazel.git /bazel
+RUN cd /bazel && ./compile.sh
+RUN ln -s /bazel/output/bazel /bin/
+
 #===================
 # Docker "inception"
 # Note this is quite the ugly hack.
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index 7dc0496..798d68b 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -40,7 +40,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 0.14.0-dev
+PROJECT_NUMBER         = 0.15.0-dev
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -777,6 +777,8 @@
 include/grpc++/impl/rpc_service_method.h \
 include/grpc++/impl/serialization_traits.h \
 include/grpc++/impl/server_builder_option.h \
+include/grpc++/impl/server_builder_plugin.h \
+include/grpc++/impl/server_initializer.h \
 include/grpc++/impl/service_type.h \
 include/grpc++/impl/sync.h \
 include/grpc++/impl/sync_cxx11.h \
@@ -833,6 +835,7 @@
 include/grpc++/impl/codegen/sync_stream.h \
 include/grpc++/impl/codegen/time.h \
 include/grpc/impl/codegen/byte_buffer.h \
+include/grpc/impl/codegen/byte_buffer_reader.h \
 include/grpc/impl/codegen/compression_types.h \
 include/grpc/impl/codegen/connectivity_state.h \
 include/grpc/impl/codegen/grpc_types.h \
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 312fd17..ce1d6ac 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -40,7 +40,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 0.14.0-dev
+PROJECT_NUMBER         = 0.15.0-dev
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -777,6 +777,8 @@
 include/grpc++/impl/rpc_service_method.h \
 include/grpc++/impl/serialization_traits.h \
 include/grpc++/impl/server_builder_option.h \
+include/grpc++/impl/server_builder_plugin.h \
+include/grpc++/impl/server_initializer.h \
 include/grpc++/impl/service_type.h \
 include/grpc++/impl/sync.h \
 include/grpc++/impl/sync_cxx11.h \
@@ -833,6 +835,7 @@
 include/grpc++/impl/codegen/sync_stream.h \
 include/grpc++/impl/codegen/time.h \
 include/grpc/impl/codegen/byte_buffer.h \
+include/grpc/impl/codegen/byte_buffer_reader.h \
 include/grpc/impl/codegen/compression_types.h \
 include/grpc/impl/codegen/connectivity_state.h \
 include/grpc/impl/codegen/grpc_types.h \
diff --git a/tools/doxygen/Doxyfile.core b/tools/doxygen/Doxyfile.core
index 034d9c6..aabca41 100644
--- a/tools/doxygen/Doxyfile.core
+++ b/tools/doxygen/Doxyfile.core
@@ -40,7 +40,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 0.14.0-dev
+PROJECT_NUMBER         = 0.15.0-dev
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -766,6 +766,7 @@
 include/grpc/grpc.h \
 include/grpc/status.h \
 include/grpc/impl/codegen/byte_buffer.h \
+include/grpc/impl/codegen/byte_buffer_reader.h \
 include/grpc/impl/codegen/compression_types.h \
 include/grpc/impl/codegen/connectivity_state.h \
 include/grpc/impl/codegen/grpc_types.h \
@@ -785,6 +786,7 @@
 include/grpc/impl/codegen/sync_posix.h \
 include/grpc/impl/codegen/sync_win32.h \
 include/grpc/impl/codegen/time.h \
+include/grpc/grpc_cronet.h \
 include/grpc/grpc_security.h \
 include/grpc/grpc_security_constants.h \
 include/grpc/census.h \
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 1b1453f..212dfc3 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -40,7 +40,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 0.14.0-dev
+PROJECT_NUMBER         = 0.15.0-dev
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -766,6 +766,7 @@
 include/grpc/grpc.h \
 include/grpc/status.h \
 include/grpc/impl/codegen/byte_buffer.h \
+include/grpc/impl/codegen/byte_buffer_reader.h \
 include/grpc/impl/codegen/compression_types.h \
 include/grpc/impl/codegen/connectivity_state.h \
 include/grpc/impl/codegen/grpc_types.h \
@@ -785,6 +786,7 @@
 include/grpc/impl/codegen/sync_posix.h \
 include/grpc/impl/codegen/sync_win32.h \
 include/grpc/impl/codegen/time.h \
+include/grpc/grpc_cronet.h \
 include/grpc/grpc_security.h \
 include/grpc/grpc_security_constants.h \
 include/grpc/census.h \
@@ -806,6 +808,7 @@
 src/core/lib/iomgr/endpoint.h \
 src/core/lib/iomgr/endpoint_pair.h \
 src/core/lib/iomgr/ev_poll_and_epoll_posix.h \
+src/core/lib/iomgr/ev_poll_posix.h \
 src/core/lib/iomgr/ev_posix.h \
 src/core/lib/iomgr/exec_ctx.h \
 src/core/lib/iomgr/executor.h \
@@ -912,8 +915,9 @@
 src/core/ext/client_config/subchannel_call_holder.h \
 src/core/ext/client_config/subchannel_index.h \
 src/core/ext/client_config/uri_parser.h \
+third_party/objective_c/Cronet/cronet_c_for_grpc.h \
 src/core/ext/lb_policy/grpclb/load_balancer_api.h \
-src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h \
+src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h \
 third_party/nanopb/pb.h \
 third_party/nanopb/pb_common.h \
 third_party/nanopb/pb_decode.h \
@@ -943,6 +947,7 @@
 src/core/lib/iomgr/endpoint_pair_posix.c \
 src/core/lib/iomgr/endpoint_pair_windows.c \
 src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+src/core/lib/iomgr/ev_poll_posix.c \
 src/core/lib/iomgr/ev_posix.c \
 src/core/lib/iomgr/exec_ctx.c \
 src/core/lib/iomgr/executor.c \
@@ -1070,8 +1075,11 @@
 src/core/ext/client_config/uri_parser.c \
 src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
 src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+src/core/ext/transport/cronet/client/secure/cronet_channel_create.c \
+src/core/ext/transport/cronet/transport/cronet_api_dummy.c \
+src/core/ext/transport/cronet/transport/cronet_transport.c \
 src/core/ext/lb_policy/grpclb/load_balancer_api.c \
-src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
+src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c \
 third_party/nanopb/pb_common.c \
 third_party/nanopb/pb_decode.c \
 third_party/nanopb/pb_encode.c \
diff --git a/tools/gce/create_linux_performance_worker.sh b/tools/gce/create_linux_performance_worker.sh
index 8c9cc46..c9a0ffa 100755
--- a/tools/gce/create_linux_performance_worker.sh
+++ b/tools/gce/create_linux_performance_worker.sh
@@ -42,14 +42,15 @@
 ZONE=us-central1-b  # this zone allows 32core machines
 
 INSTANCE_NAME="${1:-grpc-performance-server1}"
-MACHINE_TYPE=n1-standard-32
+MACHINE_TYPE=n1-standard-8
 
 gcloud compute instances create $INSTANCE_NAME \
     --project="$CLOUD_PROJECT" \
     --zone "$ZONE" \
     --machine-type $MACHINE_TYPE \
     --image ubuntu-15-10 \
-    --boot-disk-size 300
+    --boot-disk-size 300 \
+    --scopes https://www.googleapis.com/auth/bigquery
 
 echo 'Created GCE instance, waiting 60 seconds for it to come online.'
 sleep 60
diff --git a/tools/gce/create_linux_worker.sh b/tools/gce/create_linux_worker.sh
index dff0b1c..c41e4d2 100755
--- a/tools/gce/create_linux_worker.sh
+++ b/tools/gce/create_linux_worker.sh
@@ -43,7 +43,7 @@
     --project="$CLOUD_PROJECT" \
     --zone "$ZONE" \
     --machine-type n1-standard-8 \
-    --image ubuntu-14-04 \
+    --image ubuntu-15-10 \
     --boot-disk-size 1000
 
 echo 'Created GCE instance, waiting 60 seconds for it to come online.'
diff --git a/tools/gce/linux_performance_worker_init.sh b/tools/gce/linux_performance_worker_init.sh
index 25ac3bc..dc47842 100755
--- a/tools/gce/linux_performance_worker_init.sh
+++ b/tools/gce/linux_performance_worker_init.sh
@@ -77,6 +77,9 @@
 # perftools
 sudo apt-get install -y google-perftools libgoogle-perftools-dev
 
+# netperf
+sudo apt-get install -y netperf
+
 # C++ dependencies
 sudo apt-get install -y libgflags-dev libgtest-dev libc++-dev clang
 
@@ -94,7 +97,11 @@
 # Node dependencies (nvm has to be installed under user jenkins)
 touch .profile
 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
+source ~/.nvm/nvm.sh
 nvm install 0.12 && npm config set cache /tmp/npm-cache
+nvm install 4 && npm config set cache /tmp/npm-cache
+nvm install 5 && npm config set cache /tmp/npm-cache
+nvm alias default 4
 
 # C# dependencies (http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives)
 
@@ -112,3 +119,6 @@
 gem install bundler
 
 # Java dependencies - nothing as we already have Java JDK 8
+
+# Go dependencies
+sudo apt-get install -y golang-go
diff --git a/tools/gce/linux_worker_init.sh b/tools/gce/linux_worker_init.sh
index ef6a5d1..afcf7a5 100755
--- a/tools/gce/linux_worker_init.sh
+++ b/tools/gce/linux_worker_init.sh
@@ -37,7 +37,7 @@
 sudo apt-get update
 
 # Install JRE
-sudo apt-get install -y openjdk-7-jre
+sudo apt-get install -y openjdk-8-jre
 sudo apt-get install -y unzip lsof
 
 # Install Docker
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/gcp/stress_test/run_ruby.sh
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/gcp/stress_test/run_ruby.sh
index 2fc66c2..80d0567 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/gcp/stress_test/run_ruby.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +27,11 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+# This is a wrapper script that was created to help run_server.py and
+# run_client.py to launch 'node js' stress clients and stress servers
+source /etc/profile.d/rvm.sh
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+set -ex
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+$@
diff --git a/examples/node/greeter_client.js b/tools/gource/create_auth_context.h
similarity index 74%
copy from examples/node/greeter_client.js
copy to tools/gource/create_auth_context.h
index 2820acb..387407b 100644
--- a/examples/node/greeter_client.js
+++ b/tools/gource/create_auth_context.h
@@ -30,24 +30,13 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  */
+#include <memory>
 
-var PROTO_PATH = __dirname + '/../protos/helloworld.proto';
+#include <grpc++/security/auth_context.h>
+#include <grpc/grpc.h>
 
-var grpc = require('grpc');
-var hello_proto = grpc.load(PROTO_PATH).helloworld;
+namespace grpc {
 
-function main() {
-  var client = new hello_proto.Greeter('localhost:50051',
-                                       grpc.credentials.createInsecure());
-  var user;
-  if (process.argv.length >= 3) {
-    user = process.argv[2];
-  } else {
-    user = 'world';
-  }
-  client.sayHello({name: user}, function(err, response) {
-    console.log('Greeting:', response.message);
-  });
-}
+std::shared_ptr<const AuthContext> CreateAuthContext(grpc_call* call);
 
-main();
+}  // namespace grpc
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/gource/gen-all-logs.sh
similarity index 61%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/gource/gen-all-logs.sh
index 2fc66c2..85352c5 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/gource/gen-all-logs.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +27,21 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+set -ex
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+outdir=`pwd`
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
+tmpdir=`mktemp -d`
+mkdir -p $tmpdir/logs
+repos="grpc grpc-common grpc-go grpc-java grpc.github.io grpc-tools homebrew-grpc grpc-docker-library"
+for repo in $repos
+do
+  cd $tmpdir
+  git clone https://github.com/grpc/$repo.git
+  cd $repo
+  gource --output-custom-log $tmpdir/logs/$repo
+  sed -i .backup "s,\|/,\|/$repo/,g" $tmpdir/logs/$repo
 done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+rm $tmpdir/logs/*.backup
+cat $tmpdir/logs/* | sort -n > $outdir/all-logs.txt
diff --git a/tools/gource/gource.sh b/tools/gource/gource.sh
index 0199609..b3dad5d 100755
--- a/tools/gource/gource.sh
+++ b/tools/gource/gource.sh
@@ -28,5 +28,13 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-gource --multi-sampling -c 4 -s 0.1 --max-file-lag 0.05 --max-files 0 -e 0.05 --hide filenames,dirnames $*
-
+gource                          \
+  --multi-sampling              \
+  -s 0.1                        \
+  --max-file-lag 0.05           \
+  --max-files 0                 \
+  -e 0.01                       \
+  --hide filenames,dirnames     \
+  --disable-auto-rotate         \
+  --file-filter '/grpc/doc/ref' \
+  $*
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/gource/make-video.sh
similarity index 60%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/gource/make-video.sh
index 2fc66c2..02d79df 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/gource/make-video.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,41 +27,21 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+set -ex
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
-
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
-
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+dst=$1
+shift
+$(dirname $0)/gource.sh \
+  --disable-progress    \
+  --stop-at-end         \
+  --output-ppm-stream - \
+  $@ |                  \
+ffmpeg                  \
+  -y                    \
+  -r 60                 \
+  -f image2pipe         \
+  -vcodec ppm           \
+  -i -                  \
+  -vcodec libx264       \
+  $dst
diff --git a/tools/jenkins/README.md b/tools/jenkins/README.md
new file mode 100644
index 0000000..8e06b68
--- /dev/null
+++ b/tools/jenkins/README.md
@@ -0,0 +1 @@
+Scripts invoked by Jenkins (our CI platform) to run gRPC test suites.
diff --git a/tools/jenkins/run_fuzzer.sh b/tools/jenkins/run_fuzzer.sh
index 3f25a93..cfa7ace 100755
--- a/tools/jenkins/run_fuzzer.sh
+++ b/tools/jenkins/run_fuzzer.sh
@@ -33,14 +33,14 @@
 set -ex
 
 export RUN_COMMAND="tools/fuzzer/build_and_run_fuzzer.sh $1"
-export DOCKER_RUN_SCRIPT=tools/jenkins/docker_run.sh
+export DOCKER_RUN_SCRIPT=tools/run_tests/dockerize/docker_run.sh
 export DOCKERFILE_DIR=tools/dockerfile/test/fuzzer
 export OUTPUT_DIR=fuzzer_output
 
 runtime=${runtime:-3600}
 jobs=${jobs:-3}
 
-tools/jenkins/build_and_run_docker.sh \
+tools/run_tests/dockerize/build_and_run_docker.sh \
   -e RUN_COMMAND="$RUN_COMMAND" \
   -e OUTPUT_DIR="$OUTPUT_DIR" \
   -e config="$config" \
diff --git a/tools/jenkins/run_performance.sh b/tools/jenkins/run_performance.sh
index 13a3327..99b920f 100755
--- a/tools/jenkins/run_performance.sh
+++ b/tools/jenkins/run_performance.sh
@@ -34,4 +34,4 @@
 # Enter the gRPC repo root
 cd $(dirname $0)/../..
 
-tools/run_tests/run_performance_tests.py -l c++ node ruby csharp python
+tools/run_tests/run_performance_tests.py -l c++ node ruby csharp python --netperf --category smoketest
diff --git a/tools/run_tests/artifact_targets.py b/tools/run_tests/artifact_targets.py
index e61c46d..bd1269c 100644
--- a/tools/run_tests/artifact_targets.py
+++ b/tools/run_tests/artifact_targets.py
@@ -43,10 +43,10 @@
   for k,v in environ.iteritems():
     docker_args += ['-e', '%s=%s' % (k, v)]
   docker_env = {'DOCKERFILE_DIR': dockerfile_dir,
-                'DOCKER_RUN_SCRIPT': 'tools/jenkins/docker_run.sh',
+                'DOCKER_RUN_SCRIPT': 'tools/run_tests/dockerize/docker_run.sh',
                 'OUTPUT_DIR': 'artifacts'}
   jobspec = jobset.JobSpec(
-          cmdline=['tools/jenkins/build_and_run_docker.sh'] + docker_args,
+          cmdline=['tools/run_tests/dockerize/build_and_run_docker.sh'] + docker_args,
           environ=docker_env,
           shortname='build_artifact.%s' % (name),
           timeout_seconds=30*60,
@@ -84,12 +84,16 @@
 class PythonArtifact:
   """Builds Python artifacts."""
 
-  def __init__(self, platform, arch):
-    self.name = 'python_%s_%s' % (platform, arch)
+  def __init__(self, platform, arch, manylinux_build=None):
+    if manylinux_build:
+      self.name = 'python_%s_%s_%s' % (platform, arch, manylinux_build)
+    else:
+      self.name = 'python_%s_%s' % (platform, arch)
     self.platform = platform
     self.arch = arch
     self.labels = ['artifact', 'python', platform, arch]
     self.python_version = python_version_arch_map[arch]
+    self.manylinux_build = manylinux_build
 
   def pre_build_jobspecs(self):
       return []
@@ -99,14 +103,26 @@
     if self.platform == 'linux':
       if self.arch == 'x86':
         environ['SETARCH_CMD'] = 'linux32'
+      # Inside the manylinux container, the python installations are located in
+      # special places...
+      environ['PYTHON'] = '/opt/python/{}/bin/python'.format(self.manylinux_build)
+      environ['PIP'] = '/opt/python/{}/bin/pip'.format(self.manylinux_build)
+      # Our docker image has all the prerequisites pip-installed already.
+      environ['SKIP_PIP_INSTALL'] = '1'
+      # Platform autodetection for the manylinux1 image breaks so we set the
+      # defines ourselves.
+      # TODO(atash) get better platform-detection support in core so we don't
+      # need to do this manually...
+      environ['CFLAGS'] = '-DGPR_MANYLINUX1=1'
       return create_docker_jobspec(self.name,
-          'tools/dockerfile/grpc_artifact_linux_%s' % self.arch,
+          'tools/dockerfile/grpc_artifact_python_manylinux_%s' % self.arch,
           'tools/run_tests/build_artifact_python.sh',
           environ=environ)
     elif self.platform == 'windows':
       return create_jobspec(self.name,
                             ['tools\\run_tests\\build_artifact_python.bat',
-                             self.python_version
+                             self.python_version,
+                             '32' if self.arch == 'x86' else '64'
                             ],
                             shell=True)
     else:
@@ -307,8 +323,10 @@
            for Cls in (CSharpExtArtifact, NodeExtArtifact, ProtocArtifact)
            for platform in ('linux', 'macos', 'windows')
            for arch in ('x86', 'x64')] +
-          [PythonArtifact('linux', 'x86'),
-           PythonArtifact('linux', 'x64'),
+          [PythonArtifact('linux', 'x86', 'cp27-cp27m'),
+           PythonArtifact('linux', 'x86', 'cp27-cp27mu'),
+           PythonArtifact('linux', 'x64', 'cp27-cp27m'),
+           PythonArtifact('linux', 'x64', 'cp27-cp27mu'),
            PythonArtifact('macos', 'x64'),
            PythonArtifact('windows', 'x86'),
            PythonArtifact('windows', 'x64'),
diff --git a/tools/run_tests/build_artifact_node.bat b/tools/run_tests/build_artifact_node.bat
index 84c63c2..c5bd726 100644
--- a/tools/run_tests/build_artifact_node.bat
+++ b/tools/run_tests/build_artifact_node.bat
@@ -27,7 +27,7 @@
 @rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 @rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-set node_versions=0.12.0 1.0.0 1.1.0 2.0.0 3.0.0 4.0.0 5.0.0
+set node_versions=0.12.0 1.0.0 1.1.0 2.0.0 3.0.0 4.0.0 5.0.0 6.0.0
 
 set PATH=%PATH%;C:\Program Files\nodejs\;%APPDATA%\npm
 
@@ -38,12 +38,12 @@
 mkdir artifacts
 
 for %%v in (%node_versions%) do (
-  call node-pre-gyp configure build --target=%%v --target_arch=%1
+  call .\node_modules\.bin\node-pre-gyp.cmd configure build --target=%%v --target_arch=%1
 
 @rem Try again after removing openssl headers
   rmdir "%HOMEDRIVE%%HOMEPATH%\.node-gyp\%%v\include\node\openssl" /S /Q
   rmdir "%HOMEDRIVE%%HOMEPATH%\.node-gyp\iojs-%%v\include\node\openssl" /S /Q
-  call node-pre-gyp build package testpackage --target=%%v --target_arch=%1 || goto :error
+  call .\node_modules\.bin\node-pre-gyp.cmd build package testpackage --target=%%v --target_arch=%1 || goto :error
 
   xcopy /Y /I /S build\stage\* artifacts\ || goto :error
 )
diff --git a/tools/run_tests/build_artifact_node.sh b/tools/run_tests/build_artifact_node.sh
index ef3476a..9d06472 100755
--- a/tools/run_tests/build_artifact_node.sh
+++ b/tools/run_tests/build_artifact_node.sh
@@ -42,7 +42,7 @@
 
 npm update
 
-node_versions=( 0.12.0 1.0.0 1.1.0 2.0.0 3.0.0 4.0.0 5.0.0 )
+node_versions=( 0.12.0 1.0.0 1.1.0 2.0.0 3.0.0 4.0.0 5.0.0 6.0.0 )
 
 for version in ${node_versions[@]}
 do
diff --git a/tools/run_tests/build_artifact_python.bat b/tools/run_tests/build_artifact_python.bat
index 023d394..fea0275 100644
--- a/tools/run_tests/build_artifact_python.bat
+++ b/tools/run_tests/build_artifact_python.bat
@@ -41,7 +41,7 @@
 copy /Y vsprojects\x64\Release\grpc_dll.dll src\python\grpcio\grpc\_cython\_windows\grpc_c.64.python || goto :error
 
 
-set PATH=C:\%1;C:\%1\scripts;%PATH%
+set PATH=C:\%1;C:\%1\scripts;C:\msys64\mingw%2\bin;%PATH%
 
 pip install --upgrade six
 pip install --upgrade setuptools
@@ -50,10 +50,37 @@
 set GRPC_PYTHON_USE_CUSTOM_BDIST=0
 set GRPC_PYTHON_BUILD_WITH_CYTHON=1
 
+@rem TODO(atash): maybe we could avoid the grpc_c.(32|64).python shim above if
+@rem this used the right python build?
 python setup.py bdist_wheel
 
+@rem Build gRPC Python tools
+@rem
+@rem Because this is windows and *everything seems to hate Windows* we have to
+@rem set all of these flags ourselves because Python won't help us (see the
+@rem setup.py of the grpcio_tools project).
+set GRPC_PYTHON_CFLAGS=-fno-wrapv -frtti -std=c++11
+@rem Further confusing things, MSYS2's mingw64 tries to dynamically link
+@rem libgcc, libstdc++, and winpthreads. We have to override this or our
+@rem extensions end up linking to MSYS2 DLLs, which the normal Python on
+@rem Windows user won't have... and ON TOP OF THIS, there's MinGW's GCC default
+@rem behavior of linking msvcrt.dll as the C runtime library, which we need to
+@rem override so that Python's distutils doesn't link us against multiple C
+@rem runtimes.
+python -c "from distutils.cygwinccompiler import get_msvcr; print(get_msvcr()[0])" > temp.txt
+set /p PYTHON_MSVCR=<temp.txt
+set GRPC_PYTHON_LDFLAGS=-static-libgcc -static-libstdc++ -mcrtdll=%PYTHON_MSVCR% -static -lpthread
+python tools\distrib\python\make_grpcio_tools.py
+if %2 == 32 (
+  python tools\distrib\python\grpcio_tools\setup.py build_ext -c mingw32
+) else (
+  python tools\distrib\python\grpcio_tools\setup.py build_ext -c mingw32 -DMS_WIN64
+)
+python tools\distrib\python\grpcio_tools\setup.py bdist_wheel
+
 mkdir artifacts
 xcopy /Y /I /S dist\* artifacts\ || goto :error
+xcopy /Y /I /S tools\distrib\python\grpcio_tools\dist\* artifacts\ || goto :error
 
 goto :EOF
 
diff --git a/tools/run_tests/build_artifact_python.sh b/tools/run_tests/build_artifact_python.sh
index 1f23f9f..4320f97 100755
--- a/tools/run_tests/build_artifact_python.sh
+++ b/tools/run_tests/build_artifact_python.sh
@@ -32,36 +32,52 @@
 
 cd $(dirname $0)/../..
 
-if [ "$SKIP_PIP_INSTALL" == "" ]
-then
-  pip install --upgrade six
-  # There's a bug in newer versions of setuptools (see
-  # https://bitbucket.org/pypa/setuptools/issues/503/pkg_resources_vendorpackagingrequirementsi)
-  pip install --upgrade 'setuptools==18'
-  pip install -rrequirements.txt
-fi
-
 export GRPC_PYTHON_USE_CUSTOM_BDIST=0
 export GRPC_PYTHON_BUILD_WITH_CYTHON=1
+export PYTHON=${PYTHON:-python}
+export PIP=${PIP:-pip}
+export AUDITWHEEL=${AUDITWHEEL:-auditwheel}
+
+
+if [ "$SKIP_PIP_INSTALL" == "" ]
+then
+  ${PIP} install --upgrade six
+  # There's a bug in newer versions of setuptools (see
+  # https://bitbucket.org/pypa/setuptools/issues/503/pkg_resources_vendorpackagingrequirementsi)
+  ${PIP} pip install --upgrade 'setuptools==18'
+  ${PIP} install -rrequirements.txt
+fi
 
 # Build the source distribution first because MANIFEST.in cannot override
 # exclusion of built shared objects among package resources (for some
 # inexplicable reason).
-${SETARCH_CMD} python setup.py  \
+${SETARCH_CMD} ${PYTHON} setup.py  \
     sdist
 
-# The bdist_wheel_grpc_custom command is finicky about command output ordering
-# and thus ought to be run in a shell command separate of others. Further, it
-# trashes the actual bdist_wheel output, so it should be run first so that
-# bdist_wheel may be run unmolested.
-${SETARCH_CMD} python setup.py  \
-    build_tagged_ext
-
 # Wheel has a bug where directories don't get excluded.
 # https://bitbucket.org/pypa/wheel/issues/99/cannot-exclude-directory
-${SETARCH_CMD} python setup.py  \
+${SETARCH_CMD} ${PYTHON} setup.py  \
     bdist_wheel
 
+# Build gRPC tools package source distribution
+${SETARCH_CMD} ${PYTHON} tools/distrib/python/grpcio_tools/setup.py  \
+    sdist
+
+# Build gRPC tools package binary distribution
+${PYTHON} tools/distrib/python/make_grpcio_tools.py
+CFLAGS="$CFLAGS -fno-wrapv" ${SETARCH_CMD} \
+  ${PYTHON} tools/distrib/python/grpcio_tools/setup.py bdist_wheel
+
 mkdir -p artifacts
+if command -v ${AUDITWHEEL}
+then
+  for wheel in dist/*.whl; do
+    ${AUDITWHEEL} repair $wheel -w artifacts/
+  done
+  for wheel in tools/distrib/python/grpcio_tools/dist/*.whl; do
+    ${AUDITWHEEL} repair $wheel -w artifacts/
+  done
+fi
 
 cp -r dist/* artifacts
+cp -r tools/distrib/python/grpcio_tools/dist/* artifacts
diff --git a/tools/run_tests/build_package_node.sh b/tools/run_tests/build_package_node.sh
index 6bc9466..4646072 100755
--- a/tools/run_tests/build_package_node.sh
+++ b/tools/run_tests/build_package_node.sh
@@ -55,7 +55,7 @@
 cp grpc-tools-*.tgz $artifacts/
 tools_version=$(npm list | grep -oP '(?<=grpc-tools@)\S+')
 
-output_dir=$artifacts/grpc-precompiled-binaries/node/grpc-tools/$tools_version
+output_dir=$artifacts/grpc-precompiled-binaries/node/grpc-tools/v$tools_version
 mkdir -p $output_dir
 
 for arch in {x86,x64}; do
diff --git a/tools/run_tests/build_package_ruby.sh b/tools/run_tests/build_package_ruby.sh
index 1a5b943..e44428b 100755
--- a/tools/run_tests/build_package_ruby.sh
+++ b/tools/run_tests/build_package_ruby.sh
@@ -32,6 +32,8 @@
 
 cd $(dirname $0)/../..
 
+base=$(pwd)
+
 mkdir -p artifacts/
 
 # All the ruby packages have been built in the artifact phase already
@@ -41,3 +43,25 @@
 # TODO: all the artifact builder configurations generate a grpc-VERSION.gem
 # source distribution package, and only one of them will end up
 # in the artifacts/ directory. They should be all equivalent though.
+
+for arch in {x86,x64}; do
+  case $arch in
+    x64)
+      ruby_arch=x86_64
+      ;;
+    *)
+      ruby_arch=$arch
+      ;;
+  esac
+  for plat in {windows,linux,macos}; do
+    input_dir="$EXTERNAL_GIT_ROOT/architecture=$arch,language=protoc,platform=$plat/artifacts"
+    output_dir="$base/src/ruby/tools/bin/${ruby_arch}-${plat}"
+    mkdir -p $output_dir
+    cp $input_dir/protoc* $output_dir/
+    cp $input_dir/grpc_ruby_plugin* $output_dir/
+  done
+done
+
+cd $base/src/ruby/tools
+gem build grpc-tools.gemspec
+cp ./grpc-tools*.gem $base/artifacts/
diff --git a/tools/run_tests/configs.json b/tools/run_tests/configs.json
index 325e9aa..bcc4118 100644
--- a/tools/run_tests/configs.json
+++ b/tools/run_tests/configs.json
@@ -56,6 +56,9 @@
   }, 
   {
     "config": "ubsan", 
+    "environ": {
+      "UBSAN_OPTIONS": "print_stacktrace=1"
+    }, 
     "timeout_multiplier": 1.5
   }, 
   {
diff --git a/tools/run_tests/distribtest_targets.py b/tools/run_tests/distribtest_targets.py
index 34cc1cd..ae918be 100644
--- a/tools/run_tests/distribtest_targets.py
+++ b/tools/run_tests/distribtest_targets.py
@@ -44,9 +44,9 @@
   for k,v in environ.iteritems():
     docker_args += ['-e', '%s=%s' % (k, v)]
   docker_env = {'DOCKERFILE_DIR': dockerfile_dir,
-                'DOCKER_RUN_SCRIPT': 'tools/jenkins/docker_run.sh'}
+                'DOCKER_RUN_SCRIPT': 'tools/run_tests/dockerize/docker_run.sh'}
   jobspec = jobset.JobSpec(
-          cmdline=['tools/jenkins/build_and_run_docker.sh'] + docker_args,
+          cmdline=['tools/run_tests/dockerize/build_and_run_docker.sh'] + docker_args,
           environ=docker_env,
           shortname='distribtest.%s' % (name),
           timeout_seconds=30*60,
diff --git a/tools/jenkins/build_and_run_docker.sh b/tools/run_tests/dockerize/build_and_run_docker.sh
similarity index 98%
rename from tools/jenkins/build_and_run_docker.sh
rename to tools/run_tests/dockerize/build_and_run_docker.sh
index 92dbbc6..1ef34b2 100755
--- a/tools/jenkins/build_and_run_docker.sh
+++ b/tools/run_tests/dockerize/build_and_run_docker.sh
@@ -33,7 +33,7 @@
 
 set -ex
 
-cd $(dirname $0)/../..
+cd $(dirname $0)/../../..
 git_root=$(pwd)
 cd -
 
diff --git a/tools/jenkins/build_docker_and_run_tests.sh b/tools/run_tests/dockerize/build_docker_and_run_tests.sh
similarity index 98%
rename from tools/jenkins/build_docker_and_run_tests.sh
rename to tools/run_tests/dockerize/build_docker_and_run_tests.sh
index 5779e63..c2ea6f2 100755
--- a/tools/jenkins/build_docker_and_run_tests.sh
+++ b/tools/run_tests/dockerize/build_docker_and_run_tests.sh
@@ -33,7 +33,7 @@
 
 set -ex
 
-cd $(dirname $0)/../..
+cd $(dirname $0)/../../..
 git_root=$(pwd)
 cd -
 
diff --git a/tools/jenkins/build_interop_image.sh b/tools/run_tests/dockerize/build_interop_image.sh
similarity index 98%
rename from tools/jenkins/build_interop_image.sh
rename to tools/run_tests/dockerize/build_interop_image.sh
index d2ba97c..48a216a 100755
--- a/tools/jenkins/build_interop_image.sh
+++ b/tools/run_tests/dockerize/build_interop_image.sh
@@ -40,7 +40,7 @@
 #  BUILD_INTEROP_DOCKER_EXTRA_ARGS - optional args to be passed to the
 #    docker run command
 
-cd `dirname $0`/../..
+cd `dirname $0`/../../..
 GRPC_ROOT=`pwd`
 MOUNT_ARGS="-v $GRPC_ROOT:/var/local/jenkins/grpc:ro"
 
diff --git a/tools/jenkins/build_interop_stress_image.sh b/tools/run_tests/dockerize/build_interop_stress_image.sh
similarity index 98%
rename from tools/jenkins/build_interop_stress_image.sh
rename to tools/run_tests/dockerize/build_interop_stress_image.sh
index 31ffa75..4407c8d 100755
--- a/tools/jenkins/build_interop_stress_image.sh
+++ b/tools/run_tests/dockerize/build_interop_stress_image.sh
@@ -44,7 +44,7 @@
 #  BUILD_INTEROP_DOCKER_EXTRA_ARGS - optional args to be passed to the
 #    docker run command
 
-cd `dirname $0`/../..
+cd `dirname $0`/../../..
 GRPC_ROOT=`pwd`
 MOUNT_ARGS="-v $GRPC_ROOT:/var/local/jenkins/grpc:ro"
 
diff --git a/tools/jenkins/docker_run.sh b/tools/run_tests/dockerize/docker_run.sh
similarity index 100%
rename from tools/jenkins/docker_run.sh
rename to tools/run_tests/dockerize/docker_run.sh
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/run_tests/dockerize/docker_run_tests.sh
similarity index 97%
rename from tools/jenkins/docker_run_tests.sh
rename to tools/run_tests/dockerize/docker_run_tests.sh
index 2fc66c2..8c6143d 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/run_tests/dockerize/docker_run_tests.sh
@@ -35,6 +35,7 @@
 
 export CONFIG=$config
 export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+export PATH=$PATH:/usr/bin/llvm-symbolizer
 
 # Ensure that programs depending on current-user-ownership of cache directories
 # are satisfied (it's being mounted from outside the image).
diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py
index e9675fb..d3259e7 100755
--- a/tools/run_tests/jobset.py
+++ b/tools/run_tests/jobset.py
@@ -344,6 +344,7 @@
     self._add_env = add_env
     self.resultset = {}
     self._remaining = None
+    self._start_time = time.time()
 
   def set_remaining(self, remaining):
     self._remaining = remaining
@@ -413,6 +414,11 @@
       if dead: return
       if (not self._travis):
         rstr = '' if self._remaining is None else '%d queued, ' % self._remaining
+        if self._remaining is not None and self._completed > 0:
+          now = time.time()
+          sofar = now - self._start_time
+          remaining = sofar / self._completed * (self._remaining + len(self._running))
+          rstr = 'ETA %.1f sec; %s' % (remaining, rstr)
         message('WAITING', '%s%d jobs running, %d complete, %d failed' % (
             rstr, len(self._running), self._completed, self._failures))
       if platform_string() == 'windows':
@@ -457,7 +463,7 @@
   staging = []
   for x in xs:
     staging.append(x)
-    if len(staging) > 1000:
+    if len(staging) > 5000:
       yield (staging.pop(0), None)
   n = len(staging)
   for i, x in enumerate(staging):
diff --git a/tools/run_tests/package_targets.py b/tools/run_tests/package_targets.py
index 87bc486..820b539 100644
--- a/tools/run_tests/package_targets.py
+++ b/tools/run_tests/package_targets.py
@@ -42,10 +42,10 @@
   for k,v in environ.iteritems():
     docker_args += ['-e', '%s=%s' % (k, v)]
   docker_env = {'DOCKERFILE_DIR': dockerfile_dir,
-                'DOCKER_RUN_SCRIPT': 'tools/jenkins/docker_run.sh',
+                'DOCKER_RUN_SCRIPT': 'tools/run_tests/dockerize/docker_run.sh',
                 'OUTPUT_DIR': 'artifacts'}
   jobspec = jobset.JobSpec(
-          cmdline=['tools/jenkins/build_and_run_docker.sh'] + docker_args,
+          cmdline=['tools/run_tests/dockerize/build_and_run_docker.sh'] + docker_args,
           environ=docker_env,
           shortname='build_package.%s' % (name),
           timeout_seconds=30*60,
diff --git a/tools/run_tests/performance/bq_upload_result.py b/tools/run_tests/performance/bq_upload_result.py
index ebd28f7..fbccf3b 100755
--- a/tools/run_tests/performance/bq_upload_result.py
+++ b/tools/run_tests/performance/bq_upload_result.py
@@ -48,20 +48,47 @@
 _PROJECT_ID='grpc-testing'
 
 
-def _upload_scenario_result_to_bigquery(dataset_id, table_id, result_file):
+def _upload_netperf_latency_csv_to_bigquery(dataset_id, table_id, result_file):
+  with open(result_file, 'r') as f:
+    (col1, col2, col3) = f.read().split(',')
+    latency50 = float(col1.strip()) * 1000
+    latency90 = float(col2.strip()) * 1000
+    latency99 = float(col3.strip()) * 1000
+
+    scenario_result = {
+        'scenario': {
+          'name': 'netperf_tcp_rr'
+        },
+        'summary': {
+          'latency50': latency50,
+          'latency90': latency90,
+          'latency99': latency99
+        }
+    }
+
   bq = big_query_utils.create_big_query()
   _create_results_table(bq, dataset_id, table_id)
 
+  if not _insert_result(bq, dataset_id, table_id, scenario_result, flatten=False):
+    print 'Error uploading result to bigquery.'
+    sys.exit(1)
+
+
+def _upload_scenario_result_to_bigquery(dataset_id, table_id, result_file):
   with open(result_file, 'r') as f:
     scenario_result = json.loads(f.read())
 
+  bq = big_query_utils.create_big_query()
+  _create_results_table(bq, dataset_id, table_id)
+
   if not _insert_result(bq, dataset_id, table_id, scenario_result):
     print 'Error uploading result to bigquery.'
     sys.exit(1)
 
 
-def _insert_result(bq, dataset_id, table_id, scenario_result):
-  _flatten_result_inplace(scenario_result)
+def _insert_result(bq, dataset_id, table_id, scenario_result, flatten=True):
+  if flatten:
+    _flatten_result_inplace(scenario_result)
   _populate_metadata_inplace(scenario_result)
   row = big_query_utils.make_row(str(uuid.uuid4()), scenario_result)
   return big_query_utils.insert_rows(bq,
@@ -127,9 +154,17 @@
                   help='Bigquery "dataset.table" to upload results to.')
 argp.add_argument('--file_to_upload', default='scenario_result.json', type=str,
                   help='Report file to upload.')
+argp.add_argument('--file_format',
+                  choices=['scenario_result','netperf_latency_csv'],
+                  default='scenario_result',
+                  help='Format of the file to upload.')
 
 args = argp.parse_args()
 
 dataset_id, table_id = args.bq_result_table.split('.', 2)
-_upload_scenario_result_to_bigquery(dataset_id, table_id, args.file_to_upload)
+
+if args.file_format == 'netperf_latency_csv':
+  _upload_netperf_latency_csv_to_bigquery(dataset_id, table_id, args.file_to_upload)
+else:
+  _upload_scenario_result_to_bigquery(dataset_id, table_id, args.file_to_upload)
 print 'Successfully uploaded %s to BigQuery.\n' % args.file_to_upload
diff --git a/tools/run_tests/performance/build_performance.sh b/tools/run_tests/performance/build_performance.sh
index 8cfe1c4..352c679 100755
--- a/tools/run_tests/performance/build_performance.sh
+++ b/tools/run_tests/performance/build_performance.sh
@@ -33,8 +33,6 @@
 
 cd $(dirname $0)/../../..
 
-#TODO(jtattermusch): add support for more languages
-
 CONFIG=${CONFIG:-opt}
 
 # build C++ qps worker & driver always - we need at least the driver to
@@ -53,6 +51,9 @@
     (cd ../grpc-java/ &&
       ./gradlew -PskipCodegen=true :grpc-benchmarks:installDist)
     ;;
+  "go")
+    tools/run_tests/performance/build_performance_go.sh
+    ;;
   *)
     tools/run_tests/run_tests.py -l $language -c $CONFIG --build_only -j 8
     ;;
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/run_tests/performance/build_performance_go.sh
similarity index 62%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/run_tests/performance/build_performance_go.sh
index 2fc66c2..3719cc5 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/run_tests/performance/build_performance_go.sh
@@ -27,41 +27,18 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+set -ex
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+cd $(dirname $0)/../../..
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+export GOPATH=$(pwd)/../gopath
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+# Get grpc-go and the dependencies but get rid of the upstream/master version
+go get google.golang.org/grpc
+rm -rf "${GOPATH}/src/google.golang.org/grpc"
 
-mkdir -p reports
+# Get the revision of grpc-go we want to test
+git clone --recursive ../grpc-go ${GOPATH}/src/google.golang.org/grpc
 
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+(cd ${GOPATH}/src/google.golang.org/grpc/benchmark/worker && go install)
diff --git a/tools/run_tests/performance/kill_workers.sh b/tools/run_tests/performance/kill_workers.sh
index 7a87634..f306f0c 100755
--- a/tools/run_tests/performance/kill_workers.sh
+++ b/tools/run_tests/performance/kill_workers.sh
@@ -52,3 +52,6 @@
 
 # Java
 jps | grep LoadWorker | awk '{print $1}' | xargs kill -9
+
+# Go
+killall -9 worker || true
diff --git a/tools/run_tests/performance/remote_host_prepare.sh b/tools/run_tests/performance/remote_host_prepare.sh
index d7f539a..f81102b 100755
--- a/tools/run_tests/performance/remote_host_prepare.sh
+++ b/tools/run_tests/performance/remote_host_prepare.sh
@@ -39,7 +39,7 @@
 # mess with the results, be rough and reboot the slave here
 # and wait for it to come back online.
 # could also kill jenkins.
-ssh "${USER_AT_HOST}" "killall -9 qps_worker mono node ruby || true"
+ssh "${USER_AT_HOST}" "killall -9 qps_worker mono node ruby worker || true"
 
 # push the current sources to the slave and unpack it.
 scp ../grpc.tar "${USER_AT_HOST}:~/performance_workspace"
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/run_tests/performance/run_netperf.sh
similarity index 62%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/run_tests/performance/run_netperf.sh
index 2fc66c2..298edbe 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/run_tests/performance/run_netperf.sh
@@ -27,41 +27,19 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+set -ex
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+cd $(dirname $0)/../../..
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+netperf >netperf_latency.txt -P 0 -t TCP_RR -H "$NETPERF_SERVER_HOST" -- -r 1,1 -o P50_LATENCY,P90_LATENCY,P99_LATENCY
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+cat netperf_latency.txt
 
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+if [ "$BQ_RESULT_TABLE" != "" ]
+then
+  tools/run_tests/performance/bq_upload_result.py \
+      --file_to_upload=netperf_latency.txt \
+      --file_format=netperf_latency_csv \
+      --bq_result_table="$BQ_RESULT_TABLE"
+fi
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/run_tests/performance/run_worker_go.sh
similarity index 62%
copy from tools/jenkins/docker_run_tests.sh
copy to tools/run_tests/performance/run_worker_go.sh
index 2fc66c2..6b1242a 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/run_tests/performance/run_worker_go.sh
@@ -27,41 +27,11 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# This script is invoked by build_docker_and_run_tests.sh inside a docker
-# container. You should never need to call this script on your own.
 
-set -e
+set -ex
 
-export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+cd $(dirname $0)/../../..
 
-# Ensure that programs depending on current-user-ownership of cache directories
-# are satisfied (it's being mounted from outside the image).
-chown $(whoami) $XDG_CACHE_HOME
+export GOPATH=$(pwd)/../gopath
 
-mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-
-mkdir -p reports
-
-$POST_GIT_STEP
-
-exit_code=0
-
-$RUN_TESTS_COMMAND || exit_code=$?
-
-cd reports
-echo '<html><head></head><body>' > index.html
-find . -maxdepth 1 -mindepth 1 -type d | sort | while read d ; do
-  d=${d#*/}
-  n=${d//_/ }
-  echo "<a href='$d/index.html'>$n</a><br />" >> index.html
-done
-echo '</body></html>' >> index.html
-cd ..
-
-zip -r reports.zip reports
-find . -name report.xml | xargs zip reports.zip
-
-exit $exit_code
+${GOPATH}/bin/worker $@
diff --git a/tools/run_tests/performance/run_worker_node.sh b/tools/run_tests/performance/run_worker_node.sh
index 46b6ff0..9a53a31 100755
--- a/tools/run_tests/performance/run_worker_node.sh
+++ b/tools/run_tests/performance/run_worker_node.sh
@@ -29,7 +29,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 source ~/.nvm/nvm.sh
-nvm use 0.12
+nvm use 4
 
 set -ex
 
diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py
index ddbe237..4fe66df 100644
--- a/tools/run_tests/performance/scenario_config.py
+++ b/tools/run_tests/performance/scenario_config.py
@@ -29,11 +29,12 @@
 
 # performance scenario configuration for various languages
 
-SINGLE_MACHINE_CORES=8
 WARMUP_SECONDS=5
 JAVA_WARMUP_SECONDS=15  # Java needs more warmup time for JIT to kick in.
 BENCHMARK_SECONDS=30
 
+SMOKETEST='smoketest'
+
 SECURE_SECARGS = {'use_test_ca': True,
                   'server_host_override': 'foo.test.google.fr'}
 
@@ -69,6 +70,86 @@
 WIDE=64
 
 
+def _get_secargs(is_secure):
+  if is_secure:
+    return SECURE_SECARGS
+  else:
+    return None
+
+
+def remove_nonproto_fields(scenario):
+  """Remove special-purpose that contains some extra info about the scenario
+  but don't belong to the ScenarioConfig protobuf message"""
+  scenario.pop('CATEGORIES', None)
+  scenario.pop('SERVER_LANGUAGE', None)
+  return scenario
+
+
+def _ping_pong_scenario(name, rpc_type,
+                        client_type, server_type,
+                        secure=True,
+                        use_generic_payload=False,
+                        use_unconstrained_client=False,
+                        server_language=None,
+                        server_core_limit=0,
+                        async_server_threads=0,
+                        warmup_seconds=WARMUP_SECONDS,
+                        categories=[]):
+  """Creates a basic ping pong scenario."""
+  scenario = {
+    'name': name,
+    'num_servers': 1,
+    'num_clients': 1,
+    'client_config': {
+      'client_type': client_type,
+      'security_params': _get_secargs(secure),
+      'outstanding_rpcs_per_channel': 1,
+      'client_channels': 1,
+      'async_client_threads': 1,
+      'rpc_type': rpc_type,
+      'load_params': {
+        'closed_loop': {}
+      },
+      'histogram_params': HISTOGRAM_PARAMS,
+    },
+    'server_config': {
+      'server_type': server_type,
+      'security_params': _get_secargs(secure),
+      'core_limit': server_core_limit,
+      'async_server_threads': async_server_threads,
+    },
+    'warmup_seconds': warmup_seconds,
+    'benchmark_seconds': BENCHMARK_SECONDS
+  }
+  if use_generic_payload:
+    if server_type != 'ASYNC_GENERIC_SERVER':
+      raise Exception('Use ASYNC_GENERIC_SERVER for generic payload.')
+    scenario['client_config']['payload_config'] = EMPTY_GENERIC_PAYLOAD
+    scenario['server_config']['payload_config'] = EMPTY_GENERIC_PAYLOAD
+  else:
+    # For proto payload, only the client should get the config.
+    scenario['client_config']['payload_config'] = EMPTY_PROTO_PAYLOAD
+
+  if use_unconstrained_client:
+    scenario['num_clients'] = 0  # use as many client as available.
+    # TODO(jtattermusch): for SYNC_CLIENT, this will create 100*64 threads
+    # and that's probably too much (at least for wrapped languages).
+    scenario['client_config']['outstanding_rpcs_per_channel'] = DEEP
+    scenario['client_config']['client_channels'] = WIDE
+    scenario['client_config']['async_client_threads'] = 0
+  else:
+    scenario['client_config']['outstanding_rpcs_per_channel'] = 1
+    scenario['client_config']['client_channels'] = 1
+    scenario['client_config']['async_client_threads'] = 1
+
+  if server_language:
+    # the SERVER_LANGUAGE field is recognized by run_performance_tests.py
+    scenario['SERVER_LANGUAGE'] = server_language
+  if categories:
+    scenario['CATEGORIES'] = categories
+  return scenario
+
+
 class CXXLanguage:
 
   def __init__(self):
@@ -83,205 +164,61 @@
   def scenarios(self):
     # TODO(ctiller): add 70% load latency test
     for secure in [True, False]:
-      if secure:
-        secstr = 'secure'
-        secargs = SECURE_SECARGS
-      else:
-        secstr = 'insecure'
-        secargs = None
+      secstr = 'secure' if secure else 'insecure'
+      smoketest_categories = [SMOKETEST] if secure else None
 
-      yield {
-          'name': 'cpp_generic_async_streaming_ping_pong_%s'
-                  % secstr,
-          'num_servers': 1,
-          'num_clients': 1,
-          'client_config': {
-            'client_type': 'ASYNC_CLIENT',
-            'security_params': secargs,
-            'outstanding_rpcs_per_channel': 1,
-            'client_channels': 1,
-            'async_client_threads': 1,
-            'rpc_type': 'STREAMING',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_GENERIC_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'ASYNC_GENERIC_SERVER',
-            'security_params': secargs,
-            'core_limit': 1,
-            'async_server_threads': 1,
-            'payload_config': EMPTY_GENERIC_PAYLOAD,
-          },
-          'warmup_seconds': WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS
-      }
-      yield {
-          'name': 'cpp_generic_async_streaming_qps_unconstrained_%s'
-                  % secstr,
-          'num_servers': 1,
-          'num_clients': 0,
-          'client_config': {
-            'client_type': 'ASYNC_CLIENT',
-            'security_params': secargs,
-            'outstanding_rpcs_per_channel': DEEP,
-            'client_channels': WIDE,
-            'async_client_threads': 0,
-            'rpc_type': 'STREAMING',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_GENERIC_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'ASYNC_GENERIC_SERVER',
-            'security_params': secargs,
-            'core_limit': SINGLE_MACHINE_CORES/2,
-            'async_server_threads': 0,
-            'payload_config': EMPTY_GENERIC_PAYLOAD,
-          },
-          'warmup_seconds': WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS
-      }
-      yield {
-          'name': 'cpp_generic_async_streaming_qps_one_server_core_%s'
-                  % secstr,
-          'num_servers': 1,
-          'num_clients': 0,
-          'client_config': {
-            'client_type': 'ASYNC_CLIENT',
-            'security_params': secargs,
-            'outstanding_rpcs_per_channel': DEEP,
-            'client_channels': WIDE,
-            'async_client_threads': 0,
-            'rpc_type': 'STREAMING',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_GENERIC_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'ASYNC_GENERIC_SERVER',
-            'security_params': secargs,
-            'core_limit': 1,
-            'async_server_threads': 1,
-            'payload_config': EMPTY_GENERIC_PAYLOAD,
-          },
-          'warmup_seconds': WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS
-      }
-      yield {
-          'name': 'cpp_protobuf_async_streaming_qps_unconstrained_%s'
-                  % secstr,
-          'num_servers': 1,
-          'num_clients': 0,
-          'client_config': {
-            'client_type': 'ASYNC_CLIENT',
-            'security_params': secargs,
-            'outstanding_rpcs_per_channel': DEEP,
-            'client_channels': WIDE,
-            'async_client_threads': 0,
-            'rpc_type': 'STREAMING',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_PROTO_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'ASYNC_SERVER',
-            'security_params': secargs,
-            'core_limit': SINGLE_MACHINE_CORES/2,
-            'async_server_threads': 0,
-          },
-          'warmup_seconds': WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS
-      }
-      yield {
-          'name': 'cpp_protobuf_async_streaming_ping_pong_%s'
-                  % secstr,
-          'num_servers': 1,
-          'num_clients': 1,
-          'client_config': {
-            'client_type': 'ASYNC_CLIENT',
-            'security_params': secargs,
-            'outstanding_rpcs_per_channel': 1,
-            'client_channels': 1,
-            'async_client_threads': 1,
-            'rpc_type': 'STREAMING',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_PROTO_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'ASYNC_SERVER',
-            'security_params': secargs,
-            'core_limit': 1,
-            'async_server_threads': 1,
-          },
-          'warmup_seconds': WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS
-      }
-      yield {
-          'name': 'cpp_protobuf_sync_unary_ping_pong_%s'
-                  % secstr,
-          'num_servers': 1,
-          'num_clients': 1,
-          'client_config': {
-            'client_type': 'SYNC_CLIENT',
-            'security_params': secargs,
-            'outstanding_rpcs_per_channel': 1,
-            'client_channels': 1,
-            'async_client_threads': 0,
-            'rpc_type': 'UNARY',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_PROTO_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'SYNC_SERVER',
-            'security_params': secargs,
-            'core_limit': 1,
-            'async_server_threads': 0,
-          },
-          'warmup_seconds': WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS
-      }
-      yield {
-          'name': 'cpp_protobuf_async_unary_ping_pong_%s'
-                  % secstr,
-          'num_servers': 1,
-          'num_clients': 1,
-          'client_config': {
-            'client_type': 'ASYNC_CLIENT',
-            'security_params': secargs,
-            'outstanding_rpcs_per_channel': 1,
-            'client_channels': 1,
-            'async_client_threads': 1,
-            'rpc_type': 'UNARY',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_PROTO_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'ASYNC_SERVER',
-            'security_params': secargs,
-            'core_limit': 1,
-            'async_server_threads': 1,
-          },
-          'warmup_seconds': WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS
-      }
+      yield _ping_pong_scenario(
+          'cpp_generic_async_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+          use_generic_payload=True, server_core_limit=1, async_server_threads=1,
+          secure=secure,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'cpp_protobuf_async_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+          server_core_limit=1, async_server_threads=1,
+          secure=secure)
+
+      yield _ping_pong_scenario(
+          'cpp_protobuf_async_unary_ping_pong_%s' % secstr, rpc_type='UNARY',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+          server_core_limit=1, async_server_threads=1,
+          secure=secure,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'cpp_protobuf_sync_unary_ping_pong_%s' % secstr, rpc_type='UNARY',
+          client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+          server_core_limit=1, async_server_threads=1,
+          secure=secure)
+
+      yield _ping_pong_scenario(
+          'cpp_protobuf_async_unary_qps_unconstrained_%s' % secstr, rpc_type='UNARY',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+          use_unconstrained_client=True,
+          secure=secure,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'cpp_protobuf_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+          use_unconstrained_client=True,
+          secure=secure)
+
+      yield _ping_pong_scenario(
+          'cpp_generic_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+          use_unconstrained_client=True, use_generic_payload=True,
+          secure=secure,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'cpp_generic_async_streaming_qps_one_server_core_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+          use_unconstrained_client=True, use_generic_payload=True,
+          server_core_limit=1, async_server_threads=1,
+          secure=secure)
 
   def __str__(self):
     return 'c++'
@@ -299,113 +236,46 @@
     return 100
 
   def scenarios(self):
-    secargs = SECURE_SECARGS
-    yield {
-        'name': 'csharp_generic_async_streaming_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'ASYNC_CLIENT',
-          'security_params': secargs,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'STREAMING',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': EMPTY_GENERIC_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'ASYNC_GENERIC_SERVER',
-          'security_params': secargs,
-          'core_limit': 0,
-          'async_server_threads': 0,
-          'payload_config': EMPTY_GENERIC_PAYLOAD,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS
-    }
-    yield {
-        'name': 'csharp_protobuf_async_unary_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'ASYNC_CLIENT',
-          'security_params': secargs,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'UNARY',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': EMPTY_PROTO_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'ASYNC_SERVER',
-          'security_params': secargs,
-          'core_limit': 0,
-          'async_server_threads': 0,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS
-    }
-    yield {
-        'name': 'csharp_protobuf_sync_to_async_unary_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'SYNC_CLIENT',
-          'security_params': secargs,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'UNARY',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': EMPTY_PROTO_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'ASYNC_SERVER',
-          'security_params': secargs,
-          'core_limit': 0,
-          'async_server_threads': 0,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS
-    }
-    yield {
-        'name': 'csharp_to_cpp_protobuf_sync_unary_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'SYNC_CLIENT',
-          'security_params': secargs,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'UNARY',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': EMPTY_PROTO_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'SYNC_SERVER',
-          'security_params': secargs,
-          'core_limit': 1,
-          'async_server_threads': 1,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS,
-        'SERVER_LANGUAGE': 'c++'  # recognized by run_performance_tests.py
-    }
+    yield _ping_pong_scenario(
+        'csharp_generic_async_streaming_ping_pong', rpc_type='STREAMING',
+        client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+        use_generic_payload=True,
+        categories=[SMOKETEST])
+
+    yield _ping_pong_scenario(
+        'csharp_protobuf_async_streaming_ping_pong', rpc_type='STREAMING',
+        client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER')
+
+    yield _ping_pong_scenario(
+        'csharp_protobuf_async_unary_ping_pong', rpc_type='UNARY',
+        client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+        categories=[SMOKETEST])
+
+    yield _ping_pong_scenario(
+        'csharp_protobuf_sync_to_async_unary_ping_pong', rpc_type='UNARY',
+        client_type='SYNC_CLIENT', server_type='ASYNC_SERVER')
+
+    yield _ping_pong_scenario(
+        'csharp_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY',
+        client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+        use_unconstrained_client=True,
+        categories=[SMOKETEST])
+
+    yield _ping_pong_scenario(
+        'csharp_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING',
+        client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+        use_unconstrained_client=True)
+
+    yield _ping_pong_scenario(
+        'csharp_to_cpp_protobuf_sync_unary_ping_pong', rpc_type='UNARY',
+        client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+        server_language='c++', server_core_limit=1, async_server_threads=1,
+        categories=[SMOKETEST])
+
+    yield _ping_pong_scenario(
+        'csharp_to_cpp_protobuf_async_streaming_ping_pong', rpc_type='STREAMING',
+        client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+        server_language='c++', server_core_limit=1, async_server_threads=1)
 
   def __str__(self):
     return 'csharp'
@@ -424,34 +294,45 @@
     return 200
 
   def scenarios(self):
-    # TODO(jtattermusch): add more scenarios
-    secargs = SECURE_SECARGS
-    yield {
-        'name': 'node_protobuf_unary_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'ASYNC_CLIENT',
-          'security_params': secargs,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'UNARY',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': EMPTY_PROTO_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'ASYNC_SERVER',
-          'security_params': secargs,
-          'core_limit': 0,
-          'async_server_threads': 1,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS
-    }
+    # TODO(jtattermusch): make this scenario work
+    #yield _ping_pong_scenario(
+    #    'node_generic_async_streaming_ping_pong', rpc_type='STREAMING',
+    #    client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+    #    use_generic_payload=True)
+
+    # TODO(jtattermusch): make this scenario work
+    #yield _ping_pong_scenario(
+    #    'node_protobuf_async_streaming_ping_pong', rpc_type='STREAMING',
+    #    client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER')
+
+    yield _ping_pong_scenario(
+        'node_protobuf_unary_ping_pong', rpc_type='UNARY',
+        client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+        categories=[SMOKETEST])
+
+    yield _ping_pong_scenario(
+        'node_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY',
+        client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+        use_unconstrained_client=True,
+        categories=[SMOKETEST])
+
+    # TODO(jtattermusch): make this scenario work
+    #yield _ping_pong_scenario(
+    #    'node_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING',
+    #    client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+    #    use_unconstrained_client=True)
+
+    # TODO(jtattermusch): make this scenario work
+    #yield _ping_pong_scenario(
+    #    'node_to_cpp_protobuf_async_unary_ping_pong', rpc_type='UNARY',
+    #    client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+    #    server_language='c++', server_core_limit=1, async_server_threads=1)
+
+    # TODO(jtattermusch): make this scenario work
+    #yield _ping_pong_scenario(
+    #    'node_to_cpp_protobuf_async_streaming_ping_pong', rpc_type='STREAMING',
+    #    client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+    #    server_language='c++', server_core_limit=1, async_server_threads=1)
 
   def __str__(self):
     return 'node'
@@ -468,114 +349,51 @@
     return 500
 
   def scenarios(self):
-    yield {
-        'name': 'python_to_cpp_protobuf_streaming_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'ASYNC_CLIENT',
-          'security_params': SECURE_SECARGS,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'STREAMING',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': EMPTY_PROTO_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'SYNC_SERVER',
-          'security_params': SECURE_SECARGS,
-          'core_limit': 0,
-          'async_server_threads': 1,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS,
-        'SERVER_LANGUAGE': 'c++' 
-    }
-    yield {
-        'name': 'python_protobuf_sync_unary_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'SYNC_CLIENT',
-          'security_params': SECURE_SECARGS,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'UNARY',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': EMPTY_PROTO_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'SYNC_SERVER',
-          'security_params': SECURE_SECARGS,
-          'core_limit': 0,
-          'async_server_threads': 1,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS,
-    }
-    yield {
-        'name': 'python_protobuf_async_unary_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'ASYNC_CLIENT',
-          'security_params': SECURE_SECARGS,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-            'rpc_type': 'UNARY',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_PROTO_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'SYNC_SERVER',
-            'security_params': SECURE_SECARGS,
-            'core_limit': 0,
-            'async_server_threads': 1,
-          },
-          'warmup_seconds': WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS,
-    }
-    yield {
-        'name': 'python_to_cpp_single_channel_throughput',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'ASYNC_CLIENT',
-          'security_params': SECURE_SECARGS,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'STREAMING',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': BIG_GENERIC_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'ASYNC_GENERIC_SERVER',
-          'security_params': SECURE_SECARGS,
-          'core_limit': SINGLE_MACHINE_CORES/2,
-          'async_server_threads': 1,
-          'payload_config': BIG_GENERIC_PAYLOAD,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS,
-        'SERVER_LANGUAGE': 'c++'
-    }
-      
+    # TODO(issue #6522): Empty streaming requests does not work for python
+    #yield _ping_pong_scenario(
+    #    'python_generic_async_streaming_ping_pong', rpc_type='STREAMING',
+    #    client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+    #    use_generic_payload=True,
+    #    categories=[SMOKETEST])
+
+    yield _ping_pong_scenario(
+        'python_protobuf_async_streaming_ping_pong', rpc_type='STREAMING',
+        client_type='ASYNC_CLIENT', server_type='SYNC_SERVER')
+
+    yield _ping_pong_scenario(
+        'python_protobuf_async_unary_ping_pong', rpc_type='UNARY',
+        client_type='ASYNC_CLIENT', server_type='SYNC_SERVER')
+
+    yield _ping_pong_scenario(
+        'python_protobuf_sync_unary_ping_pong', rpc_type='UNARY',
+        client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+        categories=[SMOKETEST])
+
+    # TODO(jtattermusch): 
+    # The qps_worker server gets thread starved with ~6400 threads, the GIL
+    # enforces that a single thread runs at a time, with no way to set thread
+    # priority.  Re-evaluate after changing DEEP and WIDE.
+    #yield _ping_pong_scenario(
+    #    'python_protobuf_sync_unary_qps_unconstrained', rpc_type='UNARY',
+    #    client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+    #    use_unconstrained_client=True)
+
+    yield _ping_pong_scenario(
+        'python_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING',
+        client_type='ASYNC_CLIENT', server_type='SYNC_SERVER',
+        use_unconstrained_client=True)
+
+    yield _ping_pong_scenario(
+        'python_to_cpp_protobuf_sync_unary_ping_pong', rpc_type='UNARY',
+        client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+        server_language='c++', server_core_limit=1, async_server_threads=1,
+        categories=[SMOKETEST])
+
+    yield _ping_pong_scenario(
+        'python_to_cpp_protobuf_sync_streaming_ping_pong', rpc_type='STREAMING',
+        client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+        server_language='c++', server_core_limit=1, async_server_threads=1)
+
   def __str__(self):
     return 'python'
 
@@ -592,34 +410,37 @@
     return 300
 
   def scenarios(self):
-    # TODO(jtattermusch): add more scenarios
-    secargs = SECURE_SECARGS
-    yield {
-        'name': 'ruby_protobuf_unary_ping_pong',
-        'num_servers': 1,
-        'num_clients': 1,
-        'client_config': {
-          'client_type': 'SYNC_CLIENT',
-          'security_params': secargs,
-          'outstanding_rpcs_per_channel': 1,
-          'client_channels': 1,
-          'async_client_threads': 1,
-          'rpc_type': 'UNARY',
-          'load_params': {
-            'closed_loop': {}
-          },
-          'payload_config': EMPTY_PROTO_PAYLOAD,
-          'histogram_params': HISTOGRAM_PARAMS,
-        },
-        'server_config': {
-          'server_type': 'SYNC_SERVER',
-          'security_params': secargs,
-          'core_limit': 0,
-          'async_server_threads': 1,
-        },
-        'warmup_seconds': WARMUP_SECONDS,
-        'benchmark_seconds': BENCHMARK_SECONDS
-    }
+    yield _ping_pong_scenario(
+        'ruby_protobuf_sync_streaming_ping_pong', rpc_type='STREAMING',
+        client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+        categories=[SMOKETEST])
+
+    yield _ping_pong_scenario(
+        'ruby_protobuf_unary_ping_pong', rpc_type='UNARY',
+        client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+        categories=[SMOKETEST])
+
+    # TODO: scenario reports QPS of 0.0
+    #yield _ping_pong_scenario(
+    #    'ruby_protobuf_sync_unary_qps_unconstrained', rpc_type='UNARY',
+    #    client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+    #    use_unconstrained_client=True)
+
+    # TODO: scenario reports QPS of 0.0
+    #yield _ping_pong_scenario(
+    #    'ruby_protobuf_sync_streaming_qps_unconstrained', rpc_type='STREAMING',
+    #    client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+    #    use_unconstrained_client=True)
+
+    yield _ping_pong_scenario(
+        'ruby_to_cpp_protobuf_sync_unary_ping_pong', rpc_type='UNARY',
+        client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+        server_language='c++', server_core_limit=1, async_server_threads=1)
+
+    yield _ping_pong_scenario(
+        'ruby_to_cpp_protobuf_sync_streaming_ping_pong', rpc_type='STREAMING',
+        client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+        server_language='c++', server_core_limit=1, async_server_threads=1)
 
   def __str__(self):
     return 'ruby'
@@ -638,46 +459,134 @@
     return 400
 
   def scenarios(self):
-    # TODO(jtattermusch): add more scenarios
     for secure in [True, False]:
-      if secure:
-        secstr = 'secure'
-        secargs = SECURE_SECARGS
-      else:
-        secstr = 'insecure'
-        secargs = None
+      secstr = 'secure' if secure else 'insecure'
+      smoketest_categories = [SMOKETEST] if secure else None
 
-      yield {
-          'name': 'java_protobuf_unary_ping_pong_%s' % secstr,
-          'num_servers': 1,
-          'num_clients': 1,
-          'client_config': {
-            'client_type': 'SYNC_CLIENT',
-            'security_params': secargs,
-            'outstanding_rpcs_per_channel': 1,
-            'client_channels': 1,
-            'async_client_threads': 1,
-            'rpc_type': 'UNARY',
-            'load_params': {
-              'closed_loop': {}
-            },
-            'payload_config': EMPTY_PROTO_PAYLOAD,
-            'histogram_params': HISTOGRAM_PARAMS,
-          },
-          'server_config': {
-            'server_type': 'SYNC_SERVER',
-            'security_params': secargs,
-            'core_limit': 0,
-            'async_server_threads': 1,
-          },
-          'warmup_seconds': JAVA_WARMUP_SECONDS,
-          'benchmark_seconds': BENCHMARK_SECONDS
-      }
+      yield _ping_pong_scenario(
+          'java_generic_async_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+          use_generic_payload=True, async_server_threads=1,
+          secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'java_protobuf_async_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+          async_server_threads=1,
+          secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS)
+
+      yield _ping_pong_scenario(
+          'java_protobuf_async_unary_ping_pong_%s' % secstr, rpc_type='UNARY',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+          async_server_threads=1,
+          secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'java_protobuf_unary_ping_pong_%s' % secstr, rpc_type='UNARY',
+          client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+          async_server_threads=1,
+          secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS)
+
+      yield _ping_pong_scenario(
+          'java_protobuf_async_unary_qps_unconstrained_%s' % secstr, rpc_type='UNARY',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+          use_unconstrained_client=True,
+          secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'java_protobuf_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER',
+          use_unconstrained_client=True,
+          secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS)
+
+      yield _ping_pong_scenario(
+          'java_generic_async_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+          use_unconstrained_client=True, use_generic_payload=True,
+          secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS)
+
+      yield _ping_pong_scenario(
+          'java_generic_async_streaming_qps_one_server_core_%s' % secstr, rpc_type='STREAMING',
+          client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+          use_unconstrained_client=True, use_generic_payload=True,
+          async_server_threads=1,
+          secure=secure, warmup_seconds=JAVA_WARMUP_SECONDS)
+
+      # TODO(jtattermusch): add scenarios java vs C++ 
 
   def __str__(self):
     return 'java'
 
 
+class GoLanguage:
+
+  def __init__(self):
+    pass
+    self.safename = str(self)
+
+  def worker_cmdline(self):
+    return ['tools/run_tests/performance/run_worker_go.sh']
+
+  def worker_port_offset(self):
+    return 600
+
+  def scenarios(self):
+    for secure in [True, False]:
+      secstr = 'secure' if secure else 'insecure'
+      smoketest_categories = [SMOKETEST] if secure else None
+
+      # ASYNC_GENERIC_SERVER for Go actually uses a sync streaming server,
+      # but that's mostly because of lack of better name of the enum value. 
+      yield _ping_pong_scenario(
+          'go_generic_sync_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING',
+          client_type='SYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+          use_generic_payload=True, async_server_threads=1,
+          secure=secure,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'go_protobuf_sync_streaming_ping_pong_%s' % secstr, rpc_type='STREAMING',
+          client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+          async_server_threads=1,
+          secure=secure)
+
+      yield _ping_pong_scenario(
+          'go_protobuf_sync_unary_ping_pong_%s' % secstr, rpc_type='UNARY',
+          client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+          async_server_threads=1,
+          secure=secure,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'go_protobuf_sync_unary_qps_unconstrained_%s' % secstr, rpc_type='UNARY',
+          client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+          use_unconstrained_client=True,
+          secure=secure,
+          categories=smoketest_categories)
+
+      yield _ping_pong_scenario(
+          'go_protobuf_sync_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
+          client_type='SYNC_CLIENT', server_type='SYNC_SERVER',
+          use_unconstrained_client=True,
+          secure=secure)
+
+      # ASYNC_GENERIC_SERVER for Go actually uses a sync streaming server,
+      # but that's mostly because of lack of better name of the enum value.
+      yield _ping_pong_scenario(
+          'go_generic_sync_streaming_qps_unconstrained_%s' % secstr, rpc_type='STREAMING',
+          client_type='SYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER',
+          use_unconstrained_client=True, use_generic_payload=True,
+          secure=secure)
+
+      # TODO(jtattermusch): add scenarios go vs C++ 
+
+  def __str__(self):
+    return 'go'
+
+
 LANGUAGES = {
     'c++' : CXXLanguage(),
     'csharp' : CSharpLanguage(),
@@ -685,4 +594,5 @@
     'ruby' : RubyLanguage(),
     'java' : JavaLanguage(),
     'python' : PythonLanguage(),
+    'go' : GoLanguage(),
 }
diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py
index 758be93..e813473 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -542,7 +542,7 @@
     env['BUILD_INTEROP_DOCKER_EXTRA_ARGS'] = \
       '-v %s:/root/.composer/auth.json:ro' % host_file
   build_job = jobset.JobSpec(
-          cmdline=['tools/jenkins/build_interop_image.sh'],
+          cmdline=['tools/run_tests/dockerize/build_interop_image.sh'],
           environ=env,
           shortname='build_docker_%s' % (language),
           timeout_seconds=30*60)
diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py
index 5519666..a7728e7 100755
--- a/tools/run_tests/run_performance_tests.py
+++ b/tools/run_tests/run_performance_tests.py
@@ -89,7 +89,7 @@
   jobspec = jobset.JobSpec(
       cmdline=cmdline,
       shortname=shortname,
-      timeout_seconds=30*60)
+      timeout_seconds=2*60*60)
   return QpsWorkerJob(jobspec, language, host_and_port)
 
 
@@ -131,6 +131,36 @@
       verbose_success=True)
 
 
+def create_netperf_jobspec(server_host='localhost', client_host=None,
+                           bq_result_table=None):
+  """Runs netperf benchmark."""
+  cmd = 'NETPERF_SERVER_HOST="%s" ' % server_host
+  if bq_result_table:
+    cmd += 'BQ_RESULT_TABLE="%s" ' % bq_result_table
+  if client_host:
+    # If netperf is running remotely, the env variables populated by Jenkins
+    # won't be available on the client, but we need them for uploading results
+    # to BigQuery.
+    jenkins_job_name = os.getenv('JOB_NAME')
+    if jenkins_job_name:
+      cmd += 'JOB_NAME="%s" ' % jenkins_job_name
+    jenkins_build_number = os.getenv('BUILD_NUMBER')
+    if jenkins_build_number:
+      cmd += 'BUILD_NUMBER="%s" ' % jenkins_build_number
+
+  cmd += 'tools/run_tests/performance/run_netperf.sh'
+  if client_host:
+    user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, client_host)
+    cmd = 'ssh %s "cd ~/performance_workspace/grpc/ && "%s' % (user_at_host, pipes.quote(cmd))
+
+  return jobset.JobSpec(
+      cmdline=[cmd],
+      shortname='netperf',
+      timeout_seconds=60,
+      shell=True,
+      verbose_success=True)
+
+
 def archive_repo(languages):
   """Archives local version of repo including submodules."""
   cmdline=['tar', '-cf', '../grpc.tar', '../grpc/']
@@ -244,34 +274,51 @@
 
 
 def create_scenarios(languages, workers_by_lang, remote_host=None, regex='.*',
-                     bq_result_table=None):
+                     category='all', bq_result_table=None,
+                     netperf=False, netperf_hosts=[]):
   """Create jobspecs for scenarios to run."""
   all_workers = [worker
                  for workers in workers_by_lang.values()
                  for worker in workers]
   scenarios = []
+
+  if netperf:
+    if not netperf_hosts:
+      netperf_server='localhost'
+      netperf_client=None
+    elif len(netperf_hosts) == 1:
+      netperf_server=netperf_hosts[0]
+      netperf_client=netperf_hosts[0]
+    else:
+      netperf_server=netperf_hosts[0]
+      netperf_client=netperf_hosts[1]
+    scenarios.append(create_netperf_jobspec(server_host=netperf_server,
+                                            client_host=netperf_client,
+                                            bq_result_table=bq_result_table))
+
   for language in languages:
     for scenario_json in language.scenarios():
       if re.search(args.regex, scenario_json['name']):
-        workers = workers_by_lang[str(language)]
-        # 'SERVER_LANGUAGE' is an indicator for this script to pick
-        # a server in different language. It doesn't belong to the Scenario
-        # schema, so we also need to remove it.
-        custom_server_lang = scenario_json.pop('SERVER_LANGUAGE', None)
-        if custom_server_lang:
-          if not workers_by_lang.get(custom_server_lang, []):
-            print 'Warning: Skipping scenario %s as' % scenario_json['name']
-            print('SERVER_LANGUAGE is set to %s yet the language has '
-                  'not been selected with -l' % custom_server_lang)
-            continue
-          for idx in range(0, scenario_json['num_servers']):
-            # replace first X workers by workers of a different language
-            workers[idx] = workers_by_lang[custom_server_lang][idx]
-        scenario = create_scenario_jobspec(scenario_json,
-                                           workers,
-                                           remote_host=remote_host,
-                                           bq_result_table=bq_result_table)
-        scenarios.append(scenario)
+        if category in scenario_json.get('CATEGORIES', []) or category == 'all':
+          workers = workers_by_lang[str(language)]
+          # 'SERVER_LANGUAGE' is an indicator for this script to pick
+          # a server in different language.
+          custom_server_lang = scenario_json.get('SERVER_LANGUAGE', None)
+          scenario_json = scenario_config.remove_nonproto_fields(scenario_json)
+          if custom_server_lang:
+            if not workers_by_lang.get(custom_server_lang, []):
+              print 'Warning: Skipping scenario %s as' % scenario_json['name']
+              print('SERVER_LANGUAGE is set to %s yet the language has '
+                    'not been selected with -l' % custom_server_lang)
+              continue
+            for idx in range(0, scenario_json['num_servers']):
+              # replace first X workers by workers of a different language
+              workers[idx] = workers_by_lang[custom_server_lang][idx]
+          scenario = create_scenario_jobspec(scenario_json,
+                                             workers,
+                                             remote_host=remote_host,
+                                             bq_result_table=bq_result_table)
+          scenarios.append(scenario)
 
   # the very last scenario requests shutting down the workers.
   scenarios.append(create_quit_jobspec(all_workers, remote_host=remote_host))
@@ -298,7 +345,7 @@
 argp.add_argument('-l', '--language',
                   choices=['all'] + sorted(scenario_config.LANGUAGES.keys()),
                   nargs='+',
-                  default=['all'],
+                  required=True,
                   help='Languages to benchmark.')
 argp.add_argument('--remote_driver_host',
                   default=None,
@@ -311,6 +358,15 @@
                   help='Regex to select scenarios to run.')
 argp.add_argument('--bq_result_table', default=None, type=str,
                   help='Bigquery "dataset.table" to upload results to.')
+argp.add_argument('--category',
+                  choices=['smoketest','all'],
+                  default='smoketest',
+                  help='Select a category of tests to run. Smoketest runs by default.')
+argp.add_argument('--netperf',
+                  default=False,
+                  action='store_const',
+                  const=True,
+                  help='Run netperf benchmark as one of the scenarios.')
 
 args = argp.parse_args()
 
@@ -354,7 +410,11 @@
                                workers_by_lang=worker_addresses,
                                remote_host=args.remote_driver_host,
                                regex=args.regex,
-                               bq_result_table=args.bq_result_table)
+                               category=args.category,
+                               bq_result_table=args.bq_result_table,
+                               netperf=args.netperf,
+                               netperf_hosts=args.remote_worker_host)
+
   if not scenarios:
     raise Exception('No scenarios to run')
 
diff --git a/tools/run_tests/run_stress_tests.py b/tools/run_tests/run_stress_tests.py
index 0ba8f51..e42ee24 100755
--- a/tools/run_tests/run_stress_tests.py
+++ b/tools/run_tests/run_stress_tests.py
@@ -195,7 +195,7 @@
     tag = 'grpc_interop_stress_%s:%s' % (language.safename, uuid.uuid4())
   env = {'INTEROP_IMAGE': tag,
          'BASE_NAME': 'grpc_interop_stress_%s' % language.safename}
-  build_job = jobset.JobSpec(cmdline=['tools/jenkins/build_interop_stress_image.sh'],
+  build_job = jobset.JobSpec(cmdline=['tools/run_tests/dockerize/build_interop_stress_image.sh'],
                              environ=env,
                              shortname='build_docker_%s' % (language),
                              timeout_seconds=30 * 60)
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index dea481e..fd5564a 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -153,52 +153,64 @@
   def test_specs(self):
     out = []
     binaries = get_c_tests(self.args.travis, self.test_lang)
+    POLLING_STRATEGIES = {
+      'windows': ['all'],
+      'mac': ['all'],
+      'posix': ['all'],
+      'linux': ['poll', 'legacy']
+    }
     for target in binaries:
-      if self.config.build_config in target['exclude_configs']:
-        continue
-      if self.platform == 'windows':
-        binary = 'vsprojects/%s%s/%s.exe' % (
-            'x64/' if self.args.arch == 'x64' else '',
-            _MSBUILD_CONFIG[self.config.build_config],
-            target['name'])
-      else:
-        binary = 'bins/%s/%s' % (self.config.build_config, target['name'])
-      if os.path.isfile(binary):
-        if 'gtest' in target and target['gtest']:
-          # here we parse the output of --gtest_list_tests to build up a
-          # complete list of the tests contained in a binary
-          # for each test, we then add a job to run, filtering for just that
-          # test
-          with open(os.devnull, 'w') as fnull:
-            tests = subprocess.check_output([binary, '--gtest_list_tests'],
-                                            stderr=fnull)
-          base = None
-          for line in tests.split('\n'):
-            i = line.find('#')
-            if i >= 0: line = line[:i]
-            if not line: continue
-            if line[0] != ' ':
-              base = line.strip()
-            else:
-              assert base is not None
-              assert line[1] == ' '
-              test = base + line.strip()
-              cmdline = [binary] + ['--gtest_filter=%s' % test]
-              out.append(self.config.job_spec(cmdline, [binary],
-                                              shortname='%s:%s' % (binary, test),
-                                              cpu_cost=target['cpu_cost'],
-                                              environ={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH':
-                                                       _ROOT + '/src/core/lib/tsi/test_creds/ca.pem'}))
+      polling_strategies = (POLLING_STRATEGIES[self.platform]
+                            if target.get('uses_polling', True)
+                            else ['all'])
+      for polling_strategy in polling_strategies:
+        env={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH':
+                 _ROOT + '/src/core/lib/tsi/test_creds/ca.pem',
+             'GRPC_POLL_STRATEGY': polling_strategy}
+        shortname_ext = '' if polling_strategy=='all' else ' polling=%s' % polling_strategy
+        if self.config.build_config in target['exclude_configs']:
+          continue
+        if self.platform == 'windows':
+          binary = 'vsprojects/%s%s/%s.exe' % (
+              'x64/' if self.args.arch == 'x64' else '',
+              _MSBUILD_CONFIG[self.config.build_config],
+              target['name'])
         else:
-          cmdline = [binary] + target['args']
-          out.append(self.config.job_spec(cmdline, [binary],
-                                          shortname=target.get('shortname', ' '.join(cmdline)),
-                                          cpu_cost=target['cpu_cost'],
-                                          flaky=target.get('flaky', False),
-                                          environ={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH':
-                                                   _ROOT + '/src/core/lib/tsi/test_creds/ca.pem'}))
-      elif self.args.regex == '.*' or self.platform == 'windows':
-        print '\nWARNING: binary not found, skipping', binary
+          binary = 'bins/%s/%s' % (self.config.build_config, target['name'])
+        if os.path.isfile(binary):
+          if 'gtest' in target and target['gtest']:
+            # here we parse the output of --gtest_list_tests to build up a
+            # complete list of the tests contained in a binary
+            # for each test, we then add a job to run, filtering for just that
+            # test
+            with open(os.devnull, 'w') as fnull:
+              tests = subprocess.check_output([binary, '--gtest_list_tests'],
+                                              stderr=fnull)
+            base = None
+            for line in tests.split('\n'):
+              i = line.find('#')
+              if i >= 0: line = line[:i]
+              if not line: continue
+              if line[0] != ' ':
+                base = line.strip()
+              else:
+                assert base is not None
+                assert line[1] == ' '
+                test = base + line.strip()
+                cmdline = [binary] + ['--gtest_filter=%s' % test]
+                out.append(self.config.job_spec(cmdline, [binary],
+                                                shortname='%s:%s %s' % (binary, test, shortname_ext),
+                                                cpu_cost=target['cpu_cost'],
+                                                environ=env))
+          else:
+            cmdline = [binary] + target['args']
+            out.append(self.config.job_spec(cmdline, [binary],
+                                            shortname=' '.join(cmdline) + shortname_ext,
+                                            cpu_cost=target['cpu_cost'],
+                                            flaky=target.get('flaky', False),
+                                            environ=env))
+        elif self.args.regex == '.*' or self.platform == 'windows':
+          print '\nWARNING: binary not found, skipping', binary
     return sorted(out)
 
   def make_targets(self):
@@ -272,12 +284,17 @@
 
   def __init__(self):
     self.platform = platform_string()
-    self.node_version = '0.12'
 
   def configure(self, config, args):
     self.config = config
     self.args = args
-    _check_compiler(self.args.compiler, ['default'])
+    _check_compiler(self.args.compiler, ['default', 'node0.12',
+                                         'node4', 'node5'])
+    if self.args.compiler == 'default':
+      self.node_version = '4'
+    else:
+      # Take off the word "node"
+      self.node_version = self.args.compiler[4:]
 
   def test_specs(self):
     if self.platform == 'windows':
@@ -802,7 +819,8 @@
                            'gcc4.4', 'gcc4.9', 'gcc5.3',
                            'clang3.4', 'clang3.6',
                            'vs2010', 'vs2013', 'vs2015',
-                           'python2.7', 'python3.4'],
+                           'python2.7', 'python3.4',
+                           'node0.12', 'node4', 'node5'],
                   default='default',
                   help='Selects compiler to use. Allowed values depend on the platform and language.')
 argp.add_argument('--build_only',
@@ -906,13 +924,13 @@
   env = os.environ.copy()
   env['RUN_TESTS_COMMAND'] = run_tests_cmd
   env['DOCKERFILE_DIR'] = dockerfile_dir
-  env['DOCKER_RUN_SCRIPT'] = 'tools/jenkins/docker_run_tests.sh'
+  env['DOCKER_RUN_SCRIPT'] = 'tools/run_tests/dockerize/docker_run_tests.sh'
   if args.xml_report:
     env['XML_REPORT'] = args.xml_report
   if not args.travis:
     env['TTY_FLAG'] = '-t'  # enables Ctrl-C when not on Jenkins.
 
-  subprocess.check_call(['tools/jenkins/build_docker_and_run_tests.sh'],
+  subprocess.check_call(['tools/run_tests/dockerize/build_docker_and_run_tests.sh'],
                         shell=True,
                         env=env)
   sys.exit(0)
diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh
index 3349d28..3b8d81b 100755
--- a/tools/run_tests/sanity/check_submodules.sh
+++ b/tools/run_tests/sanity/check_submodules.sh
@@ -45,7 +45,7 @@
  05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f)
  c99458533a9b4c743ed51537e25989ea55944908 third_party/googletest (release-1.7.0)
  f8ac463766281625ad710900479130c7fcb4d63b third_party/nanopb (nanopb-0.3.4-29-gf8ac463)
- d5fb408ddc281ffcadeb08699e65bb694656d0bd third_party/protobuf (v3.0.0-beta-2)
+ a1938b2aa9ca86ce7ce50c27ff9737c1008d2a03 third_party/protobuf (v3.0.0-beta-3-pre1)
  50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8)
 EOF
 
diff --git a/tools/run_tests/sanity/sanity_tests.yaml b/tools/run_tests/sanity/sanity_tests.yaml
index efc21e6..c5945c6 100644
--- a/tools/run_tests/sanity/sanity_tests.yaml
+++ b/tools/run_tests/sanity/sanity_tests.yaml
@@ -10,3 +10,4 @@
 - script: tools/distrib/check_trailing_newlines.sh
 - script: tools/distrib/check_nanopb_output.sh
 - script: tools/distrib/check_include_guards.py
+- script: tools/distrib/python/check_grpcio_tools.py
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index f546f3b..3866ebb 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -2248,8 +2248,8 @@
       "grpc_test_util"
     ], 
     "headers": [
-      "src/proto/grpc/lb/v0/load_balancer.grpc.pb.h", 
-      "src/proto/grpc/lb/v0/load_balancer.pb.h"
+      "src/proto/grpc/lb/v1/load_balancer.grpc.pb.h", 
+      "src/proto/grpc/lb/v1/load_balancer.pb.h"
     ], 
     "language": "c++", 
     "name": "grpclb_api_test", 
@@ -2599,6 +2599,24 @@
     ], 
     "headers": [], 
     "language": "c++", 
+    "name": "server_builder_plugin_test", 
+    "src": [
+      "test/cpp/end2end/server_builder_plugin_test.cc"
+    ], 
+    "third_party": false, 
+    "type": "target"
+  }, 
+  {
+    "deps": [
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc++", 
+      "grpc++_test_util", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c++", 
     "name": "server_crash_test", 
     "src": [
       "test/cpp/end2end/server_crash_test.cc"
@@ -3397,6 +3415,23 @@
     ], 
     "headers": [], 
     "language": "c", 
+    "name": "large_metadata_bad_client_test", 
+    "src": [
+      "test/core/bad_client/tests/large_metadata.c"
+    ], 
+    "third_party": false, 
+    "type": "target"
+  }, 
+  {
+    "deps": [
+      "bad_client_test", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
     "name": "server_registered_method_bad_client_test", 
     "src": [
       "test/core/bad_client/tests/server_registered_method.c"
@@ -4140,7 +4175,8 @@
       "grpc_transport_chttp2_client_insecure", 
       "grpc_transport_chttp2_client_secure", 
       "grpc_transport_chttp2_server_insecure", 
-      "grpc_transport_chttp2_server_secure"
+      "grpc_transport_chttp2_server_secure", 
+      "grpc_transport_cronet_client_secure"
     ], 
     "headers": [], 
     "language": "c", 
@@ -5610,6 +5646,7 @@
       "src/core/lib/iomgr/endpoint.h", 
       "src/core/lib/iomgr/endpoint_pair.h", 
       "src/core/lib/iomgr/ev_poll_and_epoll_posix.h", 
+      "src/core/lib/iomgr/ev_poll_posix.h", 
       "src/core/lib/iomgr/ev_posix.h", 
       "src/core/lib/iomgr/exec_ctx.h", 
       "src/core/lib/iomgr/executor.h", 
@@ -5710,6 +5747,8 @@
       "src/core/lib/iomgr/endpoint_pair_windows.c", 
       "src/core/lib/iomgr/ev_poll_and_epoll_posix.c", 
       "src/core/lib/iomgr/ev_poll_and_epoll_posix.h", 
+      "src/core/lib/iomgr/ev_poll_posix.c", 
+      "src/core/lib/iomgr/ev_poll_posix.h", 
       "src/core/lib/iomgr/ev_posix.c", 
       "src/core/lib/iomgr/ev_posix.h", 
       "src/core/lib/iomgr/exec_ctx.c", 
@@ -5903,6 +5942,7 @@
     ], 
     "headers": [
       "include/grpc/impl/codegen/byte_buffer.h", 
+      "include/grpc/impl/codegen/byte_buffer_reader.h", 
       "include/grpc/impl/codegen/compression_types.h", 
       "include/grpc/impl/codegen/connectivity_state.h", 
       "include/grpc/impl/codegen/grpc_types.h", 
@@ -5913,6 +5953,7 @@
     "name": "grpc_codegen", 
     "src": [
       "include/grpc/impl/codegen/byte_buffer.h", 
+      "include/grpc/impl/codegen/byte_buffer_reader.h", 
       "include/grpc/impl/codegen/compression_types.h", 
       "include/grpc/impl/codegen/connectivity_state.h", 
       "include/grpc/impl/codegen/grpc_types.h", 
@@ -5931,15 +5972,15 @@
     ], 
     "headers": [
       "src/core/ext/lb_policy/grpclb/load_balancer_api.h", 
-      "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h"
+      "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h"
     ], 
     "language": "c", 
     "name": "grpc_lb_policy_grpclb", 
     "src": [
       "src/core/ext/lb_policy/grpclb/load_balancer_api.c", 
       "src/core/ext/lb_policy/grpclb/load_balancer_api.h", 
-      "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c", 
-      "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h"
+      "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c", 
+      "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h"
     ], 
     "third_party": false, 
     "type": "filegroup"
@@ -6012,6 +6053,7 @@
       "tsi"
     ], 
     "headers": [
+      "include/grpc/grpc_cronet.h", 
       "include/grpc/grpc_security.h", 
       "include/grpc/grpc_security_constants.h", 
       "src/core/lib/security/auth_filters.h", 
@@ -6027,6 +6069,7 @@
     "language": "c", 
     "name": "grpc_secure", 
     "src": [
+      "include/grpc/grpc_cronet.h", 
       "include/grpc/grpc_security.h", 
       "include/grpc/grpc_security_constants.h", 
       "src/core/lib/http/httpcli_security_connector.c", 
@@ -6263,6 +6306,24 @@
     "type": "filegroup"
   }, 
   {
+    "deps": [
+      "grpc_base", 
+      "grpc_transport_chttp2"
+    ], 
+    "headers": [
+      "third_party/objective_c/Cronet/cronet_c_for_grpc.h"
+    ], 
+    "language": "c", 
+    "name": "grpc_transport_cronet_client_secure", 
+    "src": [
+      "src/core/ext/transport/cronet/client/secure/cronet_channel_create.c", 
+      "src/core/ext/transport/cronet/transport/cronet_api_dummy.c", 
+      "src/core/ext/transport/cronet/transport/cronet_transport.c"
+    ], 
+    "third_party": false, 
+    "type": "filegroup"
+  }, 
+  {
     "deps": [], 
     "headers": [
       "third_party/nanopb/pb.h", 
@@ -6326,6 +6387,8 @@
       "include/grpc++/impl/rpc_service_method.h", 
       "include/grpc++/impl/serialization_traits.h", 
       "include/grpc++/impl/server_builder_option.h", 
+      "include/grpc++/impl/server_builder_plugin.h", 
+      "include/grpc++/impl/server_initializer.h", 
       "include/grpc++/impl/service_type.h", 
       "include/grpc++/impl/sync.h", 
       "include/grpc++/impl/sync_cxx11.h", 
@@ -6376,6 +6439,8 @@
       "include/grpc++/impl/rpc_service_method.h", 
       "include/grpc++/impl/serialization_traits.h", 
       "include/grpc++/impl/server_builder_option.h", 
+      "include/grpc++/impl/server_builder_plugin.h", 
+      "include/grpc++/impl/server_initializer.h", 
       "include/grpc++/impl/service_type.h", 
       "include/grpc++/impl/sync.h", 
       "include/grpc++/impl/sync_cxx11.h", 
diff --git a/tools/run_tests/stress_test/configs/asan.json b/tools/run_tests/stress_test/configs/asan.json
index cb9f557..7ae11cc 100644
--- a/tools/run_tests/stress_test/configs/asan.json
+++ b/tools/run_tests/stress_test/configs/asan.json
@@ -1,7 +1,7 @@
 {
   "dockerImages": {
     "grpc_stress_cxx_asan" : {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_cxx",
       "buildType": "asan"
     }
diff --git a/tools/run_tests/stress_test/configs/csharp.json b/tools/run_tests/stress_test/configs/csharp.json
new file mode 100644
index 0000000..587e155
--- /dev/null
+++ b/tools/run_tests/stress_test/configs/csharp.json
@@ -0,0 +1,90 @@
+{
+  "dockerImages": {
+    "grpc_stress_csharp" : {
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
+      "dockerFileDir": "grpc_interop_stress_csharp"
+    }
+  },
+
+  "clientTemplates": {
+    "baseTemplates": {
+      "default": {
+        "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_client.py",
+        "pollIntervalSecs": 60,
+        "clientArgs": {
+          "num_channels_per_server":5,
+          "num_stubs_per_channel":10,
+          "test_cases": "empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1",
+          "metrics_port": 8081
+        },
+        "metricsPort": 8081,
+        "metricsArgs": {
+          "metrics_server_address": "localhost:8081",
+          "total_only": "true"
+        }
+      }
+    },
+    "templates": {
+      "csharp_client": {
+        "baseTemplate": "default",
+        "stressClientCmd": [
+          "mono",
+          "/var/local/git/grpc/src/csharp/Grpc.IntegrationTesting.StressClient/bin/Debug/Grpc.IntegrationTesting.StressClient.exe"
+		],
+        "metricsClientCmd": ["/var/local/git/grpc/bins/opt/metrics_client"]
+      }
+    }
+  },
+
+  "serverTemplates": {
+    "baseTemplates":{
+      "default": {
+        "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_server.py",
+        "serverPort": 8080,
+        "serverArgs": {
+          "port": 8080
+        }
+      }
+    },
+    "templates": {
+      "csharp_server": {
+        "baseTemplate": "default",
+        "stressServerCmd": [
+          "mono",
+          "/var/local/git/grpc/src/csharp/Grpc.IntegrationTesting.Server/bin/Debug/Grpc.IntegrationTesting.Server.exe"
+		]
+      }
+    }
+  },
+
+  "testMatrix": {
+    "serverPodSpecs": {
+      "stress-server-csharp": {
+        "serverTemplate": "csharp_server",
+        "dockerImage": "grpc_stress_csharp",
+        "numInstances": 1
+      }
+    },
+
+    "clientPodSpecs": {
+      "stress-client-csharp": {
+        "clientTemplate": "csharp_client",
+        "dockerImage": "grpc_stress_csharp",
+        "numInstances": 10,
+        "serverPodSpec": "stress-server-csharp"
+      }
+    }
+  },
+
+  "globalSettings": {
+    "buildDockerImages": true,
+    "pollIntervalSecs": 60,
+    "testDurationSecs": 7200,
+    "kubernetesProxyPort": 8009,
+    "datasetIdNamePrefix": "stress_test_csharp",
+    "summaryTableId": "summary",
+    "qpsTableId": "qps",
+    "podWarmupSecs": 60
+  }
+}
+
diff --git a/tools/run_tests/stress_test/configs/go.json b/tools/run_tests/stress_test/configs/go.json
index 36b465e..f1b2b52 100644
--- a/tools/run_tests/stress_test/configs/go.json
+++ b/tools/run_tests/stress_test/configs/go.json
@@ -1,7 +1,7 @@
 {
   "dockerImages": {
     "grpc_stress_go" : {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_go"
     }
   },
diff --git a/tools/run_tests/stress_test/configs/java.json b/tools/run_tests/stress_test/configs/java.json
index 275384c..c07d75e 100644
--- a/tools/run_tests/stress_test/configs/java.json
+++ b/tools/run_tests/stress_test/configs/java.json
@@ -1,7 +1,7 @@
 {
   "dockerImages": {
     "grpc_stress_java" : {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_java"
     }
   },
@@ -21,6 +21,9 @@
         "metricsArgs": {
           "metrics_server_address": "localhost:8081",
           "total_only": "true"
+        },
+        "env": {
+          "STRESSTEST_CLIENT_OPTS":"-Xmx3g -Xms3g -XX:NewSize=1.5g -XX:MaxNewSize=1.5g"
         }
       }
     },
@@ -44,7 +47,10 @@
         "serverPort": 8080,
         "serverArgs": {
           "port": 8080,
-		  "use_tls": "false"
+          "use_tls": "false"
+        },
+        "env": {
+          "TEST_SERVER_OPTS":"-Xmx3g -Xms3g -XX:NewSize=1.5g -XX:MaxNewSize=1.5g"
         }
       }
     },
diff --git a/tools/run_tests/stress_test/configs/node-cxx.json b/tools/run_tests/stress_test/configs/node-cxx.json
index c4245bf..094c123 100644
--- a/tools/run_tests/stress_test/configs/node-cxx.json
+++ b/tools/run_tests/stress_test/configs/node-cxx.json
@@ -1,12 +1,12 @@
 {
   "dockerImages": {
     "grpc_stress_cxx_opt" : {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_cxx",
       "buildType": "opt"
     },
    "grpc_stress_node": {
-     "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+     "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
      "dockerFileDir": "grpc_interop_stress_node"
    }
   },
diff --git a/tools/run_tests/stress_test/configs/node.json b/tools/run_tests/stress_test/configs/node.json
index 7a48c56..85eb9e0 100644
--- a/tools/run_tests/stress_test/configs/node.json
+++ b/tools/run_tests/stress_test/configs/node.json
@@ -1,7 +1,7 @@
 {
   "dockerImages": {
     "grpc_stress_node" : {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_node"
     }
   },
diff --git a/tools/run_tests/stress_test/configs/opt-tsan-asan.json b/tools/run_tests/stress_test/configs/opt-tsan-asan.json
index 936d151..fcb3678 100644
--- a/tools/run_tests/stress_test/configs/opt-tsan-asan.json
+++ b/tools/run_tests/stress_test/configs/opt-tsan-asan.json
@@ -1,17 +1,17 @@
 {
   "dockerImages": {
     "grpc_stress_cxx_opt" : {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_cxx",
       "buildType": "opt"
     },
     "grpc_stress_cxx_tsan": {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_cxx",
       "buildType": "tsan"
     },
     "grpc_stress_cxx_asan": {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_cxx",
       "buildType": "asan"
     }
diff --git a/tools/run_tests/stress_test/configs/opt.json b/tools/run_tests/stress_test/configs/opt.json
index f45b824..5e0e930 100644
--- a/tools/run_tests/stress_test/configs/opt.json
+++ b/tools/run_tests/stress_test/configs/opt.json
@@ -1,7 +1,7 @@
 {
   "dockerImages": {
     "grpc_stress_cxx_opt" : {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_cxx",
       "buildType": "opt"
     }
diff --git a/tools/run_tests/stress_test/configs/python.json b/tools/run_tests/stress_test/configs/python.json
new file mode 100644
index 0000000..4f85de1
--- /dev/null
+++ b/tools/run_tests/stress_test/configs/python.json
@@ -0,0 +1,98 @@
+{
+  "dockerImages": {
+    "grpc_stress_python" : {
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
+      "dockerFileDir": "grpc_interop_stress_python"
+    }
+  },
+
+  "clientTemplates": {
+    "baseTemplates": {
+      "default": {
+        "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_client.py",
+        "pollIntervalSecs": 60,
+        "clientArgs": {
+          "num_channels_per_server":5,
+          "num_stubs_per_channel":10,
+          "test_cases": "empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1",
+          "metrics_port": 8081
+        },
+        "metricsPort": 8081,
+        "metricsArgs": {
+          "metrics_server_address": "localhost:8081",
+          "total_only": "true"
+        },
+		"env": {
+          "PYTHONPATH": "/var/local/git/grpc/src/python/gens:/var/local/git/grpc/src/python/grpcio",
+          "LD_LIBRARY_PATH":"/var/local/git/grpc/libs/opt"
+        }
+      }
+    },
+    "templates": {
+      "python_client": {
+        "baseTemplate": "default",
+        "stressClientCmd": [
+          "python",
+          "/var/local/git/grpc/src/python/grpcio/tests/stress/client.py"
+        ],
+        "metricsClientCmd": ["/var/local/git/grpc/bins/opt/metrics_client"]
+      }
+    }
+  },
+
+  "serverTemplates": {
+    "baseTemplates":{
+      "default": {
+        "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_server.py",
+        "serverPort": 8080,
+        "serverArgs": {
+          "port": 8080
+        },
+        "env": {
+          "PYTHONPATH": "/var/local/git/grpc/src/python/gens:/var/local/git/grpc/src/python/grpcio",
+          "LD_LIBRARY_PATH":"/var/local/git/grpc/libs/opt"
+        }
+      }
+    },
+    "templates": {
+      "python_server": {
+        "baseTemplate": "default",
+        "stressServerCmd": [
+          "python",
+          "/var/local/git/grpc/src/python/grpcio/tests/interop/server.py"
+        ]
+      }
+    }
+  },
+
+  "testMatrix": {
+    "serverPodSpecs": {
+      "python-stress-server": {
+        "serverTemplate": "python_server",
+        "dockerImage": "grpc_stress_python",
+        "numInstances": 1
+      }
+    },
+
+    "clientPodSpecs": {
+      "python-stress-client": {
+        "clientTemplate": "python_client",
+        "dockerImage": "grpc_stress_python",
+        "numInstances": 5,
+        "serverPodSpec": "python-stress-server"
+      }
+    }
+  },
+
+  "globalSettings": {
+    "buildDockerImages": true,
+    "pollIntervalSecs": 60,
+    "testDurationSecs": 7200,
+    "kubernetesProxyPort": 8011,
+    "datasetIdNamePrefix": "stress_test_python",
+    "summaryTableId": "summary",
+    "qpsTableId": "qps",
+    "podWarmupSecs": 60
+  }
+}
+
diff --git a/tools/run_tests/stress_test/configs/ruby.json b/tools/run_tests/stress_test/configs/ruby.json
new file mode 100644
index 0000000..7e2afcb
--- /dev/null
+++ b/tools/run_tests/stress_test/configs/ruby.json
@@ -0,0 +1,92 @@
+{
+  "dockerImages": {
+    "grpc_stress_ruby" : {
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
+      "dockerFileDir": "grpc_interop_stress_ruby"
+    }
+  },
+
+  "clientTemplates": {
+    "baseTemplates": {
+      "default": {
+        "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_client.py",
+        "pollIntervalSecs": 60,
+        "clientArgs": {
+          "num_channels_per_server":5,
+          "num_stubs_per_channel":10,
+          "test_cases": "empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1",
+          "metrics_port": 8081
+        },
+        "metricsPort": 8081,
+        "metricsArgs": {
+          "metrics_server_address": "localhost:8081",
+          "total_only": "true"
+        }
+      }
+    },
+    "templates": {
+      "ruby_client": {
+        "baseTemplate": "default",
+        "stressClientCmd": [
+          "/var/local/git/grpc/tools/gcp/stress_test/run_ruby.sh",
+          "ruby",
+          "/var/local/git/grpc/src/ruby/stress/stress_client.rb"
+        ],
+        "metricsClientCmd": ["/var/local/git/grpc/bins/opt/metrics_client"]
+      }
+    }
+  },
+
+  "serverTemplates": {
+    "baseTemplates":{
+      "default": {
+        "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_server.py",
+        "serverPort": 8080,
+        "serverArgs": {
+          "port": 8080
+        }
+      }
+    },
+    "templates": {
+      "ruby_server": {
+        "baseTemplate": "default",
+        "stressServerCmd": [
+          "/var/local/git/grpc/tools/gcp/stress_test/run_ruby.sh",
+          "ruby",
+          "/var/local/git/grpc/src/ruby/pb/test/server.rb"
+        ]
+      }
+    }
+  },
+
+  "testMatrix": {
+    "serverPodSpecs": {
+      "stress-server-ruby": {
+        "serverTemplate": "ruby_server",
+        "dockerImage": "grpc_stress_ruby",
+        "numInstances": 1
+      }
+    },
+
+    "clientPodSpecs": {
+      "stress-client-ruby": {
+        "clientTemplate": "ruby_client",
+        "dockerImage": "grpc_stress_ruby",
+        "numInstances": 10,
+        "serverPodSpec": "stress-server-ruby"
+      }
+    }
+  },
+
+  "globalSettings": {
+    "buildDockerImages": true,
+    "pollIntervalSecs": 60,
+    "testDurationSecs": 7200,
+    "kubernetesProxyPort": 8001,
+    "datasetIdNamePrefix": "stress_test_ruby",
+    "summaryTableId": "summary",
+    "qpsTableId": "qps",
+    "podWarmupSecs": 60
+  }
+}
+
diff --git a/tools/run_tests/stress_test/configs/tsan.json b/tools/run_tests/stress_test/configs/tsan.json
index 6ef3bdf..abc759c 100644
--- a/tools/run_tests/stress_test/configs/tsan.json
+++ b/tools/run_tests/stress_test/configs/tsan.json
@@ -1,7 +1,7 @@
 {
   "dockerImages": {
     "grpc_stress_cxx_tsan" : {
-      "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+      "buildScript": "tools/run_tests/dockerize/build_interop_stress_image.sh",
       "dockerFileDir": "grpc_interop_stress_cxx",
       "buildType": "tsan"
     }
diff --git a/tools/run_tests/stress_test/run_on_gke.py b/tools/run_tests/stress_test/run_on_gke.py
index d4f1c4a..583e583 100755
--- a/tools/run_tests/stress_test/run_on_gke.py
+++ b/tools/run_tests/stress_test/run_on_gke.py
@@ -69,7 +69,7 @@
 
   def __init__(self, name, stress_client_cmd, metrics_client_cmd, metrics_port,
                wrapper_script_path, poll_interval_secs, client_args_dict,
-               metrics_args_dict, will_run_forever):
+               metrics_args_dict, will_run_forever, env_dict):
     self.name = name
     self.stress_client_cmd = stress_client_cmd
     self.metrics_client_cmd = metrics_client_cmd
@@ -79,19 +79,21 @@
     self.client_args_dict = client_args_dict
     self.metrics_args_dict = metrics_args_dict
     self.will_run_forever = will_run_forever
+    self.env_dict = env_dict
 
 
 class ServerTemplate:
   """ Contains all the common settings used by a stress server """
 
   def __init__(self, name, server_cmd, wrapper_script_path, server_port,
-               server_args_dict, will_run_forever):
+               server_args_dict, will_run_forever, env_dict):
     self.name = name
     self.server_cmd = server_cmd
     self.wrapper_script_path = wrapper_script_path
     self.server_port = server_port
     self.server_args_dict = server_args_dict
     self.will_run_forever = will_run_forever
+    self.env_dict = env_dict
 
 
 class DockerImage:
@@ -240,6 +242,7 @@
     # server_pod_spec.template.wrapper_script_path) are are injected into the
     # container via environment variables
     server_env = self.gke_env.copy()
+    server_env.update(server_pod_spec.template.env_dict)
     server_env.update({
         'STRESS_TEST_IMAGE_TYPE': 'SERVER',
         'STRESS_TEST_CMD': server_pod_spec.template.server_cmd,
@@ -283,6 +286,7 @@
     # client_pod_spec.template.wrapper_script_path) are are injected into the
     # container via environment variables
     client_env = self.gke_env.copy()
+    client_env.update(client_pod_spec.template.env_dict)
     client_env.update({
         'STRESS_TEST_IMAGE_TYPE': 'CLIENT',
         'STRESS_TEST_CMD': client_pod_spec.template.stress_client_cmd,
@@ -425,7 +429,8 @@
           template_name, stress_client_cmd, metrics_client_cmd,
           temp_dict['metricsPort'], temp_dict['wrapperScriptPath'],
           temp_dict['pollIntervalSecs'], temp_dict['clientArgs'].copy(),
-          temp_dict['metricsArgs'].copy(), temp_dict.get('willRunForever', 1))
+          temp_dict['metricsArgs'].copy(), temp_dict.get('willRunForever', 1),
+          temp_dict.get('env', {}).copy())
 
     return client_templates_dict
 
@@ -461,7 +466,7 @@
       server_templates_dict[template_name] = ServerTemplate(
           template_name, stress_server_cmd, temp_dict['wrapperScriptPath'],
           temp_dict['serverPort'], temp_dict['serverArgs'].copy(),
-          temp_dict.get('willRunForever', 1))
+          temp_dict.get('willRunForever', 1), temp_dict.get('env', {}).copy())
 
     return server_templates_dict
 
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index 0fd7785..4f11ceb 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -2453,6 +2453,27 @@
     "ci_platforms": [
       "linux", 
       "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1.0, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "gtest": true, 
+    "language": "c++", 
+    "name": "server_builder_plugin_test", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ]
+  }, 
+  {
+    "args": [], 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
       "posix"
     ], 
     "cpu_cost": 0.1, 
@@ -2726,6 +2747,27 @@
     "flaky": false, 
     "gtest": false, 
     "language": "c", 
+    "name": "large_metadata_bad_client_test", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ]
+  }, 
+  {
+    "args": [], 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1.0, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "gtest": false, 
+    "language": "c", 
     "name": "server_registered_method_bad_client_test", 
     "platforms": [
       "linux", 
@@ -21531,7 +21573,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21552,7 +21596,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21573,7 +21619,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21594,7 +21642,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21615,7 +21665,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21636,7 +21688,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21657,7 +21711,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21678,7 +21734,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21699,7 +21757,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21720,7 +21780,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21741,7 +21803,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21762,7 +21826,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21783,7 +21849,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21804,7 +21872,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21825,7 +21895,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21846,7 +21918,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21867,7 +21941,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21888,7 +21964,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21909,7 +21987,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21930,7 +22010,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21951,7 +22033,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21972,7 +22056,9 @@
       "posix"
     ], 
     "cpu_cost": 0.1, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -21993,7 +22079,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22014,7 +22102,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22035,7 +22125,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22056,7 +22148,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22077,7 +22171,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22098,7 +22194,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22119,7 +22217,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22140,7 +22240,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22161,7 +22263,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22182,7 +22286,9 @@
       "posix"
     ], 
     "cpu_cost": 1.0, 
-    "exclude_configs": [], 
+    "exclude_configs": [
+      "msan"
+    ], 
     "flaky": false, 
     "language": "c", 
     "name": "h2_sockpair_1byte_nosec_test", 
@@ -22942,7 +23048,137 @@
   {
     "args": [
       "--scenario_json", 
-      "'{\"name\": \"cpp_generic_async_streaming_qps_unconstrained_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 4, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
+      "'{\"name\": \"cpp_protobuf_async_streaming_ping_pong_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_async_streaming_ping_pong_secure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_protobuf_async_unary_ping_pong_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_async_unary_ping_pong_secure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_protobuf_sync_unary_ping_pong_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"SYNC_SERVER\"}, \"client_config\": {\"client_type\": \"SYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_sync_unary_ping_pong_secure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_protobuf_async_unary_qps_unconstrained_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_secure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_protobuf_async_streaming_qps_unconstrained_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_secure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_generic_async_streaming_qps_unconstrained_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
     ], 
     "boringssl": true, 
     "ci_platforms": [
@@ -22994,110 +23230,6 @@
   {
     "args": [
       "--scenario_json", 
-      "'{\"name\": \"cpp_protobuf_async_streaming_qps_unconstrained_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 4, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
-    ], 
-    "boringssl": true, 
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "cpu_cost": 1000.0, 
-    "defaults": "boringssl", 
-    "exclude_configs": [], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "json_run_localhost", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_secure"
-  }, 
-  {
-    "args": [
-      "--scenario_json", 
-      "'{\"name\": \"cpp_protobuf_async_streaming_ping_pong_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
-    ], 
-    "boringssl": true, 
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "cpu_cost": 1000.0, 
-    "defaults": "boringssl", 
-    "exclude_configs": [], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "json_run_localhost", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "shortname": "json_run_localhost:cpp_protobuf_async_streaming_ping_pong_secure"
-  }, 
-  {
-    "args": [
-      "--scenario_json", 
-      "'{\"name\": \"cpp_protobuf_sync_unary_ping_pong_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 1, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"SYNC_SERVER\"}, \"client_config\": {\"client_type\": \"SYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
-    ], 
-    "boringssl": true, 
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "cpu_cost": 1000.0, 
-    "defaults": "boringssl", 
-    "exclude_configs": [], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "json_run_localhost", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "shortname": "json_run_localhost:cpp_protobuf_sync_unary_ping_pong_secure"
-  }, 
-  {
-    "args": [
-      "--scenario_json", 
-      "'{\"name\": \"cpp_protobuf_async_unary_ping_pong_secure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
-    ], 
-    "boringssl": true, 
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "cpu_cost": 1000.0, 
-    "defaults": "boringssl", 
-    "exclude_configs": [], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "json_run_localhost", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "shortname": "json_run_localhost:cpp_protobuf_async_unary_ping_pong_secure"
-  }, 
-  {
-    "args": [
-      "--scenario_json", 
       "'{\"name\": \"cpp_generic_async_streaming_ping_pong_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
     ], 
     "boringssl": true, 
@@ -23124,7 +23256,137 @@
   {
     "args": [
       "--scenario_json", 
-      "'{\"name\": \"cpp_generic_async_streaming_qps_unconstrained_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 4, \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
+      "'{\"name\": \"cpp_protobuf_async_streaming_ping_pong_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": null, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_async_streaming_ping_pong_insecure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_protobuf_async_unary_ping_pong_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": null, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_async_unary_ping_pong_insecure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_protobuf_sync_unary_ping_pong_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": null, \"server_type\": \"SYNC_SERVER\"}, \"client_config\": {\"client_type\": \"SYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_sync_unary_ping_pong_insecure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_protobuf_async_unary_qps_unconstrained_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": null, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_async_unary_qps_unconstrained_insecure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_protobuf_async_streaming_qps_unconstrained_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": null, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
+    ], 
+    "boringssl": true, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1000.0, 
+    "defaults": "boringssl", 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "json_run_localhost", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_insecure"
+  }, 
+  {
+    "args": [
+      "--scenario_json", 
+      "'{\"name\": \"cpp_generic_async_streaming_qps_unconstrained_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"server_type\": \"ASYNC_GENERIC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"bytebuf_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
     ], 
     "boringssl": true, 
     "ci_platforms": [
@@ -23175,110 +23437,6 @@
   }, 
   {
     "args": [
-      "--scenario_json", 
-      "'{\"name\": \"cpp_protobuf_async_streaming_qps_unconstrained_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 4, \"security_params\": null, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}'"
-    ], 
-    "boringssl": true, 
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "cpu_cost": 1000.0, 
-    "defaults": "boringssl", 
-    "exclude_configs": [], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "json_run_localhost", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "shortname": "json_run_localhost:cpp_protobuf_async_streaming_qps_unconstrained_insecure"
-  }, 
-  {
-    "args": [
-      "--scenario_json", 
-      "'{\"name\": \"cpp_protobuf_async_streaming_ping_pong_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": null, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
-    ], 
-    "boringssl": true, 
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "cpu_cost": 1000.0, 
-    "defaults": "boringssl", 
-    "exclude_configs": [], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "json_run_localhost", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "shortname": "json_run_localhost:cpp_protobuf_async_streaming_ping_pong_insecure"
-  }, 
-  {
-    "args": [
-      "--scenario_json", 
-      "'{\"name\": \"cpp_protobuf_sync_unary_ping_pong_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 1, \"security_params\": null, \"server_type\": \"SYNC_SERVER\"}, \"client_config\": {\"client_type\": \"SYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
-    ], 
-    "boringssl": true, 
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "cpu_cost": 1000.0, 
-    "defaults": "boringssl", 
-    "exclude_configs": [], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "json_run_localhost", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "shortname": "json_run_localhost:cpp_protobuf_sync_unary_ping_pong_insecure"
-  }, 
-  {
-    "args": [
-      "--scenario_json", 
-      "'{\"name\": \"cpp_protobuf_async_unary_ping_pong_insecure\", \"warmup_seconds\": 5, \"benchmark_seconds\": 30, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": null, \"server_type\": \"ASYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}'"
-    ], 
-    "boringssl": true, 
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "cpu_cost": 1000.0, 
-    "defaults": "boringssl", 
-    "exclude_configs": [], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "json_run_localhost", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
-    "shortname": "json_run_localhost:cpp_protobuf_async_unary_ping_pong_insecure"
-  }, 
-  {
-    "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/00.bin"
     ], 
     "ci_platforms": [
@@ -23291,7 +23449,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23307,7 +23466,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23323,7 +23483,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23339,7 +23500,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23355,7 +23517,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23371,7 +23534,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23387,7 +23551,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23403,7 +23568,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23419,7 +23585,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23435,7 +23602,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23451,7 +23619,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23467,7 +23636,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23483,7 +23653,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23499,7 +23670,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23515,7 +23687,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23531,7 +23704,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23547,7 +23721,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23563,7 +23738,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23579,7 +23755,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23595,7 +23772,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23611,7 +23789,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23627,7 +23806,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23643,7 +23823,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23659,7 +23840,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23675,7 +23857,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23691,7 +23874,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23707,7 +23891,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23723,7 +23908,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23739,7 +23925,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23755,7 +23942,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23771,7 +23959,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23787,7 +23976,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23803,7 +23993,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23819,7 +24010,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23835,7 +24027,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23851,7 +24044,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23867,7 +24061,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23883,7 +24078,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23899,7 +24095,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23915,7 +24112,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23931,7 +24129,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23947,7 +24146,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23963,7 +24163,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23979,7 +24180,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23995,7 +24197,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24011,7 +24214,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24027,7 +24231,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24043,7 +24248,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24059,7 +24265,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24075,7 +24282,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24091,7 +24299,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24107,7 +24316,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24123,7 +24333,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24139,7 +24350,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24155,7 +24367,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24171,7 +24384,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24187,7 +24401,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24203,7 +24418,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24219,7 +24435,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24235,7 +24452,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24251,7 +24469,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24267,7 +24486,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24283,7 +24503,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24299,7 +24520,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24315,7 +24537,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24331,7 +24554,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24347,7 +24571,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24363,7 +24588,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24379,7 +24605,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24395,7 +24622,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24411,7 +24639,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24427,7 +24656,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24443,7 +24673,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24459,7 +24690,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24475,7 +24707,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24491,7 +24724,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24507,7 +24741,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24523,7 +24758,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24539,7 +24775,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24555,7 +24792,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24571,7 +24809,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24587,7 +24826,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24603,7 +24843,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24619,7 +24860,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24635,7 +24877,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24651,7 +24894,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24667,7 +24911,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24683,7 +24928,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24699,7 +24945,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24715,7 +24962,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24731,7 +24979,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24747,7 +24996,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24763,7 +25013,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24779,7 +25030,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24795,7 +25047,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24811,7 +25064,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24827,7 +25081,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24843,7 +25098,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24859,7 +25115,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24875,7 +25132,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24891,7 +25149,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24907,7 +25166,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24923,7 +25183,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24939,7 +25200,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24955,7 +25217,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24971,7 +25234,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24987,7 +25251,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25003,7 +25268,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25019,7 +25285,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25035,7 +25302,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25051,7 +25319,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25067,7 +25336,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25083,7 +25353,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25099,7 +25370,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25115,7 +25387,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25131,7 +25404,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25147,7 +25421,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25163,7 +25438,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25179,7 +25455,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25195,7 +25472,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25211,7 +25489,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25227,7 +25506,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25243,7 +25523,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25259,7 +25540,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25275,7 +25557,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25291,7 +25574,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25307,7 +25591,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25323,7 +25608,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25339,7 +25625,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25355,7 +25642,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25371,7 +25659,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25387,7 +25676,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25403,7 +25693,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25419,7 +25710,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25435,7 +25727,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25451,7 +25744,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25467,7 +25761,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25483,7 +25778,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25499,7 +25795,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25515,7 +25812,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25531,7 +25829,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25547,7 +25846,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25563,7 +25863,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25579,7 +25880,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25595,7 +25897,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25611,7 +25914,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25627,7 +25931,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25643,7 +25948,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25659,7 +25965,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25675,7 +25982,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25691,7 +25999,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25707,7 +26016,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25723,7 +26033,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25739,7 +26050,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25755,7 +26067,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25771,7 +26084,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25787,7 +26101,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25803,7 +26118,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25819,7 +26135,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25835,7 +26152,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25851,7 +26169,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25867,7 +26186,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25883,7 +26203,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25899,7 +26220,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25915,7 +26237,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25931,7 +26254,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25947,7 +26271,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25963,7 +26288,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25979,7 +26305,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25995,7 +26322,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26011,7 +26339,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26027,7 +26356,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26043,7 +26373,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26059,7 +26390,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26075,7 +26407,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26091,7 +26424,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26107,7 +26441,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26123,7 +26458,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26139,7 +26475,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26155,7 +26492,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26171,7 +26509,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26187,7 +26526,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26203,7 +26543,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26219,7 +26560,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26235,7 +26577,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26251,7 +26594,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26267,7 +26611,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26283,7 +26628,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26299,7 +26645,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26315,7 +26662,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26331,7 +26679,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26347,7 +26696,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26363,7 +26713,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26379,7 +26730,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26395,7 +26747,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26411,7 +26764,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26427,7 +26781,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26443,7 +26798,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26459,7 +26815,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26475,7 +26832,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26491,7 +26849,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26507,7 +26866,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26523,7 +26883,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26539,7 +26900,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26555,7 +26917,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26571,7 +26934,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26587,7 +26951,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26603,7 +26968,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26619,7 +26985,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26635,7 +27002,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26651,7 +27019,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26667,7 +27036,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26683,7 +27053,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26699,7 +27070,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26715,7 +27087,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26731,7 +27104,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26747,7 +27121,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26763,7 +27138,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26779,7 +27155,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26795,7 +27172,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26811,7 +27189,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26827,7 +27206,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26843,7 +27223,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26859,7 +27240,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26875,7 +27257,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26891,7 +27274,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26907,7 +27291,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26923,7 +27308,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26939,7 +27325,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26955,7 +27342,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26971,7 +27359,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26987,7 +27376,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27003,7 +27393,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27019,7 +27410,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27035,7 +27427,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27051,7 +27444,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27067,7 +27461,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27083,7 +27478,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27099,7 +27495,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27115,7 +27512,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27131,7 +27529,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27147,7 +27546,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27163,7 +27563,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27179,7 +27580,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27195,7 +27597,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27211,7 +27614,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27227,7 +27631,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27243,7 +27648,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27259,7 +27665,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27275,7 +27682,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27291,7 +27699,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27307,7 +27716,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27323,7 +27733,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27339,7 +27750,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27355,7 +27767,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27371,7 +27784,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27387,7 +27801,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27403,7 +27818,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27419,7 +27835,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27435,7 +27852,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27451,7 +27869,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27467,7 +27886,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27483,7 +27903,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27499,7 +27920,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27515,7 +27937,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27531,7 +27954,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27547,7 +27971,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27563,7 +27988,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27579,7 +28005,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27595,7 +28022,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27611,7 +28039,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27627,7 +28056,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27643,7 +28073,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27659,7 +28090,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27675,7 +28107,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27691,7 +28124,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27707,7 +28141,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27723,7 +28158,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27739,7 +28175,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27755,7 +28192,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27771,7 +28209,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27787,7 +28226,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27803,7 +28243,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27819,7 +28260,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27835,7 +28277,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27851,7 +28294,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27867,7 +28311,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27883,7 +28328,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27899,7 +28345,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27915,7 +28362,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27931,7 +28379,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27947,7 +28396,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27963,7 +28413,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27979,7 +28430,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27995,7 +28447,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28011,7 +28464,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28027,7 +28481,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28043,7 +28498,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28059,7 +28515,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28075,7 +28532,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28091,7 +28549,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28107,7 +28566,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28123,7 +28583,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28139,7 +28600,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28155,7 +28617,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28171,7 +28634,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28187,7 +28651,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28203,7 +28668,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28219,7 +28685,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28235,7 +28702,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28251,7 +28719,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28267,7 +28736,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28283,7 +28753,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28299,7 +28770,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28315,7 +28787,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28331,7 +28804,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28347,7 +28821,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28363,7 +28838,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28379,7 +28855,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28395,7 +28872,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28411,7 +28889,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28427,7 +28906,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28443,7 +28923,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28459,7 +28940,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28475,7 +28957,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28491,7 +28974,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28507,7 +28991,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28523,7 +29008,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28539,7 +29025,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28555,7 +29042,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28571,7 +29059,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28587,7 +29076,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28603,7 +29093,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28619,7 +29110,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28635,7 +29127,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28651,7 +29144,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28667,7 +29161,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28683,7 +29178,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28699,7 +29195,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28715,7 +29212,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28731,7 +29229,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28747,7 +29246,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28763,7 +29263,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28779,7 +29280,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28795,7 +29297,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28811,7 +29314,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28827,7 +29331,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28843,7 +29348,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28859,7 +29365,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28875,7 +29382,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28891,7 +29399,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28907,7 +29416,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28923,7 +29433,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28939,7 +29450,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28955,7 +29467,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28971,7 +29484,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28987,7 +29501,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29003,7 +29518,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29019,7 +29535,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29035,7 +29552,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29051,7 +29569,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29067,7 +29586,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29083,7 +29603,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29099,7 +29620,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29115,7 +29637,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29131,7 +29654,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29147,7 +29671,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29163,7 +29688,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29179,7 +29705,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29195,7 +29722,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29211,7 +29739,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29227,7 +29756,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29243,7 +29773,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29259,7 +29790,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29275,7 +29807,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29291,7 +29824,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29307,7 +29841,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29323,7 +29858,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29339,7 +29875,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29355,7 +29892,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29371,7 +29909,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29387,7 +29926,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29403,7 +29943,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29419,7 +29960,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29435,7 +29977,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29451,7 +29994,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29467,7 +30011,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29483,7 +30028,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29499,7 +30045,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29515,7 +30062,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29531,7 +30079,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29547,7 +30096,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29563,7 +30113,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29579,7 +30130,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29595,7 +30147,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29611,7 +30164,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29627,7 +30181,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29643,7 +30198,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29659,7 +30215,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29675,7 +30232,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29691,7 +30249,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29707,7 +30266,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29723,7 +30283,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29739,7 +30300,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29755,7 +30317,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29771,7 +30334,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29787,7 +30351,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29803,7 +30368,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29819,7 +30385,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29835,7 +30402,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29851,7 +30419,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29867,7 +30436,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29883,7 +30453,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29899,7 +30470,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29915,7 +30487,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29931,7 +30504,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29947,7 +30521,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29963,7 +30538,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29979,7 +30555,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29995,7 +30572,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30011,7 +30589,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30027,7 +30606,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30043,7 +30623,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30059,7 +30640,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30075,7 +30657,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30091,7 +30674,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30107,7 +30691,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30123,7 +30708,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30139,7 +30725,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30155,7 +30742,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30171,7 +30759,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30187,7 +30776,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30203,7 +30793,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30219,7 +30810,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30235,7 +30827,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30251,7 +30844,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30267,7 +30861,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30283,7 +30878,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30299,7 +30895,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30315,7 +30912,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30331,7 +30929,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30347,7 +30946,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30363,7 +30963,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30379,7 +30980,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30395,7 +30997,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30411,7 +31014,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30427,7 +31031,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30443,7 +31048,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30459,7 +31065,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30475,7 +31082,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30491,7 +31099,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30507,7 +31116,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30523,7 +31133,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30539,7 +31150,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30555,7 +31167,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30571,7 +31184,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30587,7 +31201,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30603,7 +31218,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30619,7 +31235,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30635,7 +31252,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30651,7 +31269,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30667,7 +31286,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30683,7 +31303,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30699,7 +31320,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30715,7 +31337,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30731,7 +31354,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30747,7 +31371,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30763,7 +31388,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30779,7 +31405,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30795,7 +31422,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30811,7 +31439,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30827,7 +31456,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30843,7 +31473,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30859,7 +31490,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30875,7 +31507,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30891,7 +31524,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30907,7 +31541,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30923,7 +31558,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30939,7 +31575,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30955,7 +31592,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30971,7 +31609,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30987,7 +31626,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31003,7 +31643,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31019,7 +31660,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31035,7 +31677,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31051,7 +31694,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31067,7 +31711,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31083,7 +31728,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31099,7 +31745,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31115,7 +31762,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31131,7 +31779,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31147,7 +31796,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31163,7 +31813,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31179,7 +31830,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31195,7 +31847,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31211,7 +31864,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31227,7 +31881,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31243,7 +31898,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31259,7 +31915,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31275,7 +31932,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31291,7 +31949,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31307,7 +31966,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31323,7 +31983,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31339,7 +32000,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31355,7 +32017,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31371,7 +32034,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31387,7 +32051,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31403,7 +32068,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31419,7 +32085,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31435,7 +32102,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31451,7 +32119,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31467,7 +32136,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31483,7 +32153,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31499,7 +32170,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31515,7 +32187,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31531,7 +32204,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31547,7 +32221,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31563,7 +32238,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31579,7 +32255,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31595,7 +32272,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31611,7 +32289,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31627,7 +32306,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31643,7 +32323,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31659,7 +32340,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31675,7 +32357,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31691,7 +32374,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31707,7 +32391,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31723,7 +32408,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31739,7 +32425,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31755,7 +32442,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31771,7 +32459,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31787,7 +32476,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31803,7 +32493,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31819,7 +32510,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31835,7 +32527,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31851,7 +32544,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31867,7 +32561,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31883,7 +32578,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31899,7 +32595,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31915,7 +32612,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31931,7 +32629,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31947,7 +32646,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31963,7 +32663,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31979,7 +32680,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31995,7 +32697,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32011,7 +32714,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32027,7 +32731,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32043,7 +32748,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32059,7 +32765,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32075,7 +32782,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32091,7 +32799,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32107,7 +32816,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32123,7 +32833,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32139,7 +32850,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32155,7 +32867,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32171,7 +32884,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32187,7 +32901,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32203,7 +32918,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32219,7 +32935,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32235,7 +32952,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32251,7 +32969,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32267,7 +32986,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32283,7 +33003,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32299,7 +33020,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32315,7 +33037,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32331,7 +33054,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32347,7 +33071,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32363,7 +33088,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32379,7 +33105,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32395,7 +33122,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32411,7 +33139,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32427,7 +33156,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32443,7 +33173,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32459,7 +33190,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32475,7 +33207,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32491,7 +33224,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32507,7 +33241,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32523,7 +33258,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32539,7 +33275,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32555,7 +33292,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32571,7 +33309,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32587,7 +33326,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32603,7 +33343,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32619,7 +33360,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32635,7 +33377,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32651,7 +33394,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32667,7 +33411,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32683,7 +33428,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32699,7 +33445,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32715,7 +33462,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32731,7 +33479,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32747,7 +33496,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32763,7 +33513,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32779,7 +33530,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32795,7 +33547,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32811,7 +33564,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32827,7 +33581,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32843,7 +33598,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32859,7 +33615,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32875,7 +33632,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32891,7 +33649,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32907,7 +33666,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32923,7 +33683,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32939,7 +33700,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32955,7 +33717,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32971,7 +33734,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32987,7 +33751,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33003,7 +33768,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33019,7 +33785,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33035,7 +33802,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33051,7 +33819,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33067,7 +33836,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33083,7 +33853,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33099,7 +33870,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33115,7 +33887,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33131,7 +33904,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33147,7 +33921,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33163,7 +33938,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33179,7 +33955,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33195,7 +33972,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33211,7 +33989,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33227,7 +34006,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33243,7 +34023,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33259,7 +34040,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33275,7 +34057,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33291,7 +34074,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33307,7 +34091,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33323,7 +34108,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33339,7 +34125,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33355,7 +34142,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33371,7 +34159,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33387,7 +34176,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33403,7 +34193,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33419,7 +34210,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33435,7 +34227,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33451,7 +34244,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33467,7 +34261,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33483,7 +34278,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33499,7 +34295,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33515,7 +34312,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33531,7 +34329,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33547,7 +34346,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33563,7 +34363,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33579,7 +34380,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33595,7 +34397,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33611,7 +34414,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33627,7 +34431,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33643,7 +34448,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33659,7 +34465,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33675,7 +34482,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33691,7 +34499,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33707,7 +34516,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33723,7 +34533,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33739,7 +34550,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33755,7 +34567,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33771,7 +34584,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33787,7 +34601,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33803,7 +34618,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33819,7 +34635,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33835,7 +34652,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33851,7 +34669,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33867,7 +34686,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33883,7 +34703,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33899,7 +34720,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33915,7 +34737,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33931,7 +34754,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33947,7 +34771,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33963,7 +34788,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33979,7 +34805,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33995,7 +34822,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34011,7 +34839,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34027,7 +34856,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34043,7 +34873,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34059,7 +34890,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34075,7 +34907,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34091,7 +34924,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34107,7 +34941,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34123,7 +34958,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34139,7 +34975,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34155,7 +34992,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34171,7 +35009,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34187,7 +35026,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34203,7 +35043,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34219,7 +35060,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34235,7 +35077,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34251,7 +35094,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34267,7 +35111,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34283,7 +35128,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34299,7 +35145,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34315,7 +35162,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34331,7 +35179,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34347,7 +35196,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34363,7 +35213,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34379,7 +35230,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34395,7 +35247,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34411,7 +35264,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34427,7 +35281,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34443,7 +35298,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34459,7 +35315,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34475,7 +35332,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34491,7 +35349,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34507,7 +35366,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34523,7 +35383,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34539,7 +35400,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34555,7 +35417,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34571,7 +35434,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34587,7 +35451,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34603,7 +35468,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34619,7 +35485,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34635,7 +35502,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34651,7 +35519,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34667,7 +35536,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34683,7 +35553,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34699,7 +35570,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34715,7 +35587,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34731,7 +35604,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34747,7 +35621,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34763,7 +35638,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34779,7 +35655,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34795,7 +35672,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34811,7 +35689,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34827,7 +35706,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34843,7 +35723,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34859,7 +35740,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34875,7 +35757,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34891,7 +35774,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34907,7 +35791,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34923,7 +35808,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34939,7 +35825,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34955,7 +35842,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34971,7 +35859,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34987,7 +35876,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35003,7 +35893,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35019,7 +35910,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35035,7 +35927,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35051,7 +35944,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35067,7 +35961,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35083,7 +35978,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35099,7 +35995,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35115,7 +36012,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35131,7 +36029,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35147,7 +36046,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35163,7 +36063,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35179,7 +36080,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35195,7 +36097,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35211,7 +36114,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35227,7 +36131,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35243,7 +36148,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35259,7 +36165,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35275,7 +36182,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35291,7 +36199,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35307,7 +36216,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35323,7 +36233,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35339,7 +36250,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35355,7 +36267,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35371,7 +36284,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35387,7 +36301,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35403,7 +36318,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35419,7 +36335,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35435,7 +36352,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35451,7 +36369,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35467,7 +36386,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35483,7 +36403,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35499,7 +36420,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35515,7 +36437,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35531,7 +36454,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35547,7 +36471,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35563,7 +36488,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35579,7 +36505,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35595,7 +36522,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35611,7 +36539,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35627,7 +36556,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35643,7 +36573,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35659,7 +36590,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35675,7 +36607,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35691,7 +36624,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35707,7 +36641,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35723,7 +36658,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35739,7 +36675,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35755,7 +36692,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35771,7 +36709,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35787,7 +36726,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35803,7 +36743,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35819,7 +36760,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35835,7 +36777,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35851,7 +36794,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35867,7 +36811,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35883,7 +36828,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35899,7 +36845,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35915,7 +36862,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35931,7 +36879,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35947,7 +36896,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35963,7 +36913,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35979,7 +36930,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35995,7 +36947,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36011,7 +36964,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36027,7 +36981,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36043,7 +36998,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36059,7 +37015,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36075,7 +37032,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36091,7 +37049,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36107,7 +37066,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36123,7 +37083,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36139,7 +37100,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36155,7 +37117,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36171,7 +37134,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36187,7 +37151,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36203,7 +37168,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36219,7 +37185,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36235,7 +37202,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36251,7 +37219,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36267,7 +37236,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36283,7 +37253,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36299,7 +37270,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36315,7 +37287,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36331,7 +37304,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36347,7 +37321,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36363,7 +37338,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36379,7 +37355,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36395,7 +37372,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36411,7 +37389,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36427,7 +37406,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36443,7 +37423,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36459,7 +37440,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36475,7 +37457,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36491,7 +37474,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36507,7 +37491,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36523,7 +37508,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36539,7 +37525,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36555,7 +37542,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36571,7 +37559,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36587,7 +37576,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36603,7 +37593,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36619,7 +37610,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36635,7 +37627,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36651,7 +37644,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36667,7 +37661,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36683,7 +37678,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36699,7 +37695,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36715,7 +37712,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36731,7 +37729,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36747,7 +37746,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36763,7 +37763,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36779,7 +37780,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36795,7 +37797,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36811,7 +37814,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36827,7 +37831,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36843,7 +37848,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36859,7 +37865,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36875,7 +37882,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36891,7 +37899,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36907,7 +37916,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36923,7 +37933,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36939,7 +37950,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36955,7 +37967,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36971,7 +37984,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36987,7 +38001,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37003,7 +38018,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37019,7 +38035,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37035,7 +38052,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37051,7 +38069,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37067,7 +38086,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37083,7 +38103,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37099,7 +38120,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37115,7 +38137,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37131,7 +38154,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37147,7 +38171,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37163,7 +38188,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37179,7 +38205,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37195,7 +38222,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37211,7 +38239,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37227,7 +38256,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37243,7 +38273,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37259,7 +38290,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37275,7 +38307,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37291,7 +38324,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37307,7 +38341,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37323,7 +38358,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37339,7 +38375,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37355,7 +38392,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37371,7 +38409,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37387,7 +38426,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37403,7 +38443,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37419,7 +38460,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37435,7 +38477,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37451,7 +38494,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37467,7 +38511,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37483,7 +38528,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37499,7 +38545,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37515,7 +38562,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37531,7 +38579,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37547,7 +38596,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37563,7 +38613,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37579,7 +38630,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37595,7 +38647,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37611,7 +38664,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37627,7 +38681,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37643,7 +38698,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37659,7 +38715,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37675,7 +38732,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37691,7 +38749,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37707,7 +38766,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37723,7 +38783,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37739,7 +38800,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37755,7 +38817,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37771,7 +38834,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37787,7 +38851,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37803,7 +38868,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37819,7 +38885,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37835,7 +38902,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37851,7 +38919,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37867,7 +38936,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37883,7 +38953,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37899,7 +38970,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37915,7 +38987,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37931,7 +39004,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37947,7 +39021,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37963,7 +39038,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37979,7 +39055,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37995,7 +39072,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38011,7 +39089,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38027,7 +39106,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38043,7 +39123,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38059,7 +39140,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38075,7 +39157,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38091,7 +39174,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38107,7 +39191,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38123,7 +39208,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38139,7 +39225,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38155,7 +39242,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38171,7 +39259,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38187,7 +39276,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38203,7 +39293,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38219,7 +39310,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38235,7 +39327,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38251,7 +39344,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38267,7 +39361,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38283,7 +39378,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38299,7 +39395,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38315,7 +39412,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38331,7 +39429,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38347,7 +39446,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38363,7 +39463,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38379,7 +39480,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38395,7 +39497,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38411,7 +39514,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38427,7 +39531,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38443,7 +39548,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38459,7 +39565,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38475,7 +39582,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38491,7 +39599,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38507,7 +39616,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38523,7 +39633,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38539,7 +39650,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38555,7 +39667,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38571,7 +39684,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38587,7 +39701,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38603,7 +39718,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38619,7 +39735,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38635,7 +39752,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38651,7 +39769,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38667,7 +39786,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38683,7 +39803,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38699,7 +39820,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38715,7 +39837,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38731,7 +39854,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38747,7 +39871,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38763,7 +39888,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38779,7 +39905,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38795,7 +39922,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38811,7 +39939,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38827,7 +39956,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38843,7 +39973,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38859,7 +39990,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38875,7 +40007,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38891,7 +40024,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38907,7 +40041,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38923,7 +40058,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38939,7 +40075,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38955,7 +40092,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38971,7 +40109,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38987,7 +40126,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39003,7 +40143,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39019,7 +40160,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39035,7 +40177,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39051,7 +40194,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39067,7 +40211,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39083,7 +40228,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39099,7 +40245,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39115,7 +40262,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39131,7 +40279,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39147,7 +40296,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39163,7 +40313,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39179,7 +40330,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39195,7 +40347,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39211,7 +40364,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39227,7 +40381,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39243,7 +40398,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39259,7 +40415,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39275,7 +40432,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39291,7 +40449,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39307,7 +40466,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39323,7 +40483,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39339,7 +40500,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39355,7 +40517,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39371,7 +40534,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39387,7 +40551,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39403,7 +40568,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39419,7 +40585,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39435,7 +40602,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39451,7 +40619,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39467,7 +40636,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39483,7 +40653,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39499,7 +40670,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39515,7 +40687,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39531,7 +40704,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39547,7 +40721,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39563,7 +40738,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39579,7 +40755,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39595,7 +40772,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39611,7 +40789,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39627,7 +40806,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39643,7 +40823,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39659,7 +40840,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39675,7 +40857,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39691,7 +40874,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39707,7 +40891,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39723,7 +40908,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39739,7 +40925,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39755,7 +40942,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39771,7 +40959,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39787,7 +40976,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39803,7 +40993,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39819,7 +41010,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39835,7 +41027,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39851,7 +41044,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39867,7 +41061,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39883,7 +41078,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39899,7 +41095,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39915,7 +41112,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39931,7 +41129,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39947,7 +41146,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39963,7 +41163,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39979,7 +41180,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39995,7 +41197,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40011,7 +41214,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40027,7 +41231,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40043,7 +41248,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40059,7 +41265,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40075,7 +41282,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40091,7 +41299,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40107,7 +41316,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40123,7 +41333,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40139,7 +41350,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40155,7 +41367,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40171,7 +41384,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40187,7 +41401,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40203,7 +41418,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40219,7 +41435,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40235,7 +41452,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40251,7 +41469,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40267,7 +41486,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40283,7 +41503,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40299,7 +41520,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40315,7 +41537,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40331,7 +41554,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40347,7 +41571,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40363,7 +41588,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40379,7 +41605,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40395,7 +41622,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40411,7 +41639,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40427,7 +41656,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40443,7 +41673,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40459,7 +41690,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40475,7 +41707,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40491,7 +41724,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40507,7 +41741,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40523,7 +41758,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40539,7 +41775,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40555,7 +41792,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40571,7 +41809,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40587,7 +41826,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40603,7 +41843,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40619,7 +41860,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40635,7 +41877,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40651,7 +41894,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40667,7 +41911,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40683,7 +41928,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40699,7 +41945,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40715,7 +41962,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40731,7 +41979,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40747,7 +41996,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40763,7 +42013,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40779,7 +42030,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40795,7 +42047,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40811,7 +42064,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40827,7 +42081,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40843,7 +42098,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40859,7 +42115,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40875,7 +42132,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40891,7 +42149,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40907,7 +42166,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40923,7 +42183,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40939,7 +42200,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40955,7 +42217,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40971,7 +42234,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40987,7 +42251,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41003,7 +42268,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41019,7 +42285,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41035,7 +42302,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41051,7 +42319,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41067,7 +42336,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41083,7 +42353,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41099,7 +42370,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41115,7 +42387,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41131,7 +42404,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41147,7 +42421,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41163,7 +42438,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41179,7 +42455,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41195,7 +42472,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41211,7 +42489,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41227,7 +42506,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41243,7 +42523,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41259,7 +42540,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41275,7 +42557,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41291,7 +42574,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41307,7 +42591,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41323,7 +42608,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41339,7 +42625,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41355,7 +42642,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41371,7 +42659,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41387,7 +42676,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41403,7 +42693,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41419,7 +42710,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41435,7 +42727,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41451,7 +42744,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41467,7 +42761,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41483,7 +42778,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41499,7 +42795,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41515,7 +42812,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41531,7 +42829,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41547,7 +42846,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41563,7 +42863,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41579,7 +42880,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41595,7 +42897,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41611,7 +42914,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41627,7 +42931,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41643,7 +42948,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41659,7 +42965,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41675,7 +42982,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41691,7 +42999,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41707,7 +43016,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41723,7 +43033,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41739,7 +43050,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41755,7 +43067,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41771,7 +43084,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41787,7 +43101,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41803,7 +43118,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41819,7 +43135,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41835,7 +43152,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41851,7 +43169,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41867,7 +43186,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41883,7 +43203,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41899,7 +43220,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41915,7 +43237,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41931,7 +43254,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41947,7 +43271,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41963,7 +43288,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41979,7 +43305,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41995,7 +43322,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42011,7 +43339,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42027,7 +43356,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42043,7 +43373,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42059,7 +43390,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42075,7 +43407,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42091,7 +43424,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42107,7 +43441,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42123,7 +43458,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42139,7 +43475,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42155,7 +43492,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42171,7 +43509,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42187,7 +43526,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42203,7 +43543,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42219,7 +43560,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42235,7 +43577,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42251,7 +43594,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42267,7 +43611,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42283,7 +43628,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42299,7 +43645,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42315,7 +43662,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42331,7 +43679,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42347,7 +43696,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42363,7 +43713,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42379,7 +43730,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42395,7 +43747,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42411,7 +43764,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42427,7 +43781,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42443,7 +43798,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42459,7 +43815,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42475,7 +43832,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42491,7 +43849,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42507,7 +43866,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42523,7 +43883,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42539,7 +43900,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42555,7 +43917,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42571,7 +43934,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42587,7 +43951,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42603,7 +43968,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42619,7 +43985,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42635,7 +44002,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42651,7 +44019,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42667,7 +44036,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42683,7 +44053,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42699,7 +44070,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42715,7 +44087,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42731,7 +44104,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42747,7 +44121,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42763,7 +44138,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42779,7 +44155,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42795,7 +44172,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42811,7 +44189,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42827,7 +44206,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42843,7 +44223,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42859,7 +44240,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42875,7 +44257,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42891,7 +44274,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42907,7 +44291,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42923,7 +44308,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42939,7 +44325,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42955,7 +44342,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42971,7 +44359,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42987,7 +44376,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43003,7 +44393,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43019,7 +44410,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43035,7 +44427,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43051,7 +44444,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43067,7 +44461,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43083,7 +44478,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43099,7 +44495,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43115,7 +44512,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43131,7 +44529,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43147,7 +44546,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43163,7 +44563,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43179,7 +44580,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43195,7 +44597,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43211,7 +44614,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43227,7 +44631,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43243,7 +44648,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43259,7 +44665,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43275,7 +44682,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43291,7 +44699,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43307,7 +44716,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43323,7 +44733,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43339,7 +44750,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43355,7 +44767,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43371,7 +44784,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43387,7 +44801,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43403,7 +44818,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43419,7 +44835,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43435,7 +44852,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43451,7 +44869,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43467,7 +44886,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43483,7 +44903,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43499,7 +44920,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43515,7 +44937,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43531,7 +44954,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43547,7 +44971,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43563,7 +44988,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43579,7 +45005,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43595,7 +45022,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43611,7 +45039,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43627,7 +45056,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43643,7 +45073,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43659,7 +45090,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43675,7 +45107,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43691,7 +45124,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43707,7 +45141,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43723,7 +45158,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43739,7 +45175,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43755,7 +45192,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43771,7 +45209,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43787,7 +45226,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43803,7 +45243,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43819,7 +45260,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43835,7 +45277,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43851,7 +45294,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43867,7 +45311,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43883,7 +45328,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43899,7 +45345,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43915,7 +45362,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43931,7 +45379,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43947,7 +45396,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43963,7 +45413,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43979,7 +45430,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43995,7 +45447,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44011,7 +45464,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44027,7 +45481,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44043,7 +45498,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44059,7 +45515,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44075,7 +45532,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44091,7 +45549,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44107,7 +45566,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44123,7 +45583,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44139,7 +45600,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44155,7 +45617,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44171,7 +45634,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44187,7 +45651,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44203,7 +45668,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44219,7 +45685,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44235,7 +45702,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44251,7 +45719,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44267,7 +45736,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44283,7 +45753,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44299,7 +45770,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44315,7 +45787,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44331,7 +45804,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44347,7 +45821,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44363,7 +45838,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44379,7 +45855,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44395,7 +45872,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44411,7 +45889,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44427,7 +45906,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44443,7 +45923,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44459,7 +45940,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44475,7 +45957,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44491,7 +45974,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44507,7 +45991,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44523,7 +46008,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44539,7 +46025,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44555,7 +46042,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44571,7 +46059,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44587,7 +46076,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44603,7 +46093,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44619,7 +46110,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44635,7 +46127,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44651,7 +46144,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44667,7 +46161,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44683,7 +46178,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44699,7 +46195,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44715,7 +46212,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44731,7 +46229,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44747,7 +46246,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44763,7 +46263,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44779,7 +46280,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44795,7 +46297,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44811,7 +46314,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44827,7 +46331,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44843,7 +46348,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44859,7 +46365,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44875,7 +46382,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44891,7 +46399,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44907,7 +46416,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44923,7 +46433,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44939,7 +46450,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44955,7 +46467,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44971,7 +46484,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44987,7 +46501,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45003,7 +46518,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45019,7 +46535,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45035,7 +46552,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45051,7 +46569,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45067,7 +46586,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45083,7 +46603,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45099,7 +46620,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45115,7 +46637,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45131,7 +46654,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45147,7 +46671,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45163,7 +46688,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45179,7 +46705,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45195,7 +46722,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45211,7 +46739,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45227,7 +46756,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45243,7 +46773,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45259,7 +46790,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45275,7 +46807,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45291,7 +46824,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45307,7 +46841,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45323,7 +46858,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45339,7 +46875,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45355,7 +46892,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45371,7 +46909,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45387,7 +46926,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45403,7 +46943,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45419,7 +46960,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45435,7 +46977,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45451,7 +46994,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45467,7 +47011,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45483,7 +47028,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45499,7 +47045,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45515,7 +47062,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45531,7 +47079,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45547,7 +47096,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45563,7 +47113,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45579,7 +47130,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45595,7 +47147,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45611,7 +47164,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45627,7 +47181,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45643,7 +47198,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45659,7 +47215,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45675,7 +47232,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45691,7 +47249,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45707,7 +47266,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45723,7 +47283,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45739,7 +47300,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45755,7 +47317,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45771,7 +47334,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45787,7 +47351,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45803,7 +47368,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45819,7 +47385,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45835,7 +47402,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45851,7 +47419,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45867,7 +47436,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45883,7 +47453,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45899,7 +47470,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45915,7 +47487,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45931,7 +47504,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45947,7 +47521,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45963,7 +47538,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45979,7 +47555,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45995,7 +47572,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46011,7 +47589,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46027,7 +47606,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46043,7 +47623,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46059,7 +47640,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46075,7 +47657,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46091,7 +47674,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46107,7 +47691,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46123,7 +47708,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46139,7 +47725,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46155,7 +47742,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46171,7 +47759,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46187,7 +47776,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46203,7 +47793,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46219,7 +47810,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46235,7 +47827,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46251,7 +47844,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46267,7 +47861,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46283,7 +47878,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46299,7 +47895,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46315,7 +47912,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46331,7 +47929,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46347,7 +47946,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46363,7 +47963,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46379,7 +47980,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46395,7 +47997,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46411,7 +48014,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46427,7 +48031,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46443,7 +48048,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46459,7 +48065,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46475,7 +48082,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46491,7 +48099,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46507,7 +48116,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46523,7 +48133,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46539,7 +48150,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46555,7 +48167,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46571,7 +48184,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46587,7 +48201,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46603,7 +48218,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46619,7 +48235,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46635,7 +48252,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46651,7 +48269,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46667,7 +48286,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46683,7 +48303,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46699,7 +48320,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46715,7 +48337,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46731,7 +48354,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46747,7 +48371,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46763,7 +48388,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46779,7 +48405,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46795,7 +48422,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46811,7 +48439,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46827,7 +48456,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46843,7 +48473,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46859,7 +48490,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46875,7 +48507,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46891,7 +48524,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46907,7 +48541,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46923,7 +48558,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46939,7 +48575,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46955,7 +48592,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46971,7 +48609,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46987,7 +48626,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47003,7 +48643,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47019,7 +48660,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47035,7 +48677,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47051,7 +48694,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47067,7 +48711,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47083,7 +48728,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47099,7 +48745,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47115,7 +48762,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47131,7 +48779,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47147,7 +48796,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47163,7 +48813,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47179,7 +48830,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47195,7 +48847,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47211,7 +48864,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47227,7 +48881,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47243,7 +48898,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47259,7 +48915,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47275,7 +48932,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47291,7 +48949,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47307,7 +48966,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47323,7 +48983,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47339,7 +49000,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47355,7 +49017,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47371,7 +49034,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47387,7 +49051,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47403,7 +49068,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47419,7 +49085,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47435,7 +49102,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47451,7 +49119,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47467,7 +49136,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47483,7 +49153,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47499,7 +49170,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47515,7 +49187,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47531,7 +49204,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47547,7 +49221,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47563,7 +49238,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47579,7 +49255,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47595,7 +49272,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47611,7 +49289,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47627,7 +49306,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47643,7 +49323,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47659,7 +49340,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47675,7 +49357,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47691,7 +49374,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47707,7 +49391,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47723,7 +49408,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47739,7 +49425,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47755,7 +49442,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47771,7 +49459,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47787,7 +49476,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47803,7 +49493,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47819,7 +49510,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47835,7 +49527,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47851,7 +49544,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47867,7 +49561,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47883,7 +49578,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47899,7 +49595,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47915,7 +49612,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47931,7 +49629,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47947,7 +49646,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47963,7 +49663,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47979,7 +49680,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47995,7 +49697,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48011,7 +49714,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48027,7 +49731,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48043,7 +49748,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48059,7 +49765,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48075,7 +49782,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48091,7 +49799,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48107,7 +49816,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48123,7 +49833,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48139,7 +49850,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48155,7 +49867,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48171,7 +49884,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48187,7 +49901,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48203,7 +49918,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48219,7 +49935,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48235,7 +49952,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48251,7 +49969,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48267,7 +49986,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48283,7 +50003,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48299,7 +50020,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48315,7 +50037,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48331,7 +50054,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48347,7 +50071,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48363,7 +50088,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48379,7 +50105,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48395,7 +50122,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48411,7 +50139,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48427,7 +50156,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48443,7 +50173,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48459,7 +50190,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48475,7 +50207,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48491,7 +50224,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48507,7 +50241,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48523,7 +50258,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48539,7 +50275,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48555,7 +50292,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48571,7 +50309,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48587,7 +50326,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48603,7 +50343,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48619,7 +50360,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48635,7 +50377,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48651,7 +50394,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48667,7 +50411,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48683,7 +50428,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48699,7 +50445,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48715,7 +50462,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48731,7 +50479,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48747,7 +50496,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48763,7 +50513,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48779,7 +50530,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48795,7 +50547,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48811,7 +50564,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48827,7 +50581,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48843,7 +50598,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48859,7 +50615,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48875,7 +50632,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48891,7 +50649,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48907,7 +50666,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48923,7 +50683,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48939,7 +50700,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48955,7 +50717,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48971,7 +50734,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48987,7 +50751,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49003,7 +50768,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49019,7 +50785,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49035,7 +50802,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49051,7 +50819,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49067,7 +50836,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49083,7 +50853,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49099,7 +50870,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49115,7 +50887,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49131,7 +50904,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49147,7 +50921,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49163,7 +50938,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49179,7 +50955,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49195,7 +50972,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49211,7 +50989,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49227,7 +51006,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49243,7 +51023,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49259,7 +51040,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49275,7 +51057,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49291,7 +51074,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49307,7 +51091,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49323,7 +51108,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49339,7 +51125,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49355,7 +51142,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49371,7 +51159,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49387,7 +51176,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49403,7 +51193,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49419,7 +51210,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49435,7 +51227,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49451,7 +51244,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49467,7 +51261,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49483,7 +51278,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49499,7 +51295,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49515,7 +51312,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49531,7 +51329,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49547,7 +51346,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49563,7 +51363,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49579,7 +51380,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49595,7 +51397,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49611,7 +51414,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49627,7 +51431,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49643,7 +51448,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49659,7 +51465,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49675,7 +51482,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49691,7 +51499,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49707,7 +51516,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49723,7 +51533,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49739,7 +51550,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49755,7 +51567,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49771,7 +51584,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49787,7 +51601,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49803,7 +51618,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49819,7 +51635,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49835,7 +51652,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49851,7 +51669,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49867,7 +51686,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49883,7 +51703,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49899,7 +51720,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49915,7 +51737,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49931,7 +51754,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49947,7 +51771,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49963,7 +51788,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49979,7 +51805,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49995,7 +51822,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50011,7 +51839,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50027,7 +51856,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50043,7 +51873,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50059,7 +51890,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50075,7 +51907,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50091,7 +51924,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50107,7 +51941,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50123,7 +51958,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50139,7 +51975,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50155,7 +51992,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50171,7 +52009,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50187,7 +52026,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50203,7 +52043,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50219,7 +52060,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50235,7 +52077,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50251,7 +52094,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50267,7 +52111,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50283,7 +52128,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50299,7 +52145,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50315,7 +52162,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50331,7 +52179,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50347,7 +52196,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50363,7 +52213,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50379,7 +52230,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50395,7 +52247,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50411,7 +52264,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50427,7 +52281,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50443,7 +52298,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50459,7 +52315,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50475,7 +52332,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50491,7 +52349,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50507,7 +52366,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50523,7 +52383,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50539,7 +52400,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50555,7 +52417,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50571,7 +52434,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50587,7 +52451,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50603,7 +52468,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50619,7 +52485,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50635,7 +52502,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50651,7 +52519,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50667,7 +52536,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50683,7 +52553,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50699,7 +52570,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50715,7 +52587,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50731,7 +52604,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50747,7 +52621,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50763,7 +52638,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50779,7 +52655,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50795,7 +52672,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50811,7 +52689,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50827,7 +52706,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50843,7 +52723,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50859,7 +52740,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50875,7 +52757,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50891,7 +52774,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50907,7 +52791,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50923,7 +52808,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50939,7 +52825,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50955,7 +52842,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50971,7 +52859,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50987,7 +52876,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51003,7 +52893,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51019,7 +52910,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51035,7 +52927,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51051,7 +52944,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51067,7 +52961,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51083,7 +52978,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51099,7 +52995,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51115,7 +53012,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51131,7 +53029,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51147,7 +53046,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51163,7 +53063,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51179,7 +53080,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51195,7 +53097,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51211,7 +53114,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51227,7 +53131,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51243,7 +53148,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51259,7 +53165,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51275,7 +53182,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51291,7 +53199,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51307,7 +53216,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51323,7 +53233,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51339,7 +53250,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51355,7 +53267,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51371,7 +53284,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51387,7 +53301,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51403,7 +53318,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51419,7 +53335,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51435,7 +53352,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51451,7 +53369,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51467,7 +53386,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51483,7 +53403,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51499,7 +53420,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51515,7 +53437,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51531,7 +53454,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51547,7 +53471,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51563,7 +53488,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51579,7 +53505,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51595,7 +53522,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51611,7 +53539,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51627,7 +53556,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51643,7 +53573,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51659,7 +53590,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51675,7 +53607,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51691,7 +53624,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51707,7 +53641,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51723,7 +53658,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51739,7 +53675,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51755,7 +53692,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51771,7 +53709,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51787,7 +53726,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51803,7 +53743,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51819,7 +53760,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51835,7 +53777,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51851,7 +53794,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51867,7 +53811,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51883,7 +53828,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51899,7 +53845,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51915,7 +53862,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51931,7 +53879,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51947,7 +53896,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51963,7 +53913,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51979,7 +53930,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51995,7 +53947,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52011,7 +53964,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52027,7 +53981,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52043,7 +53998,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52059,7 +54015,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52075,7 +54032,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52091,7 +54049,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52107,7 +54066,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52123,7 +54083,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52139,7 +54100,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52155,7 +54117,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52171,7 +54134,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52187,7 +54151,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52203,7 +54168,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52219,7 +54185,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52235,7 +54202,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52251,7 +54219,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52267,7 +54236,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52283,7 +54253,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52299,7 +54270,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52315,7 +54287,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52331,7 +54304,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52347,7 +54321,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52363,7 +54338,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52379,7 +54355,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52395,7 +54372,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52411,7 +54389,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52427,7 +54406,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52443,7 +54423,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52459,7 +54440,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52475,7 +54457,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52491,7 +54474,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52507,7 +54491,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52523,7 +54508,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52539,7 +54525,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52555,7 +54542,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52571,7 +54559,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52587,7 +54576,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52603,7 +54593,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52619,7 +54610,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52635,7 +54627,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52651,7 +54644,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52667,7 +54661,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52683,7 +54678,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52699,7 +54695,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52715,7 +54712,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52731,7 +54729,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52747,7 +54746,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52763,7 +54763,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52779,7 +54780,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52795,7 +54797,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52811,7 +54814,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52827,7 +54831,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52843,7 +54848,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52859,7 +54865,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52875,7 +54882,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52891,7 +54899,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52907,7 +54916,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52923,7 +54933,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52939,7 +54950,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52955,7 +54967,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52971,7 +54984,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52987,7 +55001,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53003,7 +55018,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53019,7 +55035,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53035,7 +55052,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53051,7 +55069,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53067,7 +55086,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53083,7 +55103,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53099,7 +55120,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53115,7 +55137,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53131,7 +55154,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53147,7 +55171,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53163,7 +55188,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53179,7 +55205,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53195,7 +55222,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53211,7 +55239,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53227,7 +55256,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53243,7 +55273,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53259,7 +55290,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53275,7 +55307,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53291,7 +55324,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53307,7 +55341,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53323,7 +55358,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53339,7 +55375,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53355,7 +55392,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53371,7 +55409,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53387,7 +55426,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53403,7 +55443,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53419,7 +55460,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53435,7 +55477,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53451,7 +55494,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53467,7 +55511,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53483,7 +55528,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53499,7 +55545,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53515,7 +55562,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53531,7 +55579,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53547,7 +55596,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53563,7 +55613,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53579,7 +55630,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53595,7 +55647,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53611,7 +55664,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53627,7 +55681,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53643,7 +55698,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53659,7 +55715,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53675,7 +55732,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53691,7 +55749,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53707,7 +55766,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53723,7 +55783,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53739,7 +55800,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53755,7 +55817,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53771,7 +55834,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53787,7 +55851,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53803,7 +55868,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53819,7 +55885,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53835,7 +55902,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53851,7 +55919,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53867,7 +55936,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53883,7 +55953,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53899,7 +55970,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53915,7 +55987,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53931,7 +56004,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53947,7 +56021,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53963,7 +56038,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53979,7 +56055,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53995,7 +56072,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54011,7 +56089,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54027,7 +56106,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54043,7 +56123,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54059,7 +56140,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54075,7 +56157,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54091,7 +56174,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54107,7 +56191,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54123,7 +56208,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54139,7 +56225,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54155,7 +56242,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54171,7 +56259,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54187,7 +56276,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54203,7 +56293,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54219,7 +56310,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54235,7 +56327,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54251,7 +56344,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54267,7 +56361,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54283,7 +56378,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54299,7 +56395,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54315,7 +56412,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54331,7 +56429,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54347,7 +56446,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54363,7 +56463,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54379,7 +56480,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54395,7 +56497,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54411,7 +56514,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54427,7 +56531,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54443,7 +56548,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54459,7 +56565,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54475,7 +56582,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54491,7 +56599,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54507,7 +56616,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54523,7 +56633,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54539,7 +56650,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54555,7 +56667,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54571,7 +56684,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54587,7 +56701,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54603,7 +56718,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54619,7 +56735,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54635,7 +56752,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54651,7 +56769,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54667,7 +56786,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54683,7 +56803,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54699,7 +56820,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54715,7 +56837,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54731,7 +56854,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54747,7 +56871,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54763,7 +56888,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54779,7 +56905,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54795,7 +56922,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54811,7 +56939,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54827,7 +56956,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54843,7 +56973,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54859,7 +56990,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54875,7 +57007,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54891,7 +57024,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54907,7 +57041,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54923,7 +57058,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54939,7 +57075,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54955,7 +57092,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54971,7 +57109,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54987,7 +57126,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55003,7 +57143,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55019,7 +57160,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55035,7 +57177,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55051,7 +57194,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55067,7 +57211,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55083,7 +57228,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55099,7 +57245,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55115,7 +57262,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55131,7 +57279,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55147,7 +57296,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55163,7 +57313,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55179,7 +57330,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55195,7 +57347,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55211,7 +57364,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55227,7 +57381,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55243,7 +57398,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55259,7 +57415,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55275,7 +57432,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55291,7 +57449,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55307,7 +57466,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55323,7 +57483,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55339,7 +57500,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55355,7 +57517,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55371,7 +57534,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55387,7 +57551,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55403,7 +57568,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55419,7 +57585,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55435,7 +57602,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55451,7 +57619,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55467,7 +57636,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55483,7 +57653,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55499,7 +57670,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55515,7 +57687,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55531,7 +57704,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55547,7 +57721,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55563,7 +57738,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55579,7 +57755,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55595,7 +57772,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55611,7 +57789,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55627,7 +57806,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55643,7 +57823,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55659,7 +57840,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55675,7 +57857,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55691,7 +57874,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55707,7 +57891,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55723,7 +57908,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55739,7 +57925,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55755,7 +57942,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55771,7 +57959,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55787,7 +57976,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55803,7 +57993,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55819,7 +58010,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55835,7 +58027,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55851,7 +58044,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55867,7 +58061,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55883,7 +58078,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55899,7 +58095,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55915,7 +58112,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55931,7 +58129,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55947,7 +58146,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55963,7 +58163,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55979,7 +58180,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55995,7 +58197,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56011,7 +58214,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56027,7 +58231,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56043,7 +58248,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56059,7 +58265,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56075,7 +58282,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56091,7 +58299,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56107,7 +58316,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56123,7 +58333,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56139,7 +58350,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56155,7 +58367,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56171,7 +58384,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56187,7 +58401,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56203,7 +58418,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56219,7 +58435,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56235,7 +58452,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56251,7 +58469,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56267,7 +58486,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56283,7 +58503,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56299,7 +58520,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56315,7 +58537,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56331,7 +58554,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56347,7 +58571,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56363,7 +58588,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56379,7 +58605,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56395,7 +58622,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56411,7 +58639,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56427,7 +58656,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56443,7 +58673,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56459,7 +58690,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56475,7 +58707,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56491,7 +58724,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56507,7 +58741,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56523,7 +58758,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56539,7 +58775,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56555,7 +58792,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56571,7 +58809,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56587,7 +58826,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56603,7 +58843,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56619,7 +58860,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56635,7 +58877,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56651,7 +58894,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56667,7 +58911,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56683,7 +58928,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56699,7 +58945,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56715,7 +58962,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56731,7 +58979,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56747,7 +58996,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56763,7 +59013,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56779,7 +59030,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56795,7 +59047,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56811,7 +59064,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56827,7 +59081,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56843,7 +59098,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56859,7 +59115,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56875,7 +59132,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56891,7 +59149,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56907,7 +59166,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56923,7 +59183,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56939,7 +59200,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56955,7 +59217,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56971,7 +59234,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56987,7 +59251,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57003,7 +59268,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57019,7 +59285,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57035,7 +59302,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57051,7 +59319,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57067,7 +59336,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57083,7 +59353,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57099,7 +59370,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57115,7 +59387,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57131,7 +59404,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57147,7 +59421,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57163,7 +59438,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57179,7 +59455,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57195,7 +59472,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57211,7 +59489,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57227,7 +59506,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57243,7 +59523,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57259,7 +59540,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57275,7 +59557,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57291,7 +59574,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57307,7 +59591,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57323,7 +59608,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57339,7 +59625,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57355,7 +59642,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57371,7 +59659,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57387,7 +59676,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57403,7 +59693,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57419,7 +59710,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57435,7 +59727,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57451,7 +59744,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57467,7 +59761,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57483,7 +59778,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57499,7 +59795,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57515,7 +59812,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57531,7 +59829,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57547,7 +59846,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57563,7 +59863,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57579,7 +59880,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57595,7 +59897,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57611,7 +59914,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57627,7 +59931,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57643,7 +59948,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57659,7 +59965,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57675,7 +59982,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57691,7 +59999,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57707,7 +60016,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57723,7 +60033,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57739,7 +60050,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57755,7 +60067,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/03a72675e1969f836094f1ecfec2a7b34418e306"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57771,7 +60101,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/0416afd6875d9ba55f1e5f86a6456a5445d5e576"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57787,7 +60135,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57803,7 +60152,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57819,7 +60169,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57835,7 +60186,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57851,7 +60203,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57867,7 +60220,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57883,7 +60237,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57899,7 +60254,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57915,7 +60271,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/08c42ef29eff83052c5887855f2fa3e07ebe470c"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57931,7 +60305,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57947,7 +60322,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57963,7 +60339,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57979,7 +60356,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57995,7 +60373,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58011,7 +60390,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58027,7 +60407,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58043,7 +60424,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58059,7 +60441,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58075,7 +60458,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58091,7 +60475,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58107,7 +60492,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58123,7 +60509,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58139,7 +60526,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58155,7 +60543,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58171,7 +60560,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58187,7 +60577,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58203,7 +60594,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58219,7 +60611,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58235,7 +60628,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58251,7 +60645,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58267,7 +60662,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58283,7 +60679,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58299,7 +60696,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58315,7 +60713,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58331,7 +60730,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58347,7 +60747,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58363,7 +60764,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/1ba889ea1543297824e99e641e6ca8b91f45732e"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58379,7 +60798,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58395,7 +60815,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58411,7 +60832,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58427,7 +60849,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58443,7 +60866,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58459,7 +60883,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58475,7 +60900,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58491,7 +60917,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58507,7 +60934,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58523,7 +60951,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58539,7 +60968,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58555,7 +60985,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58571,7 +61002,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58587,7 +61019,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58603,7 +61036,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58619,7 +61053,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58635,7 +61070,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58651,7 +61087,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58667,7 +61104,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58683,7 +61121,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58699,7 +61138,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58715,7 +61155,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58731,7 +61172,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58747,7 +61189,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58763,7 +61206,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58779,7 +61223,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58795,7 +61240,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58811,7 +61257,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58827,7 +61274,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58843,7 +61291,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58859,7 +61308,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58875,7 +61325,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58891,7 +61342,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58907,7 +61359,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58923,7 +61376,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58939,7 +61393,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58955,7 +61410,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58971,7 +61427,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58987,7 +61444,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59003,7 +61461,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59019,7 +61478,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59035,7 +61495,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59051,7 +61512,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59067,7 +61529,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59083,7 +61546,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59099,7 +61563,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59115,7 +61580,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59131,7 +61597,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59147,7 +61614,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/3b09bf453c6f93983c24c4d5481e55d66213f93a"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59163,7 +61648,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59179,7 +61665,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59195,7 +61682,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59211,7 +61699,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59227,7 +61716,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59243,7 +61733,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59259,7 +61750,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59275,7 +61767,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59291,7 +61784,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59307,7 +61801,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59323,7 +61818,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59339,7 +61835,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59355,7 +61852,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59371,7 +61869,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59387,7 +61886,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59403,7 +61903,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59419,7 +61920,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59435,7 +61937,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59451,7 +61954,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59467,7 +61971,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59483,7 +61988,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59499,7 +62005,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/49cb33cbb60f041e8e99dd718993acd2c3354416"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59515,7 +62039,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59531,7 +62056,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59547,7 +62073,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59563,7 +62090,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59579,7 +62107,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59595,7 +62124,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59611,7 +62141,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59627,7 +62158,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59643,7 +62175,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59659,7 +62192,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59675,7 +62209,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59691,7 +62226,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59707,7 +62243,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59723,7 +62260,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59739,7 +62277,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59755,7 +62294,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59771,7 +62311,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59787,7 +62328,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59803,7 +62345,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59819,7 +62362,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59835,7 +62379,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59851,7 +62396,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59867,7 +62413,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59883,7 +62430,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59899,7 +62447,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59915,7 +62464,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59931,7 +62481,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59947,7 +62498,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/59743fe120be6ae1aed1c02230ee1bb460f621ee"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59963,7 +62532,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59979,7 +62549,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59995,7 +62566,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60011,7 +62583,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60027,7 +62600,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60043,7 +62617,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60059,7 +62634,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60075,7 +62651,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60091,7 +62668,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60107,7 +62685,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60123,7 +62702,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60139,7 +62719,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60155,7 +62736,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60171,7 +62753,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60187,7 +62770,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60203,7 +62787,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60219,7 +62804,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60235,7 +62821,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60251,7 +62838,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60267,7 +62855,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60283,7 +62872,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60299,7 +62889,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60315,7 +62906,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60331,7 +62923,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60347,7 +62940,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60363,7 +62957,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60379,7 +62974,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60395,7 +62991,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60411,7 +63008,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60427,7 +63025,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60443,7 +63042,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60459,7 +63059,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60475,7 +63076,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60491,7 +63093,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60507,7 +63110,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60523,7 +63127,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60539,7 +63144,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60555,7 +63161,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60571,7 +63178,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60587,7 +63195,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60603,7 +63212,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60619,7 +63229,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60635,7 +63246,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60651,7 +63263,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60667,7 +63280,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60683,7 +63297,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60699,7 +63314,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60715,7 +63331,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60731,7 +63348,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60747,7 +63365,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60763,7 +63382,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60779,7 +63399,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60795,7 +63416,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60811,7 +63433,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60827,7 +63450,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60843,7 +63467,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60859,7 +63484,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60875,7 +63501,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60891,7 +63518,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60907,7 +63535,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60923,7 +63552,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60939,7 +63569,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60955,7 +63586,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60971,7 +63603,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60987,7 +63620,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61003,7 +63637,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61019,7 +63654,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61035,7 +63671,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61051,7 +63688,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61067,7 +63705,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61083,7 +63722,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61099,7 +63739,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61115,7 +63756,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61131,7 +63773,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61147,7 +63790,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61163,7 +63807,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61179,7 +63824,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61195,7 +63841,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61211,7 +63858,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61227,7 +63875,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61243,7 +63892,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61259,7 +63909,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61275,7 +63926,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61291,7 +63943,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61307,7 +63960,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61323,7 +63977,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61339,7 +63994,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/a5ccb8f124d8ddb5350b90bc0d6b96db280cb7c9"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61355,7 +64028,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/a7fac1265a384fe9e45a9ee3d708b79c4e80505e"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61371,7 +64062,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61387,7 +64079,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61403,7 +64096,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61419,7 +64113,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61435,7 +64130,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61451,7 +64147,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61467,7 +64164,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61483,7 +64181,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61499,7 +64198,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/aaf049720c707d4e14e47e7eb31d6a2dda60e66a"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61515,7 +64232,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61531,7 +64249,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61547,7 +64266,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61563,7 +64283,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61579,7 +64300,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61595,7 +64317,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61611,7 +64334,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61627,7 +64351,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61643,7 +64368,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61659,7 +64385,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61675,7 +64402,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61691,7 +64419,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61707,7 +64436,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61723,7 +64453,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61739,7 +64470,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61755,7 +64487,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61771,7 +64504,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61787,7 +64521,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61803,7 +64538,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61819,7 +64555,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61835,7 +64572,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61851,7 +64589,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61867,7 +64606,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61883,7 +64623,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61899,7 +64640,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61915,7 +64657,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61931,7 +64674,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61947,7 +64691,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61963,7 +64708,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/c4e4c7572e005e18d56eac407033da058737a5ab"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61979,7 +64742,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61995,7 +64759,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62011,7 +64776,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62027,7 +64793,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62043,7 +64810,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62059,7 +64827,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62075,7 +64844,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62091,7 +64861,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62107,7 +64878,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62123,7 +64895,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62139,7 +64912,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62155,7 +64929,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62171,7 +64946,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62187,7 +64963,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62203,7 +64980,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62219,7 +64997,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62235,7 +65014,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62251,7 +65031,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62267,7 +65048,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/crash-dae0f07934a527989f23f06e630710ff6ca8c809"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62283,7 +65082,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62299,7 +65099,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62315,7 +65116,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62331,7 +65133,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62347,7 +65150,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62363,7 +65167,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62379,7 +65184,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62395,7 +65201,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62411,7 +65218,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62427,7 +65235,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62443,7 +65252,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62459,7 +65269,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62475,7 +65286,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62491,7 +65303,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62507,7 +65320,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62523,7 +65337,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62539,7 +65354,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62555,7 +65371,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62571,7 +65388,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62587,7 +65405,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/e96ad9c17795e52edc810a08d4fc61fe8790002a"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62603,7 +65439,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62619,7 +65456,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62635,7 +65473,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62651,7 +65490,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62667,7 +65507,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62683,7 +65524,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62699,7 +65541,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62715,7 +65558,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62731,7 +65575,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62747,7 +65592,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62763,7 +65609,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62779,7 +65626,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62795,7 +65643,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62811,7 +65660,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62827,7 +65677,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62843,7 +65694,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62859,7 +65711,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62875,7 +65728,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62891,7 +65745,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62907,7 +65762,25 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
+  }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/server_fuzzer_corpus/fa202a5f51cd49f8ea5af60c5f403f797c01c504"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "server_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62923,7 +65796,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62939,7 +65813,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62955,7 +65830,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62971,7 +65847,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62987,7 +65864,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63003,7 +65881,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63019,7 +65898,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63035,7 +65915,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63051,7 +65932,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63067,7 +65949,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63083,7 +65966,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63099,7 +65983,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63115,7 +66000,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63131,7 +66017,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63147,7 +66034,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63163,7 +66051,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63179,7 +66068,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63195,7 +66085,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63211,7 +66102,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63227,7 +66119,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63243,7 +66136,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63259,7 +66153,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63275,7 +66170,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63291,7 +66187,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63307,7 +66204,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63323,7 +66221,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63339,7 +66238,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63355,7 +66255,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63371,7 +66272,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63387,7 +66289,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63403,7 +66306,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63419,7 +66323,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63435,7 +66340,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63451,7 +66357,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63467,7 +66374,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63483,7 +66391,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63499,7 +66408,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63515,7 +66425,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63531,7 +66442,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63547,7 +66459,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63563,7 +66476,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63579,7 +66493,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63595,7 +66510,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63611,7 +66527,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63627,7 +66544,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63643,7 +66561,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63659,7 +66578,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63675,7 +66595,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63691,7 +66612,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63707,7 +66629,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63723,7 +66646,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63739,7 +66663,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63755,7 +66680,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63771,7 +66697,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63787,7 +66714,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63803,7 +66731,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63819,7 +66748,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63835,7 +66765,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63851,7 +66782,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63867,7 +66799,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63883,7 +66816,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63899,7 +66833,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63915,7 +66850,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63931,7 +66867,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63947,7 +66884,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63963,7 +66901,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63979,7 +66918,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63995,7 +66935,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64011,7 +66952,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64027,7 +66969,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64043,7 +66986,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64059,7 +67003,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64075,7 +67020,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64091,7 +67037,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64107,7 +67054,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64123,7 +67071,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64139,7 +67088,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64155,7 +67105,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64171,7 +67122,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64187,7 +67139,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64203,7 +67156,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64219,7 +67173,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64235,7 +67190,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64251,7 +67207,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64267,7 +67224,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64283,7 +67241,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64299,7 +67258,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64315,7 +67275,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64331,7 +67292,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64347,7 +67309,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64363,7 +67326,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64379,7 +67343,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64395,7 +67360,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64411,7 +67377,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64427,7 +67394,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64443,7 +67411,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64459,7 +67428,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64475,7 +67445,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64491,7 +67462,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64507,7 +67479,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64523,7 +67496,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64539,7 +67513,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64555,7 +67530,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64571,7 +67547,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64587,7 +67564,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64603,7 +67581,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64619,7 +67598,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64635,7 +67615,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64651,7 +67632,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64667,7 +67649,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64683,7 +67666,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64699,7 +67683,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64715,7 +67700,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64731,7 +67717,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64747,7 +67734,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64763,7 +67751,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64779,6 +67768,7 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }
 ]
diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln
index bdae447..be8b5d4 100644
--- a/vsprojects/buildtests_c.sln
+++ b/vsprojects/buildtests_c.sln
@@ -1095,6 +1095,18 @@
 		{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
 	EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "large_metadata_bad_client_test", "vcxproj\test\large_metadata_bad_client_test\large_metadata_bad_client_test.vcxproj", "{B706A9EC-7982-0DBC-495D-07B165F6CF56}"
+	ProjectSection(myProperties) = preProject
+        	lib = "False"
+	EndProjectSection
+	ProjectSection(ProjectDependencies) = postProject
+		{BA67B418-B699-E41A-9CC4-0279C49481A5} = {BA67B418-B699-E41A-9CC4-0279C49481A5}
+		{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF} = {0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}
+		{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}
+		{EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037}
+		{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+	EndProjectSection
+EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server_registered_method_bad_client_test", "vcxproj\test\server_registered_method_bad_client_test\server_registered_method_bad_client_test.vcxproj", "{B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}"
 	ProjectSection(myProperties) = preProject
         	lib = "False"
@@ -3087,6 +3099,22 @@
 		{6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|Win32.Build.0 = Release|Win32
 		{6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.ActiveCfg = Release|x64
 		{6756895E-05BF-8CC7-58F2-868DF0C0300C}.Release-DLL|x64.Build.0 = Release|x64
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|Win32.ActiveCfg = Debug|Win32
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|x64.ActiveCfg = Debug|x64
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|Win32.ActiveCfg = Release|Win32
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|x64.ActiveCfg = Release|x64
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|Win32.Build.0 = Debug|Win32
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug|x64.Build.0 = Debug|x64
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|Win32.Build.0 = Release|Win32
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release|x64.Build.0 = Release|x64
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|Win32.Build.0 = Debug|Win32
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|x64.ActiveCfg = Debug|x64
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Debug-DLL|x64.Build.0 = Debug|x64
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|Win32.ActiveCfg = Release|Win32
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|Win32.Build.0 = Release|Win32
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|x64.ActiveCfg = Release|x64
+		{B706A9EC-7982-0DBC-495D-07B165F6CF56}.Release-DLL|x64.Build.0 = Release|x64
 		{B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|Win32.ActiveCfg = Debug|Win32
 		{B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Debug|x64.ActiveCfg = Debug|x64
 		{B4E7CD82-988A-BD3A-29F8-8590D3A8BC28}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
index 29cab37..65de5e9 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
@@ -275,6 +275,8 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\rpc_service_method.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\serialization_traits.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_option.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_plugin.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_initializer.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\service_type.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\sync.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\sync_cxx11.h" />
@@ -331,6 +333,7 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
index 15e2807..ce50bd9 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
@@ -147,6 +147,12 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_option.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_plugin.h">
+      <Filter>include\grpc++\impl</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_initializer.h">
+      <Filter>include\grpc++\impl</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\service_type.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
@@ -315,6 +321,9 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h">
+      <Filter>include\grpc\impl\codegen</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
index fcda361..895e223 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
@@ -275,6 +275,8 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\rpc_service_method.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\serialization_traits.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_option.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_plugin.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_initializer.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\service_type.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\sync.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\sync_cxx11.h" />
@@ -331,6 +333,7 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index 1dc95f9..ab305fa 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
@@ -132,6 +132,12 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_option.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_builder_plugin.h">
+      <Filter>include\grpc++\impl</Filter>
+    </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\server_initializer.h">
+      <Filter>include\grpc++\impl</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\service_type.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
@@ -300,6 +306,9 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h">
+      <Filter>include\grpc\impl\codegen</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index 4eec05a..a20d386 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -273,6 +273,7 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
@@ -292,6 +293,7 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_cronet.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security_constants.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h" />
@@ -315,6 +317,7 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h" />
@@ -421,8 +424,9 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_call_holder.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\objective_c\Cronet\cronet_c_for_grpc.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1\load_balancer.pb.h" />
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h" />
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_common.h" />
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_decode.h" />
@@ -473,6 +477,8 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
@@ -727,9 +733,15 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\client\secure\cronet_channel_create.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\transport\cronet_api_dummy.c">
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\transport\cronet_transport.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1\load_balancer.pb.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\third_party\nanopb\pb_common.c">
     </ClCompile>
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index 17c88c4..d546517 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -58,6 +58,9 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
       <Filter>src\core\lib\iomgr</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.c">
+      <Filter>src\core\lib\iomgr</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
       <Filter>src\core\lib\iomgr</Filter>
     </ClCompile>
@@ -439,11 +442,20 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
       <Filter>src\core\ext\transport\chttp2\client\insecure</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\client\secure\cronet_channel_create.c">
+      <Filter>src\core\ext\transport\cronet\client\secure</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\transport\cronet_api_dummy.c">
+      <Filter>src\core\ext\transport\cronet\transport</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\cronet\transport\cronet_transport.c">
+      <Filter>src\core\ext\transport\cronet\transport</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
       <Filter>src\core\ext\lb_policy\grpclb</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
-      <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0</Filter>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1\load_balancer.pb.c">
+      <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1</Filter>
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\third_party\nanopb\pb_common.c">
       <Filter>third_party\nanopb</Filter>
@@ -516,6 +528,9 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h">
+      <Filter>include\grpc\impl\codegen</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
@@ -573,6 +588,9 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_cronet.h">
+      <Filter>include\grpc</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security.h">
       <Filter>include\grpc</Filter>
     </ClInclude>
@@ -638,6 +656,9 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h">
       <Filter>src\core\lib\iomgr</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.h">
+      <Filter>src\core\lib\iomgr</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h">
       <Filter>src\core\lib\iomgr</Filter>
     </ClInclude>
@@ -956,11 +977,14 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h">
       <Filter>src\core\ext\client_config</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\third_party\objective_c\Cronet\cronet_c_for_grpc.h">
+      <Filter>third_party\objective_c\Cronet</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
       <Filter>src\core\ext\lb_policy\grpclb</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h">
-      <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0</Filter>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1\load_balancer.pb.h">
+      <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1</Filter>
     </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h">
       <Filter>third_party\nanopb</Filter>
@@ -1037,8 +1061,8 @@
     <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb">
       <UniqueIdentifier>{adf7e553-94ef-14fd-e845-03104f00a06f}</UniqueIdentifier>
     </Filter>
-    <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0">
-      <UniqueIdentifier>{0406d191-8817-38c3-a562-e3541201f424}</UniqueIdentifier>
+    <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1">
+      <UniqueIdentifier>{bc357e2d-8ddd-a688-88a3-255228fc0818}</UniqueIdentifier>
     </Filter>
     <Filter Include="src\core\ext\lb_policy\pick_first">
       <UniqueIdentifier>{b63ded00-b24f-708e-333f-ce199e421875}</UniqueIdentifier>
@@ -1088,6 +1112,18 @@
     <Filter Include="src\core\ext\transport\chttp2\transport">
       <UniqueIdentifier>{6f34254e-e69f-c9b4-156d-5024bade5408}</UniqueIdentifier>
     </Filter>
+    <Filter Include="src\core\ext\transport\cronet">
+      <UniqueIdentifier>{1e9c85e9-5522-7ef8-0017-7e19990a6194}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\core\ext\transport\cronet\client">
+      <UniqueIdentifier>{d0530883-75d9-b5f7-d594-26735a70ac7b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\core\ext\transport\cronet\client\secure">
+      <UniqueIdentifier>{4fa6fe90-b7a8-5c8f-d629-db1e68d89eed}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\core\ext\transport\cronet\transport">
+      <UniqueIdentifier>{31518af8-5860-6d0d-ff78-4059fce29ec2}</UniqueIdentifier>
+    </Filter>
     <Filter Include="src\core\lib">
       <UniqueIdentifier>{5b2ded3f-84a5-f6b4-2060-286c7d1dc945}</UniqueIdentifier>
     </Filter>
@@ -1130,6 +1166,12 @@
     <Filter Include="third_party\nanopb">
       <UniqueIdentifier>{93d6596d-330c-1d27-6f84-3c840e57869e}</UniqueIdentifier>
     </Filter>
+    <Filter Include="third_party\objective_c">
+      <UniqueIdentifier>{3a56a516-857e-d2aa-95cc-11685baf4e8c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="third_party\objective_c\Cronet">
+      <UniqueIdentifier>{a165c6e3-0776-6f40-7351-d7865668e220}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
 </Project>
 
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
index 26050dc..09748f0 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -264,6 +264,7 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
@@ -304,6 +305,7 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h" />
@@ -397,7 +399,7 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h" />
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h" />
-    <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h" />
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1\load_balancer.pb.h" />
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h" />
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_common.h" />
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_decode.h" />
@@ -450,6 +452,8 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
@@ -668,7 +672,7 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1\load_balancer.pb.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\third_party\nanopb\pb_common.c">
     </ClCompile>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index a4acf51..a85bfee 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -61,6 +61,9 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
       <Filter>src\core\lib\iomgr</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.c">
+      <Filter>src\core\lib\iomgr</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
       <Filter>src\core\lib\iomgr</Filter>
     </ClCompile>
@@ -388,8 +391,8 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
       <Filter>src\core\ext\lb_policy\grpclb</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
-      <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0</Filter>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1\load_balancer.pb.c">
+      <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1</Filter>
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\third_party\nanopb\pb_common.c">
       <Filter>third_party\nanopb</Filter>
@@ -456,6 +459,9 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h">
+      <Filter>include\grpc\impl\codegen</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
@@ -572,6 +578,9 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h">
       <Filter>src\core\lib\iomgr</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_posix.h">
+      <Filter>src\core\lib\iomgr</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h">
       <Filter>src\core\lib\iomgr</Filter>
     </ClInclude>
@@ -851,8 +860,8 @@
     <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
       <Filter>src\core\ext\lb_policy\grpclb</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h">
-      <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0</Filter>
+    <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1\load_balancer.pb.h">
+      <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1</Filter>
     </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h">
       <Filter>third_party\nanopb</Filter>
@@ -929,8 +938,8 @@
     <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb">
       <UniqueIdentifier>{21858d9d-30b5-8847-5882-6b47df0fa293}</UniqueIdentifier>
     </Filter>
-    <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0">
-      <UniqueIdentifier>{1795a20b-3e7c-e27d-eae1-96582fa9a958}</UniqueIdentifier>
+    <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb\v1">
+      <UniqueIdentifier>{e9256e96-ea3d-c1fd-6426-9d53d9f08f66}</UniqueIdentifier>
     </Filter>
     <Filter Include="src\core\ext\lb_policy\pick_first">
       <UniqueIdentifier>{e27f9ecf-97bb-1a2e-3135-a41f732dcf55}</UniqueIdentifier>
diff --git a/vsprojects/vcxproj/test/codegen_test_full/codegen_test_full.vcxproj b/vsprojects/vcxproj/test/codegen_test_full/codegen_test_full.vcxproj
index cd0b40c..34e939c 100644
--- a/vsprojects/vcxproj/test/codegen_test_full/codegen_test_full.vcxproj
+++ b/vsprojects/vcxproj/test/codegen_test_full/codegen_test_full.vcxproj
@@ -191,6 +191,7 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
diff --git a/vsprojects/vcxproj/test/codegen_test_full/codegen_test_full.vcxproj.filters b/vsprojects/vcxproj/test/codegen_test_full/codegen_test_full.vcxproj.filters
index 029b8ef..d662365 100644
--- a/vsprojects/vcxproj/test/codegen_test_full/codegen_test_full.vcxproj.filters
+++ b/vsprojects/vcxproj/test/codegen_test_full/codegen_test_full.vcxproj.filters
@@ -120,6 +120,9 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h">
+      <Filter>include\grpc\impl\codegen</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
diff --git a/vsprojects/vcxproj/test/codegen_test_minimal/codegen_test_minimal.vcxproj b/vsprojects/vcxproj/test/codegen_test_minimal/codegen_test_minimal.vcxproj
index 6d138fa..890d77d 100644
--- a/vsprojects/vcxproj/test/codegen_test_minimal/codegen_test_minimal.vcxproj
+++ b/vsprojects/vcxproj/test/codegen_test_minimal/codegen_test_minimal.vcxproj
@@ -191,6 +191,7 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
diff --git a/vsprojects/vcxproj/test/codegen_test_minimal/codegen_test_minimal.vcxproj.filters b/vsprojects/vcxproj/test/codegen_test_minimal/codegen_test_minimal.vcxproj.filters
index dc3f0b2..4e0ba65 100644
--- a/vsprojects/vcxproj/test/codegen_test_minimal/codegen_test_minimal.vcxproj.filters
+++ b/vsprojects/vcxproj/test/codegen_test_minimal/codegen_test_minimal.vcxproj.filters
@@ -120,6 +120,9 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h">
+      <Filter>include\grpc\impl\codegen</Filter>
+    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
       <Filter>include\grpc\impl\codegen</Filter>
     </ClInclude>
diff --git a/vsprojects/vcxproj/test/grpclb_api_test/grpclb_api_test.vcxproj b/vsprojects/vcxproj/test/grpclb_api_test/grpclb_api_test.vcxproj
index 1509ece..91b11a1 100644
--- a/vsprojects/vcxproj/test/grpclb_api_test/grpclb_api_test.vcxproj
+++ b/vsprojects/vcxproj/test/grpclb_api_test/grpclb_api_test.vcxproj
@@ -160,13 +160,13 @@
   </ItemDefinitionGroup>
 
   <ItemGroup>
-    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\lb\v0\load_balancer.pb.cc">
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\lb\v1\load_balancer.pb.cc">
     </ClCompile>
-    <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\lb\v0\load_balancer.pb.h">
+    <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\lb\v1\load_balancer.pb.h">
     </ClInclude>
-    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\lb\v0\load_balancer.grpc.pb.cc">
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\lb\v1\load_balancer.grpc.pb.cc">
     </ClCompile>
-    <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\lb\v0\load_balancer.grpc.pb.h">
+    <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\lb\v1\load_balancer.grpc.pb.h">
     </ClInclude>
     <ClCompile Include="$(SolutionDir)\..\test\cpp\grpclb\grpclb_api_test.cc">
     </ClCompile>
diff --git a/vsprojects/vcxproj/test/grpclb_api_test/grpclb_api_test.vcxproj.filters b/vsprojects/vcxproj/test/grpclb_api_test/grpclb_api_test.vcxproj.filters
index 6c57b8c..50f0a3e 100644
--- a/vsprojects/vcxproj/test/grpclb_api_test/grpclb_api_test.vcxproj.filters
+++ b/vsprojects/vcxproj/test/grpclb_api_test/grpclb_api_test.vcxproj.filters
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
-    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\lb\v0\load_balancer.proto">
-      <Filter>src\proto\grpc\lb\v0</Filter>
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\lb\v1\load_balancer.proto">
+      <Filter>src\proto\grpc\lb\v1</Filter>
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\test\cpp\grpclb\grpclb_api_test.cc">
       <Filter>test\cpp\grpclb</Filter>
@@ -22,8 +22,8 @@
     <Filter Include="src\proto\grpc\lb">
       <UniqueIdentifier>{2981699e-c196-c599-bc17-c177770f89ee}</UniqueIdentifier>
     </Filter>
-    <Filter Include="src\proto\grpc\lb\v0">
-      <UniqueIdentifier>{3d04774a-1c2f-e100-435e-08af5d539250}</UniqueIdentifier>
+    <Filter Include="src\proto\grpc\lb\v1">
+      <UniqueIdentifier>{6cce8ddf-d9a9-1d71-0810-d1e6f8685d76}</UniqueIdentifier>
     </Filter>
     <Filter Include="test">
       <UniqueIdentifier>{64736e1d-eb77-664f-34ab-6cf41263d3d8}</UniqueIdentifier>
diff --git a/vsprojects/vcxproj/test/large_metadata_bad_client_test/large_metadata_bad_client_test.vcxproj b/vsprojects/vcxproj/test/large_metadata_bad_client_test/large_metadata_bad_client_test.vcxproj
new file mode 100644
index 0000000..0a14694
--- /dev/null
+++ b/vsprojects/vcxproj/test/large_metadata_bad_client_test/large_metadata_bad_client_test.vcxproj
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\1.0.204.1.props')" />
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{B706A9EC-7982-0DBC-495D-07B165F6CF56}</ProjectGuid>
+    <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+    <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+    <PlatformToolset>v110</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+    <PlatformToolset>v140</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+    <Import Project="$(SolutionDir)\..\vsprojects\openssl.props" />
+    <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+    <Import Project="$(SolutionDir)\..\vsprojects\zlib.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+    <TargetName>large_metadata_bad_client_test</TargetName>
+    <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+    <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib>
+    <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+    <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)'=='Release'">
+    <TargetName>large_metadata_bad_client_test</TargetName>
+    <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+    <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib>
+    <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+    <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl>
+  </PropertyGroup>
+    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+      <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+      <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+
+    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+      <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+      <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+
+    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+      <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+      <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+
+    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+      <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+      <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+
+  <ItemGroup>
+    <ClCompile Include="$(SolutionDir)\..\test\core\bad_client\tests\large_metadata.c">
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\test/bad_client\bad_client_test\bad_client_test.vcxproj">
+      <Project>{BA67B418-B699-E41A-9CC4-0279C49481A5}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_test_util_unsecure\grpc_test_util_unsecure.vcxproj">
+      <Project>{0A7E7F92-FDEA-40F1-A9EC-3BA484F98BBF}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_unsecure\grpc_unsecure.vcxproj">
+      <Project>{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr_test_util\gpr_test_util.vcxproj">
+      <Project>{EAB0A629-17A9-44DB-B5FF-E91A721FE037}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+      <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+  </ImportGroup>
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" />
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" />
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" />
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" />
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" />
+  </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/large_metadata_bad_client_test/large_metadata_bad_client_test.vcxproj.filters b/vsprojects/vcxproj/test/large_metadata_bad_client_test/large_metadata_bad_client_test.vcxproj.filters
new file mode 100644
index 0000000..5eb9a5e
--- /dev/null
+++ b/vsprojects/vcxproj/test/large_metadata_bad_client_test/large_metadata_bad_client_test.vcxproj.filters
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <ClCompile Include="$(SolutionDir)\..\test\core\bad_client\tests\large_metadata.c">
+      <Filter>test\core\bad_client\tests</Filter>
+    </ClCompile>
+  </ItemGroup>
+
+  <ItemGroup>
+    <Filter Include="test">
+      <UniqueIdentifier>{6c1eb0cb-9d82-f961-7220-1f6edc913666}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="test\core">
+      <UniqueIdentifier>{79d5006f-93a1-aa0e-2568-37aa63eef567}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="test\core\bad_client">
+      <UniqueIdentifier>{dbde5995-24a0-2332-4bee-0540ed3aa848}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="test\core\bad_client\tests">
+      <UniqueIdentifier>{5cf4a13f-ae24-fd98-eb59-b5301f30367c}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj b/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj
new file mode 100644
index 0000000..0ebdd98
--- /dev/null
+++ b/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\1.0.204.1.props')" />
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{86751DC8-C8D9-57B6-2C8A-BB33021C773C}</ProjectGuid>
+    <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+    <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+    <PlatformToolset>v100</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+    <PlatformToolset>v110</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+    <PlatformToolset>v140</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(SolutionDir)\..\vsprojects\cpptest.props" />
+    <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+    <Import Project="$(SolutionDir)\..\vsprojects\openssl.props" />
+    <Import Project="$(SolutionDir)\..\vsprojects\protobuf.props" />
+    <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+    <Import Project="$(SolutionDir)\..\vsprojects\zlib.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+    <TargetName>server_builder_plugin_test</TargetName>
+    <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+    <Configuration-grpc_dependencies_zlib>Debug</Configuration-grpc_dependencies_zlib>
+    <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+    <Configuration-grpc_dependencies_openssl>Debug</Configuration-grpc_dependencies_openssl>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)'=='Release'">
+    <TargetName>server_builder_plugin_test</TargetName>
+    <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+    <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib>
+    <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+    <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl>
+  </PropertyGroup>
+    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+      <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+      <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+
+    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+      <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+      <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+
+    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+      <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+      <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+
+    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <TreatWarningAsError>true</TreatWarningAsError>
+      <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+      <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+      <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+
+  <ItemGroup>
+    <ClCompile Include="$(SolutionDir)\..\test\cpp\end2end\server_builder_plugin_test.cc">
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_test_util\grpc++_test_util.vcxproj">
+      <Project>{0BE77741-552A-929B-A497-4EF7ECE17A64}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_test_util\grpc_test_util.vcxproj">
+      <Project>{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj">
+      <Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj">
+      <Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr_test_util\gpr_test_util.vcxproj">
+      <Project>{EAB0A629-17A9-44DB-B5FF-E91A721FE037}</Project>
+    </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+      <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+  <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+  </ImportGroup>
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" />
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" />
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" />
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" />
+    <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" />
+  </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj.filters b/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj.filters
new file mode 100644
index 0000000..629b913
--- /dev/null
+++ b/vsprojects/vcxproj/test/server_builder_plugin_test/server_builder_plugin_test.vcxproj.filters
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <ClCompile Include="$(SolutionDir)\..\test\cpp\end2end\server_builder_plugin_test.cc">
+      <Filter>test\cpp\end2end</Filter>
+    </ClCompile>
+  </ItemGroup>
+
+  <ItemGroup>
+    <Filter Include="test">
+      <UniqueIdentifier>{37b2ebc1-b2f2-ecb9-37b7-f6d757bb99e3}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="test\cpp">
+      <UniqueIdentifier>{39400fed-f7b7-0f44-0ef3-ba3693d42011}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="test\cpp\end2end">
+      <UniqueIdentifier>{dab9dd19-3e5b-005e-4b5a-456de6111d71}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+</Project>
+
