Merge pull request #6542 from ctiller/ecterm

Let execution contexts signal that they are done
diff --git a/BUILD b/BUILD
index ad6903d..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,6 +286,7 @@
     "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/v1/load_balancer.pb.h",
     "src/core/ext/census/aggregation.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,6 +442,9 @@
     "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/v1/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
@@ -483,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",
@@ -525,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",
@@ -645,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",
@@ -892,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",
@@ -1038,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",
@@ -1333,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",
@@ -1460,6 +1474,9 @@
     "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/v1/load_balancer.pb.c",
     "src/core/ext/lb_policy/pick_first/pick_first.c",
@@ -1504,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",
@@ -1525,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",
@@ -1631,6 +1650,7 @@
     "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/v1/load_balancer.pb.h",
     "src/core/ext/census/aggregation.h",
diff --git a/Makefile b/Makefile
index 1ff2cb6..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
 
@@ -1042,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
@@ -1410,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 \
@@ -1743,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"
@@ -2507,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 \
@@ -2634,6 +2639,9 @@
     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/v1/load_balancer.pb.c \
     third_party/nanopb/pb_common.c \
@@ -2681,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 \
@@ -2849,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 \
@@ -3213,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 \
@@ -3517,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 \
@@ -11494,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 \
 
@@ -14348,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 8bc2aee..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,6 +710,9 @@
         '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/v1/load_balancer.pb.c',
         'third_party/nanopb/pb_common.c',
diff --git a/build.yaml b/build.yaml
index b2cbd4d..ac61612 100644
--- a/build.yaml
+++ b/build.yaml
@@ -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
@@ -400,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:
@@ -547,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
@@ -591,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
@@ -734,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
@@ -2915,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
@@ -3240,14 +3269,16 @@
     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:
diff --git a/config.m4 b/config.m4
index c8d2aae..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,6 +229,9 @@
     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/v1/load_balancer.pb.c \
     third_party/nanopb/pb_common.c \
@@ -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/csharp/helloworld/generate_protos.bat b/examples/csharp/helloworld/generate_protos.bat
index 99f81a7..3be1ceb 100644
--- a/examples/csharp/helloworld/generate_protos.bat
+++ b/examples/csharp/helloworld/generate_protos.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Generate the C# code for .proto files
 
 setlocal
diff --git a/examples/csharp/route_guide/generate_protos.bat b/examples/csharp/route_guide/generate_protos.bat
index 12be52c..b3c5136 100644
--- a/examples/csharp/route_guide/generate_protos.bat
+++ b/examples/csharp/route_guide/generate_protos.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Generate the C# code for .proto files
 
 setlocal
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/gRPC.podspec b/gRPC.podspec
index 3937332..67e7a81 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -182,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',
@@ -288,6 +289,7 @@
                       '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/v1/load_balancer.pb.h',
                       'third_party/nanopb/pb.h',
@@ -326,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',
@@ -348,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',
@@ -475,6 +479,9 @@
                       '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/v1/load_balancer.pb.c',
                       'third_party/nanopb/pb_common.c',
@@ -525,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',
@@ -631,6 +639,7 @@
                               '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/v1/load_balancer.pb.h',
                               'third_party/nanopb/pb.h',
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 240ea1c..13aed6b 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -169,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 )
@@ -190,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 )
@@ -296,6 +298,7 @@
   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/v1/load_balancer.pb.h )
   s.files += %w( third_party/nanopb/pb.h )
@@ -327,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 )
@@ -454,6 +458,9 @@
   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/v1/load_balancer.pb.c )
   s.files += %w( third_party/nanopb/pb_common.c )
diff --git a/include/grpc++/impl/codegen/proto_utils.h b/include/grpc++/impl/codegen/proto_utils.h
index d044ddc..3bad468 100644
--- a/include/grpc++/impl/codegen/proto_utils.h
+++ b/include/grpc++/impl/codegen/proto_utils.h
@@ -49,7 +49,7 @@
 
 extern CoreCodegenInterface* g_core_codegen_interface;
 
-namespace {
+namespace internal {
 
 const int kGrpcBufferWriterMaxBufferLength = 8192;
 
@@ -166,7 +166,7 @@
   grpc_byte_buffer_reader reader_;
   gpr_slice slice_;
 };
-}  // namespace
+}  // namespace internal
 
 template <class T>
 class SerializationTraits<T, typename std::enable_if<std::is_base_of<
@@ -176,7 +176,7 @@
                           grpc_byte_buffer** bp, bool* own_buffer) {
     *own_buffer = true;
     int byte_size = msg.ByteSize();
-    if (byte_size <= kGrpcBufferWriterMaxBufferLength) {
+    if (byte_size <= internal::kGrpcBufferWriterMaxBufferLength) {
       gpr_slice slice = g_core_codegen_interface->gpr_slice_malloc(byte_size);
       GPR_CODEGEN_ASSERT(
           GPR_SLICE_END_PTR(slice) ==
@@ -185,7 +185,8 @@
       g_core_codegen_interface->gpr_slice_unref(slice);
       return g_core_codegen_interface->ok();
     } else {
-      GrpcBufferWriter writer(bp, kGrpcBufferWriterMaxBufferLength);
+      internal::GrpcBufferWriter writer(
+          bp, internal::kGrpcBufferWriterMaxBufferLength);
       return msg.SerializeToZeroCopyStream(&writer)
                  ? g_core_codegen_interface->ok()
                  : Status(StatusCode::INTERNAL, "Failed to serialize message");
@@ -200,7 +201,7 @@
     }
     Status result = g_core_codegen_interface->ok();
     {
-      GrpcBufferReader reader(buffer);
+      internal::GrpcBufferReader reader(buffer);
       ::grpc::protobuf::io::CodedInputStream decoder(&reader);
       if (max_message_size > 0) {
         decoder.SetTotalBytesLimit(max_message_size, max_message_size);
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/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/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/package.xml b/package.xml
index 4c159e6..33a769a 100644
--- a/package.xml
+++ b/package.xml
@@ -176,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" />
@@ -197,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" />
@@ -303,6 +305,7 @@
     <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/v1/load_balancer.pb.h" role="src" />
     <file baseinstalldir="/" name="third_party/nanopb/pb.h" role="src" />
@@ -334,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" />
@@ -461,6 +465,9 @@
     <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/v1/load_balancer.pb.c" role="src" />
     <file baseinstalldir="/" name="third_party/nanopb/pb_common.c" role="src" />
diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc
index 8e76e6d..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,7 +196,7 @@
   }
   // 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;
 }
 
@@ -210,7 +228,7 @@
 
 bool PrintBetaServicer(const ServiceDescriptor* service,
                        Printer* out) {
-  out->Print("\n");
+  out->Print("\n\n");
   out->Print("class Beta$Service$Servicer(object):\n", "Service",
              service->name());
   {
@@ -234,7 +252,7 @@
 
 bool PrintBetaStub(const ServiceDescriptor* service,
                    Printer* out) {
-  out->Print("\n");
+  out->Print("\n\n");
   out->Print("class Beta$Service$Stub(object):\n", "Service", service->name());
   {
     IndentScope raii_class_indent(out);
@@ -244,7 +262,7 @@
       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);
@@ -260,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(
@@ -307,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");
@@ -324,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");
@@ -366,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(
@@ -412,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");
@@ -429,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");
@@ -463,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/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/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..e91ae40
--- /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;
+  gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
+  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_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;
+    } 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);
+    }
+  }
+  gpr_tls_set(&g_current_thread_poller, 0);
+  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/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/support/string_util_win32.c b/src/core/lib/support/string_util_win32.c
index f3cb0c0..0d7bcdb 100644
--- a/src/core/lib/support/string_util_win32.c
+++ b/src/core/lib/support/string_util_win32.c
@@ -83,7 +83,7 @@
   DWORD status = FormatMessage(
       FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
           FORMAT_MESSAGE_IGNORE_INSERTS,
-      NULL, (DWORD)messageid, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+      NULL, (DWORD)messageid, MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT),
       (LPTSTR)(&tmessage), 0, NULL);
   if (status == 0) return gpr_strdup("Unable to retrieve error string");
   message = gpr_tchar_to_char(tmessage);
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/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/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.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/build_packages.bat b/src/csharp/build_packages.bat
index 7520b0f..28e4262 100644
--- a/src/csharp/build_packages.bat
+++ b/src/csharp/build_packages.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Builds gRPC NuGet packages
 
 @rem Current package versions
diff --git a/src/csharp/buildall.bat b/src/csharp/buildall.bat
index f800756..0beb30c 100644
--- a/src/csharp/buildall.bat
+++ b/src/csharp/buildall.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Convenience script to build gRPC C# from command line
 
 setlocal
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/proto/grpc/reflection/v1alpha/reflection.proto b/src/proto/grpc/reflection/v1alpha/reflection.proto
new file mode 100644
index 0000000..276ff0e
--- /dev/null
+++ b/src/proto/grpc/reflection/v1alpha/reflection.proto
@@ -0,0 +1,151 @@
+// 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.
+
+// Service exported by server reflection
+
+syntax = "proto3";
+
+package grpc.reflection.v1alpha;
+
+service ServerReflection {
+  // The reflection service is structured as a bidirectional stream, ensuring
+  // all related requests go to a single server.
+  rpc ServerReflectionInfo(stream ServerReflectionRequest)
+      returns (stream ServerReflectionResponse);
+}
+
+// The message sent by the client when calling ServerReflectionInfo method.
+message ServerReflectionRequest {
+  string host = 1;
+  // To use reflection service, the client should set one of the following
+  // fields in message_request. The server distinguishes requests by their
+  // defined field and then handles them using corresponding methods.
+  oneof message_request {
+    // Find a proto file by the file name.
+    string file_by_filename = 3;
+
+    // Find the proto file that declares the given fully-qualified symbol name.
+    // This field should be a fully-qualified symbol name
+    // (e.g. <package>.<service>[.<method>] or <package>.<type>).
+    string file_containing_symbol = 4;
+
+    // Find the proto file which defines an extension extending the given
+    // message type with the given field number.
+    ExtensionRequest file_containing_extension = 5;
+
+    // Finds the tag numbers used by all known extensions of extendee_type, and
+    // appends them to ExtensionNumberResponse in an undefined order.
+    // Its corresponding method is best-effort: it's not guaranteed that the
+    // reflection service will implement this method, and it's not guaranteed
+    // that this method will provide all extensions. Returns
+    // StatusCode::UNIMPLEMENTED if it's not implemented.
+    // This field should be a fully-qualified type name. The format is
+    // <package>.<type>
+    string all_extension_numbers_of_type = 6;
+
+    // List the full names of registered services. The content will not be
+    // checked.
+    string list_services = 7;
+  }
+}
+
+// The type name and extension number sent by the client when requesting
+// file_containing_extension.
+message ExtensionRequest {
+  // Fully-qualified type name. The format should be <package>.<type>
+  string containing_type = 1;
+  int32 extension_number = 2;
+}
+
+// The message sent by the server to answer ServerReflectionInfo method.
+message ServerReflectionResponse {
+  string valid_host = 1;
+  ServerReflectionRequest original_request = 2;
+  // The server set one of the following fields accroding to the message_request
+  // in the request.
+  oneof message_response {
+    // This message is used to answer file_by_filename, file_containing_symbol,
+    // file_containing_extension requests with transitive dependencies. As
+    // the repeated label is not allowed in oneof fields, we use a
+    // FileDescriptorResponse message to encapsulate the repeated fields.
+    // The reflection service is allowed to avoid sending FileDescriptorProtos
+    // that were previously sent in response to earlier requests in the stream.
+    FileDescriptorResponse file_descriptor_response = 4;
+
+    // This message is used to answer all_extension_numbers_of_type requst.
+    ExtensionNumberResponse all_extension_numbers_response = 5;
+
+    // This message is used to answer list_services request.
+    ListServiceResponse list_services_response = 6;
+
+    // This message is used when an error occurs.
+    ErrorResponse error_response = 7;
+  }
+}
+
+// Serialized FileDescriptorProto messages sent by the server answering
+// a file_by_filename, file_containing_symbol, or file_containing_extension
+// request.
+message FileDescriptorResponse {
+  // Serialized FileDescriptorProto messages. We avoid taking a dependency on
+  // descriptor.proto, which uses proto2 only features, by making them opaque
+  // bytes instead.
+  repeated bytes file_descriptor_proto = 1;
+}
+
+// A list of extension numbers sent by the server answering
+// all_extension_numbers_of_type request.
+message ExtensionNumberResponse {
+  // Full name of the base type, including the package name. The format
+  // is <package>.<type>
+  string base_type_name = 1;
+  repeated int32 extension_number = 2;
+}
+
+// A list of ServiceResponse sent by the server answering list_services request.
+message ListServiceResponse {
+  // The information of each service may be expanded in the future, so we use
+  // ServiceResponse message to encapsulate it.
+  repeated ServiceResponse service = 1;
+}
+
+// The information of a single service used by ListServiceResponse to answer
+// list_services request.
+message ServiceResponse {
+  // Full name of a registered service, including its package name. The format
+  // is <package>.<service>
+  string name = 1;
+}
+
+// The error code and error message sent by the server when an error occurs.
+message ErrorResponse {
+  // This field uses the error codes defined in grpc::StatusCode.
+  int32 error_code = 1;
+  string error_message = 2;
+}
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/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/interfaces.py b/src/python/grpcio/grpc/beta/interfaces.py
index 33ca45a..24de9ad 100644
--- a/src/python/grpcio/grpc/beta/interfaces.py
+++ b/src/python/grpcio/grpc/beta/interfaces.py
@@ -235,7 +235,7 @@
     This method may be called at any time and is idempotent. Passing a smaller
     grace value than has been passed in a previous call will have the effect of
     stopping the Server sooner. Passing a larger grace value than has been
-    passed in a previous call will not have the effect of stopping the sooner
+    passed in a previous call will not have the effect of stopping the server
     later.
 
     Args:
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 4b98dc1..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,6 +223,9 @@
   '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/v1/load_balancer.pb.c',
   'third_party/nanopb/pb_common.c',
diff --git a/src/python/grpcio_health_checking/grpc/__init__.py b/src/python/grpcio/tests/health_check/__init__.py
similarity index 97%
rename from src/python/grpcio_health_checking/grpc/__init__.py
rename to src/python/grpcio/tests/health_check/__init__.py
index 7086519..100a624 100644
--- a/src/python/grpcio_health_checking/grpc/__init__.py
+++ b/src/python/grpcio/tests/health_check/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2015, Google Inc.
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -26,5 +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.
-
-
diff --git a/src/python/grpcio/tests/health_check/_health_servicer_test.py b/src/python/grpcio/tests/health_check/_health_servicer_test.py
new file mode 100644
index 0000000..1b63388
--- /dev/null
+++ b/src/python/grpcio/tests/health_check/_health_servicer_test.py
@@ -0,0 +1,75 @@
+# 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.
+
+"""Tests of grpc_health.health.v1.health."""
+
+import unittest
+
+from grpc_health.health.v1 import health
+from grpc_health.health.v1 import health_pb2
+
+
+class HealthServicerTest(unittest.TestCase):
+
+  def setUp(self):
+    self.servicer = health.HealthServicer()
+    self.servicer.set('', health_pb2.HealthCheckResponse.SERVING)
+    self.servicer.set('grpc.test.TestServiceServing',
+                      health_pb2.HealthCheckResponse.SERVING)
+    self.servicer.set('grpc.test.TestServiceUnknown',
+                      health_pb2.HealthCheckResponse.UNKNOWN)
+    self.servicer.set('grpc.test.TestServiceNotServing',
+                      health_pb2.HealthCheckResponse.NOT_SERVING)
+
+  def test_empty_service(self):
+    request = health_pb2.HealthCheckRequest()
+    resp = self.servicer.Check(request, None)
+    self.assertEqual(resp.status, health_pb2.HealthCheckResponse.SERVING)
+
+  def test_serving_service(self):
+    request = health_pb2.HealthCheckRequest(
+        service='grpc.test.TestServiceServing')
+    resp = self.servicer.Check(request, None)
+    self.assertEqual(resp.status, health_pb2.HealthCheckResponse.SERVING)
+
+  def test_unknown_serivce(self):
+    request = health_pb2.HealthCheckRequest(
+        service='grpc.test.TestServiceUnknown')
+    resp = self.servicer.Check(request, None)
+    self.assertEqual(resp.status, health_pb2.HealthCheckResponse.UNKNOWN)
+
+  def test_not_serving_service(self):
+    request = health_pb2.HealthCheckRequest(
+        service='grpc.test.TestServiceNotServing')
+    resp = self.servicer.Check(request, None)
+    self.assertEqual(resp.status, health_pb2.HealthCheckResponse.NOT_SERVING)
+
+
+if __name__ == '__main__':
+  unittest.main(verbosity=2)
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_health_checking/grpc/health/v1/health.proto b/src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto
similarity index 78%
copy from src/python/grpcio_health_checking/grpc/health/v1/health.proto
copy to src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto
index b0bac54..457543a 100644
--- a/src/python/grpcio_health_checking/grpc/health/v1/health.proto
+++ b/src/python/grpcio/tests/protoc_plugin/protos/payload/test_payload.proto
@@ -1,4 +1,4 @@
-// Copyright 2015, Google Inc.
+// Copyright 2016, Google Inc.
 // All rights reserved.
 //
 // Redistribution and use in source and binary forms, with or without
@@ -29,21 +29,23 @@
 
 syntax = "proto3";
 
-package grpc.health.v1;
+package grpc_protoc_plugin;
 
-message HealthCheckRequest {
-  string service = 1;
+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 HealthCheckResponse {
-  enum ServingStatus {
-    UNKNOWN = 0;
-    SERVING = 1;
-    NOT_SERVING = 2;
+message Payload {
+  PayloadType payload_type = 1;
+  oneof payload_body {
+    string payload_compressable = 2;
+    bytes payload_uncompressable = 3;
   }
-  ServingStatus status = 1;
-}
-
-service Health {
-  rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
 }
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_health_checking/grpc/health/v1/health.proto b/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
similarity index 82%
rename from src/python/grpcio_health_checking/grpc/health/v1/health.proto
rename to src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
index b0bac54..734fbda 100644
--- a/src/python/grpcio_health_checking/grpc/health/v1/health.proto
+++ b/src/python/grpcio/tests/protoc_plugin/protos/responses/test_responses.proto
@@ -29,21 +29,19 @@
 
 syntax = "proto3";
 
-package grpc.health.v1;
+import "protos/payload/test_payload.proto";
 
-message HealthCheckRequest {
-  string service = 1;
+package grpc_protoc_plugin;
+
+message SimpleResponse {
+  Payload payload = 1;
 }
 
-message HealthCheckResponse {
-  enum ServingStatus {
-    UNKNOWN = 0;
-    SERVING = 1;
-    NOT_SERVING = 2;
-  }
-  ServingStatus status = 1;
+message StreamingInputCallResponse {
+  // Aggregated size of payloads received from the client.
+  int32 aggregated_payload_size = 1;
 }
 
-service Health {
-  rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
+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/tests.json b/src/python/grpcio/tests/tests.json
index 84870aa..691062f 100644
--- a/src/python/grpcio/tests/tests.json
+++ b/src/python/grpcio/tests/tests.json
@@ -28,7 +28,8 @@
   "_face_interface_test.GenericInvokerBlockingInvocationInlineServiceTest", 
   "_face_interface_test.GenericInvokerFutureInvocationAsynchronousEventServiceTest", 
   "_face_interface_test.MultiCallableInvokerBlockingInvocationInlineServiceTest", 
-  "_face_interface_test.MultiCallableInvokerFutureInvocationAsynchronousEventServiceTest", 
+  "_face_interface_test.MultiCallableInvokerFutureInvocationAsynchronousEventServiceTest",
+  "_health_servicer_test.HealthServicerTest",
   "_implementations_test.ChannelCredentialsTest", 
   "_insecure_interop_test.InsecureInteropTest", 
   "_intermediary_low_test.CancellationTest", 
@@ -50,4 +51,4 @@
   "cygrpc_test.InsecureServerInsecureClient", 
   "cygrpc_test.SecureServerSecureClient", 
   "cygrpc_test.TypeSmokeTest"
-]
\ No newline at end of file
+]
diff --git a/src/python/grpcio/tests/unit/_cython/_channel_test.py b/src/python/grpcio/tests/unit/_cython/_channel_test.py
index 931cd90..3dc7a24 100644
--- a/src/python/grpcio/tests/unit/_cython/_channel_test.py
+++ b/src/python/grpcio/tests/unit/_cython/_channel_test.py
@@ -60,7 +60,7 @@
 def _in_parallel(behavior, arguments):
   threads = tuple(
       threading.Thread(target=behavior, args=arguments)
-      for _ in range(test_constants.PARALLELISM))
+      for _ in range(test_constants.THREAD_CONCURRENCY))
   for thread in threads:
     thread.start()
   for thread in threads:
diff --git a/src/python/grpcio/tests/unit/framework/common/test_constants.py b/src/python/grpcio/tests/unit/framework/common/test_constants.py
index 8d89101..b6682d3 100644
--- a/src/python/grpcio/tests/unit/framework/common/test_constants.py
+++ b/src/python/grpcio/tests/unit/framework/common/test_constants.py
@@ -49,8 +49,13 @@
 # The size of payloads to transmit in tests.
 PAYLOAD_SIZE = 256 * 1024 + 17
 
-# The parallelism to use in tests of parallel RPCs.
-PARALLELISM = 200
+# The concurrency to use in tests of concurrent RPCs that will not create as
+# many threads as RPCs.
+RPC_CONCURRENCY = 200
+
+# The concurrency to use in tests of concurrent RPCs that will create as many
+# threads as RPCs.
+THREAD_CONCURRENCY = 25
 
 # The size of thread pools to use in tests.
 POOL_SIZE = 10
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
index 6498924..e338aaa 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
@@ -146,13 +146,13 @@
         test_messages.verify(second_request, second_response, self)
 
   def testParallelInvocations(self):
-    pool = logging_pool.pool(test_constants.PARALLELISM)
+    pool = logging_pool.pool(test_constants.THREAD_CONCURRENCY)
     for (group, method), test_messages_sequence in (
         six.iteritems(self._digest.unary_unary_messages_sequences)):
       for test_messages in test_messages_sequence:
         requests = []
         response_futures = []
-        for _ in range(test_constants.PARALLELISM):
+        for _ in range(test_constants.THREAD_CONCURRENCY):
           request = test_messages.request()
           response_future = pool.submit(
               self._invoker.blocking(group, method), request,
@@ -168,13 +168,13 @@
     pool.shutdown(wait=True)
 
   def testWaitingForSomeButNotAllParallelInvocations(self):
-    pool = logging_pool.pool(test_constants.PARALLELISM)
+    pool = logging_pool.pool(test_constants.THREAD_CONCURRENCY)
     for (group, method), test_messages_sequence in (
         six.iteritems(self._digest.unary_unary_messages_sequences)):
       for test_messages in test_messages_sequence:
         requests = []
         response_futures_to_indices = {}
-        for index in range(test_constants.PARALLELISM):
+        for index in range(test_constants.THREAD_CONCURRENCY):
           request = test_messages.request()
           response_future = pool.submit(
               self._invoker.blocking(group, method), request,
@@ -184,7 +184,7 @@
 
         some_completed_response_futures_iterator = itertools.islice(
             futures.as_completed(response_futures_to_indices),
-            test_constants.PARALLELISM // 2)
+            test_constants.THREAD_CONCURRENCY // 2)
         for response_future in some_completed_response_futures_iterator:
           index = response_futures_to_indices[response_future]
           test_messages.verify(requests[index], response_future.result(), self)
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
index c3813d5..7916203 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
@@ -249,7 +249,7 @@
       for test_messages in test_messages_sequence:
         requests = []
         response_futures = []
-        for _ in range(test_constants.PARALLELISM):
+        for _ in range(test_constants.THREAD_CONCURRENCY):
           request = test_messages.request()
           response_future = self._invoker.future(group, method)(
               request, test_constants.LONG_TIMEOUT)
@@ -263,13 +263,13 @@
           test_messages.verify(request, response, self)
 
   def testWaitingForSomeButNotAllParallelInvocations(self):
-    pool = logging_pool.pool(test_constants.PARALLELISM)
+    pool = logging_pool.pool(test_constants.THREAD_CONCURRENCY)
     for (group, method), test_messages_sequence in (
         six.iteritems(self._digest.unary_unary_messages_sequences)):
       for test_messages in test_messages_sequence:
         requests = []
         response_futures_to_indices = {}
-        for index in range(test_constants.PARALLELISM):
+        for index in range(test_constants.THREAD_CONCURRENCY):
           request = test_messages.request()
           inner_response_future = self._invoker.future(group, method)(
               request, test_constants.LONG_TIMEOUT)
@@ -279,7 +279,7 @@
 
         some_completed_response_futures_iterator = itertools.islice(
             futures.as_completed(response_futures_to_indices),
-            test_constants.PARALLELISM // 2)
+            test_constants.THREAD_CONCURRENCY // 2)
         for response_future in some_completed_response_futures_iterator:
           index = response_futures_to_indices[response_future]
           test_messages.verify(requests[index], response_future.result(), self)
diff --git a/src/python/grpcio_health_checking/.gitignore b/src/python/grpcio_health_checking/.gitignore
new file mode 100644
index 0000000..85af466
--- /dev/null
+++ b/src/python/grpcio_health_checking/.gitignore
@@ -0,0 +1,5 @@
+*.proto
+*_pb2.py
+build/
+grpcio_health_checking.egg-info/
+dist/
diff --git a/src/python/grpcio_health_checking/MANIFEST.in b/src/python/grpcio_health_checking/MANIFEST.in
index 498b55f..7d26647 100644
--- a/src/python/grpcio_health_checking/MANIFEST.in
+++ b/src/python/grpcio_health_checking/MANIFEST.in
@@ -1,2 +1,3 @@
-graft grpc
-include commands.py
+include health_commands.py
+graft grpc_health
+global-exclude *.pyc
diff --git a/src/python/grpcio_health_checking/grpc/health/v1/health.py b/src/python/grpcio_health_checking/grpc/health/v1/health.py
deleted file mode 100644
index 4b5af15..0000000
--- a/src/python/grpcio_health_checking/grpc/health/v1/health.py
+++ /dev/null
@@ -1,129 +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.
-
-"""Reference implementation for health checking in gRPC Python."""
-
-import abc
-import enum
-import threading
-
-from grpc.health.v1 import health_pb2
-
-
-@enum.unique
-class HealthStatus(enum.Enum):
-  """Statuses for a service mirroring the reference health.proto's values."""
-  UNKNOWN = health_pb2.HealthCheckResponse.UNKNOWN
-  SERVING = health_pb2.HealthCheckResponse.SERVING
-  NOT_SERVING = health_pb2.HealthCheckResponse.NOT_SERVING
-
-
-class _HealthServicer(health_pb2.EarlyAdopterHealthServicer):
-  """Servicer handling RPCs for service statuses."""
-
-  def __init__(self):
-    self._server_status_lock = threading.Lock()
-    self._server_status = {}
-
-  def Check(self, request, context):
-    with self._server_status_lock:
-      if request.service not in self._server_status:
-        # TODO(atash): once the Python API has a way of setting the server
-        # status, bring us into conformance with the health check spec by
-        # returning the NOT_FOUND status here.
-        raise NotImplementedError()
-      else:
-        return health_pb2.HealthCheckResponse(
-            status=self._server_status[request.service].value)
-
-  def set(service, status):
-    if not isinstance(status, HealthStatus):
-      raise TypeError('expected grpc.health.v1.health.HealthStatus '
-                      'for argument `status` but got {}'.format(status))
-    with self._server_status_lock:
-      self._server_status[service] = status
-
-
-class HealthServer(health_pb2.EarlyAdopterHealthServer):
-  """Interface for the reference gRPC Python health server."""
-  __metaclass__ = abc.ABCMeta
-
-  @abc.abstractmethod
-  def start(self):
-    raise NotImplementedError()
-
-  @abc.abstractmethod
-  def stop(self):
-    raise NotImplementedError()
-
-  @abc.abstractmethod
-  def set(self, service, status):
-    """Set the status of the given service.
-
-    Args:
-      service (str): service name of the service to set the reported status of
-      status (HealthStatus): status to set for the specified service
-    """
-    raise NotImplementedError()
-
-
-class _HealthServerImplementation(HealthServer):
-  """Implementation for the reference gRPC Python health server."""
-
-  def __init__(self, server, servicer):
-    self._server = server
-    self._servicer = servicer
-
-  def start(self):
-    self._server.start()
-
-  def stop(self):
-    self._server.stop()
-
-  def set(self, service, status):
-    self._servicer.set(service, status)
-
-
-def create_Health_server(port, private_key=None, certificate_chain=None):
-  """Get a HealthServer instance.
-
-  Args:
-    port (int): port number passed through to health_pb2 server creation
-      routine.
-    private_key (str): to-be-created server's desired private key
-    certificate_chain (str): to-be-created server's desired certificate chain
-
-  Returns:
-    An instance of HealthServer (conforming thus to
-    EarlyAdopterHealthServer and providing a method to set server status)."""
-  servicer = _HealthServicer()
-  server = health_pb2.early_adopter_create_Health_server(
-      servicer, port=port, private_key=private_key,
-      certificate_chain=certificate_chain)
-  return _HealthServerImplementation(server, servicer)
diff --git a/src/python/grpcio_health_checking/grpc/health/__init__.py b/src/python/grpcio_health_checking/grpc_health/__init__.py
similarity index 100%
rename from src/python/grpcio_health_checking/grpc/health/__init__.py
rename to src/python/grpcio_health_checking/grpc_health/__init__.py
diff --git a/src/python/grpcio_health_checking/grpc/health/__init__.py b/src/python/grpcio_health_checking/grpc_health/health/__init__.py
similarity index 100%
copy from src/python/grpcio_health_checking/grpc/health/__init__.py
copy to src/python/grpcio_health_checking/grpc_health/health/__init__.py
diff --git a/src/python/grpcio_health_checking/grpc/health/v1/__init__.py b/src/python/grpcio_health_checking/grpc_health/health/v1/__init__.py
similarity index 100%
rename from src/python/grpcio_health_checking/grpc/health/v1/__init__.py
rename to src/python/grpcio_health_checking/grpc_health/health/v1/__init__.py
diff --git a/src/python/grpcio_health_checking/grpc_health/health/v1/health.py b/src/python/grpcio_health_checking/grpc_health/health/v1/health.py
new file mode 100644
index 0000000..8da60c7
--- /dev/null
+++ b/src/python/grpcio_health_checking/grpc_health/health/v1/health.py
@@ -0,0 +1,66 @@
+# 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.
+
+"""Reference implementation for health checking in gRPC Python."""
+
+import threading
+
+from grpc_health.health.v1 import health_pb2
+
+
+class HealthServicer(health_pb2.BetaHealthServicer):
+  """Servicer handling RPCs for service statuses."""
+
+  def __init__(self):
+    self._server_status_lock = threading.Lock()
+    self._server_status = {}
+
+  def Check(self, request, context):
+    with self._server_status_lock:
+      if request.service not in self._server_status:
+        # TODO(atash): once the Python API has a way of setting the server
+        # status, bring us into conformance with the health check spec by
+        # returning the NOT_FOUND status here.
+        raise NotImplementedError()
+      else:
+        return health_pb2.HealthCheckResponse(
+            status=self._server_status[request.service])
+
+  def set(self, service, status):
+    """Sets the status of a service.
+
+    Args:
+        service: string, the name of the service.
+            NOTE, '' must be set.
+        status: HealthCheckResponse.status enum value indicating
+            the status of the service
+    """
+    with self._server_status_lock:
+      self._server_status[service] = status
+
diff --git a/src/python/grpcio_health_checking/commands.py b/src/python/grpcio_health_checking/health_commands.py
similarity index 80%
rename from src/python/grpcio_health_checking/commands.py
rename to src/python/grpcio_health_checking/health_commands.py
index 3f4ea6e..631066f 100644
--- a/src/python/grpcio_health_checking/commands.py
+++ b/src/python/grpcio_health_checking/health_commands.py
@@ -33,11 +33,16 @@
 import glob
 import os
 import os.path
+import shutil
 import subprocess
 import sys
 
 import setuptools
 from setuptools.command import build_py
+from setuptools.command import sdist
+
+ROOT_DIR = os.path.abspath(os.path.dirname(os.path.abspath(__file__)))
+HEALTH_PROTO = os.path.join(ROOT_DIR, '../../proto/grpc/health/v1/health.proto')
 
 
 class BuildProtoModules(setuptools.Command):
@@ -76,9 +81,34 @@
       raise Exception('{}\nOutput:\n{}'.format(e.message, e.output))
 
 
+class CopyProtoModules(setuptools.Command):
+  """Command to copy proto modules from grpc/src/proto."""
+
+  def initialize_options(self):
+    pass
+
+  def finalize_options(self):
+    pass
+
+  def run(self):
+    if os.path.isfile(HEALTH_PROTO):
+      shutil.copyfile(
+          HEALTH_PROTO,
+          os.path.join(ROOT_DIR, 'grpc_health/health/v1/health.proto'))
+
+
 class BuildPy(build_py.build_py):
   """Custom project build command."""
 
   def run(self):
+    self.run_command('copy_proto_modules')
     self.run_command('build_proto_modules')
     build_py.build_py.run(self)
+
+
+class SDist(sdist.sdist):
+  """Custom project build command."""
+
+  def run(self):
+    self.run_command('copy_proto_modules')
+    sdist.sdist.run(self)
diff --git a/src/python/grpcio_health_checking/setup.py b/src/python/grpcio_health_checking/setup.py
index 35253ba..d68a7ce 100644
--- a/src/python/grpcio_health_checking/setup.py
+++ b/src/python/grpcio_health_checking/setup.py
@@ -40,7 +40,7 @@
 os.chdir(os.path.dirname(os.path.abspath(__file__)))
 
 # Break import-style to ensure we can actually find our commands module.
-import commands
+import health_commands
 
 _PACKAGES = (
     setuptools.find_packages('.')
@@ -51,22 +51,21 @@
 }
 
 _INSTALL_REQUIRES = (
-    'grpcio>=0.11.0b0',
+    'grpcio>=0.13.1',
 )
 
-_SETUP_REQUIRES = _INSTALL_REQUIRES
-
 _COMMAND_CLASS = {
-    'build_proto_modules': commands.BuildProtoModules,
-    'build_py': commands.BuildPy,
+    'copy_proto_modules': health_commands.CopyProtoModules,
+    'build_proto_modules': health_commands.BuildProtoModules,
+    'build_py': health_commands.BuildPy,
+    'sdist': health_commands.SDist,
 }
 
 setuptools.setup(
     name='grpcio_health_checking',
-    version='0.11.0b0',
+    version='0.14.0b0',
     packages=list(_PACKAGES),
     package_dir=_PACKAGE_DIRECTORIES,
     install_requires=_INSTALL_REQUIRES,
-    setup_requires=_SETUP_REQUIRES,
     cmdclass=_COMMAND_CLASS
 )
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/templates/src/csharp/build_packages.bat.template b/templates/src/csharp/build_packages.bat.template
index 3b445a8..93a3531 100644
--- a/templates/src/csharp/build_packages.bat.template
+++ b/templates/src/csharp/build_packages.bat.template
@@ -1,5 +1,34 @@
 %YAML 1.2
 --- |
+  @rem Copyright 2016, Google Inc.
+  @rem All rights reserved.
+  @rem
+  @rem Redistribution and use in source and binary forms, with or without
+  @rem modification, are permitted provided that the following conditions are
+  @rem met:
+  @rem
+  @rem     * Redistributions of source code must retain the above copyright
+  @rem notice, this list of conditions and the following disclaimer.
+  @rem     * Redistributions in binary form must reproduce the above
+  @rem copyright notice, this list of conditions and the following disclaimer
+  @rem in the documentation and/or other materials provided with the
+  @rem distribution.
+  @rem     * Neither the name of Google Inc. nor the names of its
+  @rem contributors may be used to endorse or promote products derived from
+  @rem this software without specific prior written permission.
+  @rem
+  @rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  @rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  @rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  @rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  @rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  @rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  @rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  @rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  @rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  @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.
+  
   @rem Builds gRPC NuGet packages
   
   @rem Current package versions
diff --git a/test/core/bad_client/tests/large_metadata.c b/test/core/bad_client/tests/large_metadata.c
index 1a8d2a2..b7d329c 100644
--- a/test/core/bad_client/tests/large_metadata.c
+++ b/test/core/bad_client/tests/large_metadata.c
@@ -36,10 +36,16 @@
 #include <string.h>
 
 #include <grpc/support/alloc.h>
+#include <grpc/support/string_util.h>
+#include "src/core/lib/support/string.h"
 #include "src/core/lib/surface/server.h"
 #include "test/core/end2end/cq_verifier.h"
 
-#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_STR                              \
+// The large-metadata headers that we're adding for this test are not
+// actually appended to this in a single string, since the string would
+// be longer than the C99 string literal limit.  Instead, we dynamically
+// construct it by adding the large headers one at a time.
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_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 \
@@ -55,292 +61,26 @@
   "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"
+  "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)"
+
+// Each large-metadata header is constructed from these start and end
+// strings, with a two-digit number in between.
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_START_STR "\x10\x0duser-header"
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_END_STR                   \
+  "~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
+  "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+
+// The size of each large-metadata header string.
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_SIZE                     \
+  ((sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_START_STR) - 1) + 2 + \
+   (sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_END_STR) - 1))
+
+// The number of headers we're adding and the total size of the client
+// payload.
+#define NUM_HEADERS 95
+#define PFX_TOO_MUCH_METADATA_FROM_CLIENT_PAYLOAD_SIZE          \
+  ((sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR) - 1) + \
+   (NUM_HEADERS * PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_SIZE) + 1)
 
 #define PFX_TOO_MUCH_METADATA_FROM_SERVER_STR                                              \
   "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" /* settings frame: sets                               \
@@ -477,8 +217,26 @@
   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);
+  gpr_strvec headers;
+  gpr_strvec_init(&headers);
+  for (int i = 0; i < NUM_HEADERS; ++i) {
+    char *str;
+    gpr_asprintf(&str, "%s%02d%s",
+                 PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_START_STR, i,
+                 PFX_TOO_MUCH_METADATA_FROM_CLIENT_HEADER_END_STR);
+    gpr_strvec_add(&headers, str);
+  }
+  size_t headers_len;
+  const char *client_headers = gpr_strvec_flatten(&headers, &headers_len);
+  gpr_strvec_destroy(&headers);
+  char client_payload[PFX_TOO_MUCH_METADATA_FROM_CLIENT_PAYLOAD_SIZE] =
+      PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR;
+  memcpy(
+      client_payload + sizeof(PFX_TOO_MUCH_METADATA_FROM_CLIENT_PREFIX_STR) - 1,
+      client_headers, headers_len);
+  GRPC_RUN_BAD_CLIENT_TEST(server_verifier, client_validator, client_payload,
+                           0);
+  gpr_free((void *)client_headers);
 
   // Test sending more metadata than the client will accept.
   GRPC_RUN_BAD_CLIENT_TEST(server_verifier_sends_too_much_metadata,
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/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/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c
index 81f76ea..202fb3b 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.c
@@ -88,9 +88,11 @@
   int was_cancelled = 2;
   grpc_call_details call_details;
   char *peer;
+  int picked_port = 0;
 
   if (port == 0) {
     port = grpc_pick_unused_port_or_die();
+    picked_port = 1;
   }
 
   gpr_join_host_port(&server_hostport, server_host, port);
@@ -263,6 +265,9 @@
 
   grpc_call_details_destroy(&call_details);
   gpr_free(details);
+  if (picked_port) {
+    grpc_recycle_unused_port(port);
+  }
 }
 
 int external_dns_works(const char *host) {
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 3eeb55d..fd6ff2c 100644
--- a/test/core/surface/public_headers_must_be_c89.c
+++ b/test/core/surface/public_headers_must_be_c89.c
@@ -36,6 +36,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/grpc_security_constants.h>
 #include <grpc/impl/codegen/alloc.h>
diff --git a/test/core/util/port.h b/test/core/util/port.h
index 93788bc..faeabba 100644
--- a/test/core/util/port.h
+++ b/test/core/util/port.h
@@ -40,10 +40,16 @@
 
 /* pick a port number that is currently unused by either tcp or udp. return
    0 on failure. */
-int grpc_pick_unused_port();
+int grpc_pick_unused_port(void);
 /* pick a port number that is currently unused by either tcp or udp. abort
    on failure. */
-int grpc_pick_unused_port_or_die();
+int grpc_pick_unused_port_or_die(void);
+
+/* Return a port which was previously returned by grpc_pick_unused_port().
+ * Implementations of grpc_pick_unused_port() backed by a portserver may limit
+ * the total number of ports available; this lets a binary return its allocated
+ * ports back to the server if it is going to allocate a large number. */
+void grpc_recycle_unused_port(int port);
 
 #ifdef __cplusplus
 }
diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c
index eabd62f..f139601 100644
--- a/test/core/util/port_posix.c
+++ b/test/core/util/port_posix.c
@@ -68,6 +68,30 @@
   return 0;
 }
 
+static int free_chosen_port(int port) {
+  size_t i;
+  int found = 0;
+  size_t found_at = 0;
+  char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
+  /* Find the port and erase it from the list, then tell the server it can be
+     freed. */
+  for (i = 0; i < num_chosen_ports; i++) {
+    if (chosen_ports[i] == port) {
+      GPR_ASSERT(found == 0);
+      found = 1;
+      found_at = i;
+    }
+  }
+  if (found) {
+    chosen_ports[found_at] = chosen_ports[num_chosen_ports - 1];
+    num_chosen_ports--;
+    if (env) {
+      grpc_free_port_using_server(env, port);
+    }
+  }
+  return found;
+}
+
 static void free_chosen_ports(void) {
   char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
   if (env != NULL) {
@@ -210,4 +234,6 @@
   return port;
 }
 
+void grpc_recycle_unused_port(int port) { GPR_ASSERT(free_chosen_port(port)); }
+
 #endif /* GPR_POSIX_SOCKET && GRPC_TEST_PICK_PORT */
diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c
index 154d607..9023719 100644
--- a/test/core/util/port_windows.c
+++ b/test/core/util/port_windows.c
@@ -71,6 +71,30 @@
   return 0;
 }
 
+static int free_chosen_port(int port) {
+  size_t i;
+  int found = 0;
+  size_t found_at = 0;
+  char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
+  if (env != NULL) {
+    /* Find the port and erase it from the list, then tell the server it can be
+       freed. */
+    for (i = 0; i < num_chosen_ports; i++) {
+      if (chosen_ports[i] == port) {
+        GPR_ASSERT(found == 0);
+        found = 1;
+        found_at = i;
+      }
+    }
+    if (found) {
+      chosen_ports[found_at] = chosen_ports[num_chosen_ports - 1];
+      grpc_free_port_using_server(env, port);
+      num_chosen_ports--;
+    }
+  }
+  return found;
+}
+
 static void free_chosen_ports(void) {
   char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
   if (env != NULL) {
@@ -216,4 +240,6 @@
   return port;
 }
 
+void grpc_recycle_unused_port(int port) { GPR_ASSERT(free_chosen_port(port)); }
+
 #endif /* GPR_WINSOCK_SOCKET && GRPC_TEST_PICK_PORT */
diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc
index 0232a9f..45f5eb1 100644
--- a/test/cpp/end2end/async_end2end_test.cc
+++ b/test/cpp/end2end/async_end2end_test.cc
@@ -199,6 +199,28 @@
   bool spin_;
 };
 
+// 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,
@@ -223,8 +245,8 @@
   void SetUp() GRPC_OVERRIDE {
     poll_overrider_.reset(new PollingOverrider(!GetParam().disable_blocking));
 
-    int port = grpc_pick_unused_port_or_die();
-    server_address_ << "localhost:" << port;
+    port_ = grpc_pick_unused_port_or_die();
+    server_address_ << "localhost:" << port_;
 
     // Setup server
     ServerBuilder builder;
@@ -232,6 +254,12 @@
     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);
@@ -246,6 +274,7 @@
       ;
     poll_overrider_.reset();
     gpr_tls_set(&g_is_async_end2end_test, 0);
+    grpc_recycle_unused_port(port_);
   }
 
   void ResetStub() {
@@ -297,6 +326,7 @@
   std::unique_ptr<Server> server_;
   grpc::testing::EchoTestService::AsyncService service_;
   std::ostringstream server_address_;
+  int port_;
 
   std::unique_ptr<PollingOverrider> poll_overrider_;
 };
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/interop/interop_client.cc b/test/cpp/interop/interop_client.cc
index e9d95dc..cba52b1 100644
--- a/test/cpp/interop/interop_client.cc
+++ b/test/cpp/interop/interop_client.cc
@@ -413,7 +413,7 @@
 }
 
 bool InteropClient::DoResponseStreaming() {
-  gpr_log(GPR_DEBUG, "Receiving response steaming rpc ...");
+  gpr_log(GPR_DEBUG, "Receiving response streaming rpc ...");
 
   ClientContext context;
   StreamingOutputCallRequest request;
@@ -465,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]);
@@ -544,7 +544,7 @@
 }
 
 bool InteropClient::DoResponseStreamingWithSlowConsumer() {
-  gpr_log(GPR_DEBUG, "Receiving response steaming rpc with slow consumer ...");
+  gpr_log(GPR_DEBUG, "Receiving response streaming rpc with slow consumer ...");
 
   ClientContext context;
   StreamingOutputCallRequest request;
@@ -677,7 +677,7 @@
 }
 
 bool InteropClient::DoCancelAfterBegin() {
-  gpr_log(GPR_DEBUG, "Sending request steaming rpc ...");
+  gpr_log(GPR_DEBUG, "Sending request streaming rpc ...");
 
   ClientContext context;
   StreamingInputCallRequest request;
diff --git a/test/distrib/csharp/build_vs2015.bat b/test/distrib/csharp/build_vs2015.bat
index 50485a3..5779878 100644
--- a/test/distrib/csharp/build_vs2015.bat
+++ b/test/distrib/csharp/build_vs2015.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Convenience wrapper that runs specified gRPC target using msbuild
 @rem Usage: build.bat TARGET_NAME
 
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/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/distrib/check_copyright.py b/tools/distrib/check_copyright.py
index 68411c6..4577ab3 100755
--- a/tools/distrib/check_copyright.py
+++ b/tools/distrib/check_copyright.py
@@ -71,6 +71,7 @@
 # that given a line of license text, returns what should
 # be in the file
 LICENSE_PREFIX = {
+  '.bat':       r'@rem\s*',
   '.c':         r'\s*(?://|\*)\s*',
   '.cc':        r'\s*(?://|\*)\s*',
   '.h':         r'\s*(?://|\*)\s*',
diff --git a/tools/distrib/check_include_guards.py b/tools/distrib/check_include_guards.py
index 8207f5c..9c23a70 100755
--- a/tools/distrib/check_include_guards.py
+++ b/tools/distrib/check_include_guards.py
@@ -56,7 +56,7 @@
   def __init__(self):
     self.ifndef_re = re.compile(r'#ifndef ([A-Z][A-Z_1-9]*)')
     self.define_re = re.compile(r'#define ([A-Z][A-Z_1-9]*)')
-    self.endif_c_re = re.compile(r'#endif /\* ([A-Z][A-Z_1-9]*) \*/')
+    self.endif_c_re = re.compile(r'#endif /\* ([A-Z][A-Z_1-9]*) (?:\\ *\n *)?\*/')
     self.endif_cpp_re = re.compile(r'#endif  // ([A-Z][A-Z_1-9]*)')
     self.failed = False
 
@@ -132,7 +132,7 @@
     # Is there a properly commented #endif?
     endif_re = self.endif_cpp_re if cpp_header else self.endif_c_re
     flines = fcontents.rstrip().splitlines()
-    match = endif_re.search(flines[-1])
+    match = endif_re.search('\n'.join(flines[-2:]))
     if not match:
       # No endif. Check if we have the last line as just '#endif' and if so
       # replace it with a properly commented one.
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index 2a319db..798d68b 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -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 \
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 5fdfafb..ce1d6ac 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -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 \
diff --git a/tools/doxygen/Doxyfile.core b/tools/doxygen/Doxyfile.core
index eed8425..aabca41 100644
--- a/tools/doxygen/Doxyfile.core
+++ b/tools/doxygen/Doxyfile.core
@@ -786,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 7e0d5eb..212dfc3 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -786,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 \
@@ -807,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 \
@@ -913,6 +915,7 @@
 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/v1/load_balancer.pb.h \
 third_party/nanopb/pb.h \
@@ -944,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 \
@@ -1071,6 +1075,9 @@
 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/v1/load_balancer.pb.c \
 third_party/nanopb/pb_common.c \
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/src/python/grpcio_health_checking/grpc/__init__.py b/tools/gource/gen-all-logs.sh
old mode 100644
new mode 100755
similarity index 74%
copy from src/python/grpcio_health_checking/grpc/__init__.py
copy to tools/gource/gen-all-logs.sh
index 7086519..85352c5
--- a/src/python/grpcio_health_checking/grpc/__init__.py
+++ b/tools/gource/gen-all-logs.sh
@@ -1,4 +1,5 @@
-# Copyright 2015, Google Inc.
+#!/bin/bash
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,4 +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.
 
+set -ex
 
+outdir=`pwd`
+
+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
+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/src/python/grpcio_health_checking/grpc/__init__.py b/tools/gource/make-video.sh
old mode 100644
new mode 100755
similarity index 78%
copy from src/python/grpcio_health_checking/grpc/__init__.py
copy to tools/gource/make-video.sh
index 7086519..02d79df
--- a/src/python/grpcio_health_checking/grpc/__init__.py
+++ b/tools/gource/make-video.sh
@@ -1,4 +1,5 @@
-# Copyright 2015, Google Inc.
+#!/bin/bash
+# Copyright 2016, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -27,4 +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.
 
+set -ex
 
+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/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/build_artifact_csharp.bat b/tools/run_tests/build_artifact_csharp.bat
index 33dc8c2..24c8d48 100644
--- a/tools/run_tests/build_artifact_csharp.bat
+++ b/tools/run_tests/build_artifact_csharp.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Builds C# artifacts on Windows
 
 @call vsprojects\build_vs2013.bat %* || goto :error
diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh
index 594c20b..4cc6881 100755
--- a/tools/run_tests/build_python.sh
+++ b/tools/run_tests/build_python.sh
@@ -55,3 +55,7 @@
 $ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build_py
 $ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py build_ext --inplace
 $ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/setup.py gather --test
+
+# Build the health checker
+$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/src/python/grpcio_health_checking/setup.py build
+$ROOT/.tox/${TOX_PYTHON_ENV}/bin/python $ROOT/src/python/grpcio_health_checking/setup.py build_py
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/dockerize/docker_run_tests.sh b/tools/run_tests/dockerize/docker_run_tests.sh
index 2fc66c2..8c6143d 100755
--- a/tools/run_tests/dockerize/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/performance/run_worker_go.sh b/tools/run_tests/performance/run_worker_go.sh
index f7f2ece..6b1242a 100755
--- a/tools/run_tests/performance/run_worker_go.sh
+++ b/tools/run_tests/performance/run_worker_go.sh
@@ -32,4 +32,6 @@
 
 cd $(dirname $0)/../../..
 
-../gopath/bin/worker $@
+export GOPATH=$(pwd)/../gopath
+
+${GOPATH}/bin/worker $@
diff --git a/tools/run_tests/post_tests_csharp.bat b/tools/run_tests/post_tests_csharp.bat
index 7851b91..0d49a00 100644
--- a/tools/run_tests/post_tests_csharp.bat
+++ b/tools/run_tests/post_tests_csharp.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Runs C# tests for given assembly from command line. The Grpc.sln solution needs to be built before running the tests.
 
 setlocal
diff --git a/tools/run_tests/pre_build_c.bat b/tools/run_tests/pre_build_c.bat
index f0449f3..e4ab693 100644
--- a/tools/run_tests/pre_build_c.bat
+++ b/tools/run_tests/pre_build_c.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Performs nuget restore step for C/C++.
 
 setlocal
diff --git a/tools/run_tests/pre_build_csharp.bat b/tools/run_tests/pre_build_csharp.bat
index 853a8f4..e7131d5 100644
--- a/tools/run_tests/pre_build_csharp.bat
+++ b/tools/run_tests/pre_build_csharp.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Performs nuget restore step for C#.
 
 setlocal
diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py
index 674d864..a7728e7 100755
--- a/tools/run_tests/run_performance_tests.py
+++ b/tools/run_tests/run_performance_tests.py
@@ -137,6 +137,17 @@
   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)
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 37291f4..65596de 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):
@@ -371,7 +383,9 @@
     with open('src/python/grpcio/tests/tests.json') as tests_json_file:
       tests_json = json.load(tests_json_file)
     environment = dict(_FORCE_ENVIRON_FOR_WRAPPERS)
-    environment['PYTHONPATH'] = os.path.abspath('src/python/gens')
+    environment['PYTHONPATH'] = '{}:{}'.format(
+      os.path.abspath('src/python/gens'), 
+      os.path.abspath('src/python/grpcio_health_checking'))
     if self.config.build_config != 'gcov':
       return [self.config.job_spec(
           ['tools/run_tests/run_python.sh', self._tox_env],
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 8b1aa57..3866ebb 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -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"
@@ -4157,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", 
@@ -5627,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", 
@@ -5727,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", 
@@ -6031,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", 
@@ -6046,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", 
@@ -6282,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", 
@@ -6345,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", 
@@ -6395,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/java.json b/tools/run_tests/stress_test/configs/java.json
index 2ce6c00..b7c6d8b 100644
--- a/tools/run_tests/stress_test/configs/java.json
+++ b/tools/run_tests/stress_test/configs/java.json
@@ -21,6 +21,9 @@
         "metricsArgs": {
           "metrics_server_address": "localhost:8081",
           "total_only": "true"
+        },
+        "env": {
+          "STRESSTEST_CLIENT_OPTS":"-Xmx3g -Xms3g -XX:NewSize=1500m -XX:MaxNewSize=1500m -XX:+UseConcMarkSweepGC"
         }
       }
     },
@@ -44,7 +47,10 @@
         "serverPort": 8080,
         "serverArgs": {
           "port": 8080,
-		  "use_tls": "false"
+          "use_tls": "false"
+        },
+        "env": {
+          "TEST_SERVER_OPTS":"-Xmx3g -Xms3g -XX:NewSize=1500m -XX:MaxNewSize=1500m  -XX:+UseConcMarkSweepGC"
         }
       }
     },
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index f1d302f..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, 
@@ -23428,7 +23449,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23444,7 +23466,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23460,7 +23483,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23476,7 +23500,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23492,7 +23517,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23508,7 +23534,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23524,7 +23551,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23540,7 +23568,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23556,7 +23585,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23572,7 +23602,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23588,7 +23619,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23604,7 +23636,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23620,7 +23653,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23636,7 +23670,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23652,7 +23687,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23668,7 +23704,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23684,7 +23721,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23700,7 +23738,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23716,7 +23755,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23732,7 +23772,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23748,7 +23789,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23764,7 +23806,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23780,7 +23823,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23796,7 +23840,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23812,7 +23857,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23828,7 +23874,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23844,7 +23891,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23860,7 +23908,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23876,7 +23925,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23892,7 +23942,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23908,7 +23959,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23924,7 +23976,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23940,7 +23993,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23956,7 +24010,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23972,7 +24027,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -23988,7 +24044,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24004,7 +24061,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24020,7 +24078,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24036,7 +24095,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24052,7 +24112,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24068,7 +24129,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24084,7 +24146,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24100,7 +24163,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24116,7 +24180,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24132,7 +24197,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24148,7 +24214,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24164,7 +24231,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24180,7 +24248,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24196,7 +24265,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24212,7 +24282,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24228,7 +24299,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24244,7 +24316,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24260,7 +24333,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24276,7 +24350,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24292,7 +24367,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24308,7 +24384,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24324,7 +24401,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24340,7 +24418,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24356,7 +24435,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24372,7 +24452,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24388,7 +24469,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24404,7 +24486,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24420,7 +24503,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24436,7 +24520,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24452,7 +24537,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24468,7 +24554,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24484,7 +24571,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24500,7 +24588,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24516,7 +24605,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24532,7 +24622,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24548,7 +24639,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24564,7 +24656,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24580,7 +24673,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24596,7 +24690,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24612,7 +24707,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24628,7 +24724,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24644,7 +24741,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24660,7 +24758,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24676,7 +24775,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24692,7 +24792,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24708,7 +24809,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24724,7 +24826,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24740,7 +24843,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24756,7 +24860,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24772,7 +24877,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24788,7 +24894,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24804,7 +24911,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24820,7 +24928,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24836,7 +24945,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24852,7 +24962,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24868,7 +24979,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24884,7 +24996,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24900,7 +25013,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24916,7 +25030,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24932,7 +25047,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24948,7 +25064,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24964,7 +25081,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24980,7 +25098,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -24996,7 +25115,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25012,7 +25132,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25028,7 +25149,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25044,7 +25166,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25060,7 +25183,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25076,7 +25200,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25092,7 +25217,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25108,7 +25234,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25124,7 +25251,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25140,7 +25268,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25156,7 +25285,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25172,7 +25302,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25188,7 +25319,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25204,7 +25336,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25220,7 +25353,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25236,7 +25370,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25252,7 +25387,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25268,7 +25404,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25284,7 +25421,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25300,7 +25438,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25316,7 +25455,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25332,7 +25472,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25348,7 +25489,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25364,7 +25506,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25380,7 +25523,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25396,7 +25540,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25412,7 +25557,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25428,7 +25574,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25444,7 +25591,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25460,7 +25608,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25476,7 +25625,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25492,7 +25642,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25508,7 +25659,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25524,7 +25676,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25540,7 +25693,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25556,7 +25710,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25572,7 +25727,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25588,7 +25744,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25604,7 +25761,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25620,7 +25778,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25636,7 +25795,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25652,7 +25812,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25668,7 +25829,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25684,7 +25846,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25700,7 +25863,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25716,7 +25880,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25732,7 +25897,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25748,7 +25914,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25764,7 +25931,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25780,7 +25948,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25796,7 +25965,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25812,7 +25982,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25828,7 +25999,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25844,7 +26016,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25860,7 +26033,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25876,7 +26050,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25892,7 +26067,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25908,7 +26084,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25924,7 +26101,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25940,7 +26118,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25956,7 +26135,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25972,7 +26152,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -25988,7 +26169,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26004,7 +26186,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26020,7 +26203,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26036,7 +26220,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26052,7 +26237,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26068,7 +26254,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26084,7 +26271,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26100,7 +26288,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26116,7 +26305,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26132,7 +26322,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26148,7 +26339,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26164,7 +26356,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26180,7 +26373,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26196,7 +26390,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26212,7 +26407,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26228,7 +26424,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26244,7 +26441,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26260,7 +26458,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26276,7 +26475,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26292,7 +26492,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26308,7 +26509,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26324,7 +26526,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26340,7 +26543,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26356,7 +26560,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26372,7 +26577,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26388,7 +26594,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26404,7 +26611,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26420,7 +26628,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26436,7 +26645,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26452,7 +26662,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26468,7 +26679,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26484,7 +26696,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26500,7 +26713,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26516,7 +26730,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26532,7 +26747,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26548,7 +26764,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26564,7 +26781,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26580,7 +26798,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26596,7 +26815,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26612,7 +26832,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26628,7 +26849,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26644,7 +26866,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26660,7 +26883,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26676,7 +26900,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26692,7 +26917,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26708,7 +26934,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26724,7 +26951,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26740,7 +26968,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26756,7 +26985,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26772,7 +27002,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26788,7 +27019,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26804,7 +27036,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26820,7 +27053,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26836,7 +27070,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26852,7 +27087,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26868,7 +27104,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26884,7 +27121,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26900,7 +27138,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26916,7 +27155,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26932,7 +27172,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26948,7 +27189,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26964,7 +27206,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26980,7 +27223,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -26996,7 +27240,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27012,7 +27257,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27028,7 +27274,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27044,7 +27291,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27060,7 +27308,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27076,7 +27325,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27092,7 +27342,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27108,7 +27359,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27124,7 +27376,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27140,7 +27393,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27156,7 +27410,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27172,7 +27427,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27188,7 +27444,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27204,7 +27461,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27220,7 +27478,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27236,7 +27495,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27252,7 +27512,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27268,7 +27529,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27284,7 +27546,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27300,7 +27563,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27316,7 +27580,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27332,7 +27597,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27348,7 +27614,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27364,7 +27631,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27380,7 +27648,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27396,7 +27665,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27412,7 +27682,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27428,7 +27699,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27444,7 +27716,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27460,7 +27733,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27476,7 +27750,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27492,7 +27767,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27508,7 +27784,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27524,7 +27801,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27540,7 +27818,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27556,7 +27835,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27572,7 +27852,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27588,7 +27869,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27604,7 +27886,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27620,7 +27903,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27636,7 +27920,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27652,7 +27937,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27668,7 +27954,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27684,7 +27971,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27700,7 +27988,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27716,7 +28005,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27732,7 +28022,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27748,7 +28039,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27764,7 +28056,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27780,7 +28073,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27796,7 +28090,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27812,7 +28107,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27828,7 +28124,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27844,7 +28141,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27860,7 +28158,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27876,7 +28175,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27892,7 +28192,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27908,7 +28209,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27924,7 +28226,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27940,7 +28243,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27956,7 +28260,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27972,7 +28277,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -27988,7 +28294,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28004,7 +28311,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28020,7 +28328,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28036,7 +28345,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28052,7 +28362,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28068,7 +28379,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28084,7 +28396,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28100,7 +28413,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28116,7 +28430,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28132,7 +28447,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28148,7 +28464,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28164,7 +28481,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28180,7 +28498,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28196,7 +28515,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28212,7 +28532,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28228,7 +28549,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28244,7 +28566,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28260,7 +28583,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28276,7 +28600,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28292,7 +28617,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28308,7 +28634,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28324,7 +28651,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28340,7 +28668,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28356,7 +28685,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28372,7 +28702,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28388,7 +28719,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28404,7 +28736,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28420,7 +28753,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28436,7 +28770,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28452,7 +28787,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28468,7 +28804,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28484,7 +28821,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28500,7 +28838,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28516,7 +28855,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28532,7 +28872,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28548,7 +28889,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28564,7 +28906,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28580,7 +28923,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28596,7 +28940,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28612,7 +28957,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28628,7 +28974,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28644,7 +28991,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28660,7 +29008,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28676,7 +29025,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28692,7 +29042,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28708,7 +29059,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28724,7 +29076,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28740,7 +29093,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28756,7 +29110,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28772,7 +29127,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28788,7 +29144,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28804,7 +29161,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28820,7 +29178,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28836,7 +29195,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28852,7 +29212,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28868,7 +29229,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28884,7 +29246,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28900,7 +29263,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28916,7 +29280,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28932,7 +29297,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28948,7 +29314,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28964,7 +29331,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28980,7 +29348,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -28996,7 +29365,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29012,7 +29382,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29028,7 +29399,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29044,7 +29416,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29060,7 +29433,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29076,7 +29450,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29092,7 +29467,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29108,7 +29484,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29124,7 +29501,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29140,7 +29518,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29156,7 +29535,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29172,7 +29552,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29188,7 +29569,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29204,7 +29586,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29220,7 +29603,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29236,7 +29620,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29252,7 +29637,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29268,7 +29654,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29284,7 +29671,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29300,7 +29688,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29316,7 +29705,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29332,7 +29722,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29348,7 +29739,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29364,7 +29756,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29380,7 +29773,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29396,7 +29790,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29412,7 +29807,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29428,7 +29824,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29444,7 +29841,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29460,7 +29858,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29476,7 +29875,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29492,7 +29892,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29508,7 +29909,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29524,7 +29926,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29540,7 +29943,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29556,7 +29960,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29572,7 +29977,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29588,7 +29994,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29604,7 +30011,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29620,7 +30028,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29636,7 +30045,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29652,7 +30062,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29668,7 +30079,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29684,7 +30096,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29700,7 +30113,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29716,7 +30130,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29732,7 +30147,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29748,7 +30164,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29764,7 +30181,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29780,7 +30198,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29796,7 +30215,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29812,7 +30232,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29828,7 +30249,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29844,7 +30266,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29860,7 +30283,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29876,7 +30300,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29892,7 +30317,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29908,7 +30334,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29924,7 +30351,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29940,7 +30368,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29956,7 +30385,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29972,7 +30402,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -29988,7 +30419,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30004,7 +30436,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30020,7 +30453,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30036,7 +30470,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30052,7 +30487,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30068,7 +30504,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30084,7 +30521,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30100,7 +30538,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30116,7 +30555,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30132,7 +30572,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30148,7 +30589,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30164,7 +30606,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30180,7 +30623,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30196,7 +30640,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30212,7 +30657,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30228,7 +30674,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30244,7 +30691,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30260,7 +30708,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30276,7 +30725,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30292,7 +30742,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30308,7 +30759,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30324,7 +30776,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30340,7 +30793,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30356,7 +30810,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30372,7 +30827,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30388,7 +30844,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30404,7 +30861,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30420,7 +30878,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30436,7 +30895,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30452,7 +30912,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30468,7 +30929,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30484,7 +30946,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30500,7 +30963,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30516,7 +30980,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30532,7 +30997,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30548,7 +31014,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30564,7 +31031,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30580,7 +31048,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30596,7 +31065,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30612,7 +31082,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30628,7 +31099,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30644,7 +31116,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30660,7 +31133,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30676,7 +31150,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30692,7 +31167,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30708,7 +31184,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30724,7 +31201,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30740,7 +31218,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30756,7 +31235,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30772,7 +31252,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30788,7 +31269,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30804,7 +31286,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30820,7 +31303,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30836,7 +31320,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30852,7 +31337,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30868,7 +31354,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30884,7 +31371,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30900,7 +31388,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30916,7 +31405,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30932,7 +31422,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30948,7 +31439,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30964,7 +31456,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30980,7 +31473,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -30996,7 +31490,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31012,7 +31507,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31028,7 +31524,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31044,7 +31541,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31060,7 +31558,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31076,7 +31575,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31092,7 +31592,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31108,7 +31609,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31124,7 +31626,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31140,7 +31643,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31156,7 +31660,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31172,7 +31677,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31188,7 +31694,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31204,7 +31711,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31220,7 +31728,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31236,7 +31745,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31252,7 +31762,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31268,7 +31779,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31284,7 +31796,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31300,7 +31813,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31316,7 +31830,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31332,7 +31847,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31348,7 +31864,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31364,7 +31881,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31380,7 +31898,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31396,7 +31915,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31412,7 +31932,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31428,7 +31949,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31444,7 +31966,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31460,7 +31983,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31476,7 +32000,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31492,7 +32017,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31508,7 +32034,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31524,7 +32051,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31540,7 +32068,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31556,7 +32085,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31572,7 +32102,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31588,7 +32119,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31604,7 +32136,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31620,7 +32153,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31636,7 +32170,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31652,7 +32187,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31668,7 +32204,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31684,7 +32221,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31700,7 +32238,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31716,7 +32255,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31732,7 +32272,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31748,7 +32289,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31764,7 +32306,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31780,7 +32323,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31796,7 +32340,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31812,7 +32357,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31828,7 +32374,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31844,7 +32391,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31860,7 +32408,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31876,7 +32425,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31892,7 +32442,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31908,7 +32459,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31924,7 +32476,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31940,7 +32493,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31956,7 +32510,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31972,7 +32527,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -31988,7 +32544,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32004,7 +32561,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32020,7 +32578,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32036,7 +32595,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32052,7 +32612,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32068,7 +32629,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32084,7 +32646,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32100,7 +32663,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32116,7 +32680,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32132,7 +32697,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32148,7 +32714,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32164,7 +32731,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32180,7 +32748,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32196,7 +32765,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32212,7 +32782,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32228,7 +32799,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32244,7 +32816,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32260,7 +32833,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32276,7 +32850,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32292,7 +32867,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32308,7 +32884,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32324,7 +32901,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32340,7 +32918,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32356,7 +32935,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32372,7 +32952,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32388,7 +32969,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32404,7 +32986,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32420,7 +33003,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32436,7 +33020,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32452,7 +33037,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32468,7 +33054,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32484,7 +33071,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32500,7 +33088,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32516,7 +33105,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32532,7 +33122,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32548,7 +33139,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32564,7 +33156,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32580,7 +33173,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32596,7 +33190,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32612,7 +33207,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32628,7 +33224,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32644,7 +33241,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32660,7 +33258,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32676,7 +33275,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32692,7 +33292,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32708,7 +33309,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32724,7 +33326,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32740,7 +33343,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32756,7 +33360,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32772,7 +33377,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32788,7 +33394,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32804,7 +33411,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32820,7 +33428,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32836,7 +33445,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32852,7 +33462,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32868,7 +33479,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32884,7 +33496,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32900,7 +33513,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32916,7 +33530,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32932,7 +33547,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32948,7 +33564,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32964,7 +33581,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32980,7 +33598,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -32996,7 +33615,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33012,7 +33632,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33028,7 +33649,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33044,7 +33666,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33060,7 +33683,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33076,7 +33700,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33092,7 +33717,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33108,7 +33734,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33124,7 +33751,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33140,7 +33768,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33156,7 +33785,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33172,7 +33802,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33188,7 +33819,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33204,7 +33836,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33220,7 +33853,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33236,7 +33870,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33252,7 +33887,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33268,7 +33904,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33284,7 +33921,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33300,7 +33938,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33316,7 +33955,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33332,7 +33972,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33348,7 +33989,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33364,7 +34006,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33380,7 +34023,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33396,7 +34040,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33412,7 +34057,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33428,7 +34074,8 @@
     "name": "api_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33444,7 +34091,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33460,7 +34108,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33476,7 +34125,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33492,7 +34142,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33508,7 +34159,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33524,7 +34176,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33540,7 +34193,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33556,7 +34210,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33572,7 +34227,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33588,7 +34244,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33604,7 +34261,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33620,7 +34278,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33636,7 +34295,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33652,7 +34312,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33668,7 +34329,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33684,7 +34346,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33700,7 +34363,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33716,7 +34380,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33732,7 +34397,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33748,7 +34414,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33764,7 +34431,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33780,7 +34448,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33796,7 +34465,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33812,7 +34482,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33828,7 +34499,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33844,7 +34516,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33860,7 +34533,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33876,7 +34550,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33892,7 +34567,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33908,7 +34584,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33924,7 +34601,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33940,7 +34618,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33956,7 +34635,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33972,7 +34652,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -33988,7 +34669,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34004,7 +34686,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34020,7 +34703,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34036,7 +34720,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34052,7 +34737,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34068,7 +34754,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34084,7 +34771,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34100,7 +34788,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34116,7 +34805,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34132,7 +34822,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34148,7 +34839,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34164,7 +34856,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34180,7 +34873,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34196,7 +34890,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34212,7 +34907,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34228,7 +34924,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34244,7 +34941,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34260,7 +34958,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34276,7 +34975,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34292,7 +34992,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34308,7 +35009,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34324,7 +35026,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34340,7 +35043,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34356,7 +35060,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34372,7 +35077,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34388,7 +35094,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34404,7 +35111,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34420,7 +35128,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34436,7 +35145,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34452,7 +35162,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34468,7 +35179,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34484,7 +35196,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34500,7 +35213,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34516,7 +35230,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34532,7 +35247,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34548,7 +35264,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34564,7 +35281,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34580,7 +35298,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34596,7 +35315,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34612,7 +35332,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34628,7 +35349,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34644,7 +35366,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34660,7 +35383,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34676,7 +35400,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34692,7 +35417,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34708,7 +35434,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34724,7 +35451,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34740,7 +35468,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34756,7 +35485,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34772,7 +35502,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34788,7 +35519,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34804,7 +35536,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34820,7 +35553,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34836,7 +35570,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34852,7 +35587,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34868,7 +35604,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34884,7 +35621,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34900,7 +35638,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34916,7 +35655,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34932,7 +35672,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34948,7 +35689,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34964,7 +35706,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34980,7 +35723,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -34996,7 +35740,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35012,7 +35757,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35028,7 +35774,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35044,7 +35791,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35060,7 +35808,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35076,7 +35825,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35092,7 +35842,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35108,7 +35859,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35124,7 +35876,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35140,7 +35893,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35156,7 +35910,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35172,7 +35927,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35188,7 +35944,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35204,7 +35961,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35220,7 +35978,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35236,7 +35995,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35252,7 +36012,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35268,7 +36029,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35284,7 +36046,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35300,7 +36063,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35316,7 +36080,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35332,7 +36097,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35348,7 +36114,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35364,7 +36131,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35380,7 +36148,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35396,7 +36165,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35412,7 +36182,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35428,7 +36199,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35444,7 +36216,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35460,7 +36233,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35476,7 +36250,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35492,7 +36267,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35508,7 +36284,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35524,7 +36301,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35540,7 +36318,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35556,7 +36335,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35572,7 +36352,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35588,7 +36369,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35604,7 +36386,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35620,7 +36403,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35636,7 +36420,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35652,7 +36437,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35668,7 +36454,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35684,7 +36471,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35700,7 +36488,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35716,7 +36505,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35732,7 +36522,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35748,7 +36539,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35764,7 +36556,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35780,7 +36573,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35796,7 +36590,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35812,7 +36607,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35828,7 +36624,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35844,7 +36641,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35860,7 +36658,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35876,7 +36675,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35892,7 +36692,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35908,7 +36709,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35924,7 +36726,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35940,7 +36743,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35956,7 +36760,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35972,7 +36777,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -35988,7 +36794,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36004,7 +36811,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36020,7 +36828,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36036,7 +36845,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36052,7 +36862,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36068,7 +36879,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36084,7 +36896,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36100,7 +36913,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36116,7 +36930,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36132,7 +36947,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36148,7 +36964,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36164,7 +36981,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36180,7 +36998,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36196,7 +37015,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36212,7 +37032,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36228,7 +37049,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36244,7 +37066,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36260,7 +37083,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36276,7 +37100,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36292,7 +37117,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36308,7 +37134,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36324,7 +37151,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36340,7 +37168,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36356,7 +37185,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36372,7 +37202,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36388,7 +37219,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36404,7 +37236,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36420,7 +37253,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36436,7 +37270,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36452,7 +37287,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36468,7 +37304,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36484,7 +37321,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36500,7 +37338,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36516,7 +37355,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36532,7 +37372,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36548,7 +37389,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36564,7 +37406,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36580,7 +37423,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36596,7 +37440,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36612,7 +37457,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36628,7 +37474,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36644,7 +37491,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36660,7 +37508,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36676,7 +37525,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36692,7 +37542,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36708,7 +37559,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36724,7 +37576,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36740,7 +37593,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36756,7 +37610,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36772,7 +37627,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36788,7 +37644,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36804,7 +37661,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36820,7 +37678,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36836,7 +37695,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36852,7 +37712,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36868,7 +37729,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36884,7 +37746,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36900,7 +37763,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36916,7 +37780,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36932,7 +37797,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36948,7 +37814,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36964,7 +37831,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36980,7 +37848,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -36996,7 +37865,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37012,7 +37882,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37028,7 +37899,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37044,7 +37916,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37060,7 +37933,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37076,7 +37950,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37092,7 +37967,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37108,7 +37984,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37124,7 +38001,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37140,7 +38018,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37156,7 +38035,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37172,7 +38052,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37188,7 +38069,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37204,7 +38086,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37220,7 +38103,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37236,7 +38120,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37252,7 +38137,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37268,7 +38154,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37284,7 +38171,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37300,7 +38188,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37316,7 +38205,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37332,7 +38222,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37348,7 +38239,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37364,7 +38256,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37380,7 +38273,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37396,7 +38290,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37412,7 +38307,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37428,7 +38324,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37444,7 +38341,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37460,7 +38358,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37476,7 +38375,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37492,7 +38392,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37508,7 +38409,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37524,7 +38426,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37540,7 +38443,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37556,7 +38460,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37572,7 +38477,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37588,7 +38494,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37604,7 +38511,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37620,7 +38528,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37636,7 +38545,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37652,7 +38562,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37668,7 +38579,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37684,7 +38596,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37700,7 +38613,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37716,7 +38630,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37732,7 +38647,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37748,7 +38664,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37764,7 +38681,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37780,7 +38698,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37796,7 +38715,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37812,7 +38732,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37828,7 +38749,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37844,7 +38766,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37860,7 +38783,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37876,7 +38800,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37892,7 +38817,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37908,7 +38834,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37924,7 +38851,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37940,7 +38868,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37956,7 +38885,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37972,7 +38902,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -37988,7 +38919,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38004,7 +38936,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38020,7 +38953,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38036,7 +38970,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38052,7 +38987,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38068,7 +39004,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38084,7 +39021,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38100,7 +39038,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38116,7 +39055,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38132,7 +39072,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38148,7 +39089,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38164,7 +39106,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38180,7 +39123,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38196,7 +39140,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38212,7 +39157,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38228,7 +39174,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38244,7 +39191,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38260,7 +39208,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38276,7 +39225,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38292,7 +39242,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38308,7 +39259,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38324,7 +39276,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38340,7 +39293,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38356,7 +39310,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38372,7 +39327,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38388,7 +39344,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38404,7 +39361,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38420,7 +39378,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38436,7 +39395,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38452,7 +39412,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38468,7 +39429,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38484,7 +39446,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38500,7 +39463,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38516,7 +39480,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38532,7 +39497,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38548,7 +39514,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38564,7 +39531,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38580,7 +39548,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38596,7 +39565,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38612,7 +39582,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38628,7 +39599,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38644,7 +39616,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38660,7 +39633,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38676,7 +39650,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38692,7 +39667,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38708,7 +39684,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38724,7 +39701,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38740,7 +39718,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38756,7 +39735,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38772,7 +39752,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38788,7 +39769,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38804,7 +39786,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38820,7 +39803,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38836,7 +39820,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38852,7 +39837,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38868,7 +39854,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38884,7 +39871,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38900,7 +39888,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38916,7 +39905,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38932,7 +39922,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38948,7 +39939,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38964,7 +39956,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38980,7 +39973,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -38996,7 +39990,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39012,7 +40007,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39028,7 +40024,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39044,7 +40041,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39060,7 +40058,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39076,7 +40075,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39092,7 +40092,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39108,7 +40109,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39124,7 +40126,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39140,7 +40143,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39156,7 +40160,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39172,7 +40177,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39188,7 +40194,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39204,7 +40211,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39220,7 +40228,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39236,7 +40245,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39252,7 +40262,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39268,7 +40279,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39284,7 +40296,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39300,7 +40313,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39316,7 +40330,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39332,7 +40347,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39348,7 +40364,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39364,7 +40381,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39380,7 +40398,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39396,7 +40415,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39412,7 +40432,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39428,7 +40449,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39444,7 +40466,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39460,7 +40483,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39476,7 +40500,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39492,7 +40517,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39508,7 +40534,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39524,7 +40551,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39540,7 +40568,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39556,7 +40585,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39572,7 +40602,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39588,7 +40619,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39604,7 +40636,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39620,7 +40653,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39636,7 +40670,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39652,7 +40687,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39668,7 +40704,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39684,7 +40721,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39700,7 +40738,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39716,7 +40755,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39732,7 +40772,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39748,7 +40789,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39764,7 +40806,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39780,7 +40823,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39796,7 +40840,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39812,7 +40857,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39828,7 +40874,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39844,7 +40891,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39860,7 +40908,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39876,7 +40925,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39892,7 +40942,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39908,7 +40959,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39924,7 +40976,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39940,7 +40993,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39956,7 +41010,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39972,7 +41027,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -39988,7 +41044,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40004,7 +41061,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40020,7 +41078,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40036,7 +41095,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40052,7 +41112,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40068,7 +41129,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40084,7 +41146,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40100,7 +41163,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40116,7 +41180,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40132,7 +41197,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40148,7 +41214,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40164,7 +41231,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40180,7 +41248,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40196,7 +41265,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40212,7 +41282,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40228,7 +41299,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40244,7 +41316,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40260,7 +41333,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40276,7 +41350,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40292,7 +41367,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40308,7 +41384,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40324,7 +41401,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40340,7 +41418,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40356,7 +41435,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40372,7 +41452,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40388,7 +41469,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40404,7 +41486,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40420,7 +41503,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40436,7 +41520,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40452,7 +41537,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40468,7 +41554,8 @@
     "name": "client_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40484,7 +41571,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40500,7 +41588,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40516,7 +41605,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40532,7 +41622,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40548,7 +41639,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40564,7 +41656,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40580,7 +41673,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40596,7 +41690,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40612,7 +41707,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40628,7 +41724,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40644,7 +41741,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40660,7 +41758,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40676,7 +41775,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40692,7 +41792,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40708,7 +41809,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40724,7 +41826,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40740,7 +41843,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40756,7 +41860,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40772,7 +41877,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40788,7 +41894,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40804,7 +41911,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40820,7 +41928,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40836,7 +41945,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40852,7 +41962,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40868,7 +41979,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40884,7 +41996,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40900,7 +42013,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40916,7 +42030,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40932,7 +42047,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40948,7 +42064,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40964,7 +42081,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40980,7 +42098,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -40996,7 +42115,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41012,7 +42132,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41028,7 +42149,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41044,7 +42166,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41060,7 +42183,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41076,7 +42200,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41092,7 +42217,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41108,7 +42234,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41124,7 +42251,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41140,7 +42268,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41156,7 +42285,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41172,7 +42302,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41188,7 +42319,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41204,7 +42336,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41220,7 +42353,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41236,7 +42370,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41252,7 +42387,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41268,7 +42404,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41284,7 +42421,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41300,7 +42438,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41316,7 +42455,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41332,7 +42472,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41348,7 +42489,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41364,7 +42506,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41380,7 +42523,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41396,7 +42540,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41412,7 +42557,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41428,7 +42574,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41444,7 +42591,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41460,7 +42608,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41476,7 +42625,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41492,7 +42642,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41508,7 +42659,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41524,7 +42676,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41540,7 +42693,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41556,7 +42710,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41572,7 +42727,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41588,7 +42744,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41604,7 +42761,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41620,7 +42778,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41636,7 +42795,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41652,7 +42812,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41668,7 +42829,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41684,7 +42846,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41700,7 +42863,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41716,7 +42880,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41732,7 +42897,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41748,7 +42914,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41764,7 +42931,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41780,7 +42948,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41796,7 +42965,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41812,7 +42982,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41828,7 +42999,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41844,7 +43016,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41860,7 +43033,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41876,7 +43050,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41892,7 +43067,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41908,7 +43084,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41924,7 +43101,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41940,7 +43118,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41956,7 +43135,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41972,7 +43152,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -41988,7 +43169,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42004,7 +43186,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42020,7 +43203,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42036,7 +43220,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42052,7 +43237,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42068,7 +43254,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42084,7 +43271,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42100,7 +43288,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42116,7 +43305,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42132,7 +43322,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42148,7 +43339,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42164,7 +43356,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42180,7 +43373,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42196,7 +43390,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42212,7 +43407,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42228,7 +43424,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42244,7 +43441,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42260,7 +43458,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42276,7 +43475,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42292,7 +43492,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42308,7 +43509,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42324,7 +43526,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42340,7 +43543,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42356,7 +43560,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42372,7 +43577,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42388,7 +43594,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42404,7 +43611,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42420,7 +43628,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42436,7 +43645,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42452,7 +43662,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42468,7 +43679,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42484,7 +43696,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42500,7 +43713,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42516,7 +43730,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42532,7 +43747,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42548,7 +43764,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42564,7 +43781,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42580,7 +43798,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42596,7 +43815,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42612,7 +43832,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42628,7 +43849,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42644,7 +43866,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42660,7 +43883,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42676,7 +43900,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42692,7 +43917,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42708,7 +43934,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42724,7 +43951,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42740,7 +43968,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42756,7 +43985,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42772,7 +44002,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42788,7 +44019,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42804,7 +44036,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42820,7 +44053,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42836,7 +44070,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42852,7 +44087,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42868,7 +44104,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42884,7 +44121,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42900,7 +44138,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42916,7 +44155,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42932,7 +44172,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42948,7 +44189,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42964,7 +44206,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42980,7 +44223,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -42996,7 +44240,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43012,7 +44257,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43028,7 +44274,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43044,7 +44291,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43060,7 +44308,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43076,7 +44325,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43092,7 +44342,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43108,7 +44359,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43124,7 +44376,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43140,7 +44393,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43156,7 +44410,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43172,7 +44427,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43188,7 +44444,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43204,7 +44461,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43220,7 +44478,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43236,7 +44495,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43252,7 +44512,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43268,7 +44529,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43284,7 +44546,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43300,7 +44563,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43316,7 +44580,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43332,7 +44597,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43348,7 +44614,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43364,7 +44631,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43380,7 +44648,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43396,7 +44665,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43412,7 +44682,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43428,7 +44699,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43444,7 +44716,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43460,7 +44733,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43476,7 +44750,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43492,7 +44767,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43508,7 +44784,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43524,7 +44801,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43540,7 +44818,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43556,7 +44835,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43572,7 +44852,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43588,7 +44869,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43604,7 +44886,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43620,7 +44903,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43636,7 +44920,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43652,7 +44937,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43668,7 +44954,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43684,7 +44971,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43700,7 +44988,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43716,7 +45005,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43732,7 +45022,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43748,7 +45039,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43764,7 +45056,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43780,7 +45073,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43796,7 +45090,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43812,7 +45107,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43828,7 +45124,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43844,7 +45141,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43860,7 +45158,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43876,7 +45175,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43892,7 +45192,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43908,7 +45209,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43924,7 +45226,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43940,7 +45243,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43956,7 +45260,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43972,7 +45277,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -43988,7 +45294,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44004,7 +45311,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44020,7 +45328,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44036,7 +45345,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44052,7 +45362,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44068,7 +45379,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44084,7 +45396,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44100,7 +45413,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44116,7 +45430,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44132,7 +45447,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44148,7 +45464,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44164,7 +45481,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44180,7 +45498,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44196,7 +45515,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44212,7 +45532,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44228,7 +45549,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44244,7 +45566,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44260,7 +45583,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44276,7 +45600,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44292,7 +45617,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44308,7 +45634,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44324,7 +45651,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44340,7 +45668,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44356,7 +45685,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44372,7 +45702,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44388,7 +45719,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44404,7 +45736,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44420,7 +45753,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44436,7 +45770,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44452,7 +45787,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44468,7 +45804,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44484,7 +45821,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44500,7 +45838,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44516,7 +45855,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44532,7 +45872,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44548,7 +45889,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44564,7 +45906,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44580,7 +45923,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44596,7 +45940,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44612,7 +45957,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44628,7 +45974,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44644,7 +45991,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44660,7 +46008,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44676,7 +46025,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44692,7 +46042,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44708,7 +46059,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44724,7 +46076,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44740,7 +46093,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44756,7 +46110,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44772,7 +46127,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44788,7 +46144,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44804,7 +46161,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44820,7 +46178,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44836,7 +46195,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44852,7 +46212,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44868,7 +46229,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44884,7 +46246,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44900,7 +46263,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44916,7 +46280,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44932,7 +46297,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44948,7 +46314,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44964,7 +46331,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44980,7 +46348,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -44996,7 +46365,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45012,7 +46382,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45028,7 +46399,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45044,7 +46416,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45060,7 +46433,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45076,7 +46450,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45092,7 +46467,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45108,7 +46484,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45124,7 +46501,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45140,7 +46518,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45156,7 +46535,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45172,7 +46552,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45188,7 +46569,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45204,7 +46586,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45220,7 +46603,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45236,7 +46620,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45252,7 +46637,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45268,7 +46654,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45284,7 +46671,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45300,7 +46688,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45316,7 +46705,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45332,7 +46722,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45348,7 +46739,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45364,7 +46756,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45380,7 +46773,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45396,7 +46790,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45412,7 +46807,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45428,7 +46824,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45444,7 +46841,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45460,7 +46858,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45476,7 +46875,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45492,7 +46892,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45508,7 +46909,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45524,7 +46926,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45540,7 +46943,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45556,7 +46960,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45572,7 +46977,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45588,7 +46994,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45604,7 +47011,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45620,7 +47028,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45636,7 +47045,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45652,7 +47062,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45668,7 +47079,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45684,7 +47096,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45700,7 +47113,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45716,7 +47130,8 @@
     "name": "hpack_parser_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45732,7 +47147,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45748,7 +47164,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45764,7 +47181,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45780,7 +47198,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45796,7 +47215,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45812,7 +47232,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45828,7 +47249,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45844,7 +47266,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45860,7 +47283,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45876,7 +47300,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45892,7 +47317,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45908,7 +47334,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45924,7 +47351,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45940,7 +47368,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45956,7 +47385,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45972,7 +47402,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -45988,7 +47419,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46004,7 +47436,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46020,7 +47453,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46036,7 +47470,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46052,7 +47487,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46068,7 +47504,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46084,7 +47521,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46100,7 +47538,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46116,7 +47555,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46132,7 +47572,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46148,7 +47589,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46164,7 +47606,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46180,7 +47623,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46196,7 +47640,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46212,7 +47657,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46228,7 +47674,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46244,7 +47691,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46260,7 +47708,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46276,7 +47725,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46292,7 +47742,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46308,7 +47759,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46324,7 +47776,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46340,7 +47793,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46356,7 +47810,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46372,7 +47827,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46388,7 +47844,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46404,7 +47861,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46420,7 +47878,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46436,7 +47895,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46452,7 +47912,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46468,7 +47929,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46484,7 +47946,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46500,7 +47963,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46516,7 +47980,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46532,7 +47997,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46548,7 +48014,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46564,7 +48031,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46580,7 +48048,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46596,7 +48065,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46612,7 +48082,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46628,7 +48099,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46644,7 +48116,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46660,7 +48133,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46676,7 +48150,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46692,7 +48167,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46708,7 +48184,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46724,7 +48201,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46740,7 +48218,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46756,7 +48235,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46772,7 +48252,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46788,7 +48269,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46804,7 +48286,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46820,7 +48303,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46836,7 +48320,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46852,7 +48337,8 @@
     "name": "http_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46868,7 +48354,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46884,7 +48371,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46900,7 +48388,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46916,7 +48405,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46932,7 +48422,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46948,7 +48439,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46964,7 +48456,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46980,7 +48473,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -46996,7 +48490,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47012,7 +48507,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47028,7 +48524,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47044,7 +48541,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47060,7 +48558,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47076,7 +48575,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47092,7 +48592,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47108,7 +48609,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47124,7 +48626,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47140,7 +48643,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47156,7 +48660,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47172,7 +48677,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47188,7 +48694,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47204,7 +48711,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47220,7 +48728,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47236,7 +48745,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47252,7 +48762,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47268,7 +48779,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47284,7 +48796,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47300,7 +48813,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47316,7 +48830,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47332,7 +48847,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47348,7 +48864,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47364,7 +48881,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47380,7 +48898,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47396,7 +48915,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47412,7 +48932,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47428,7 +48949,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47444,7 +48966,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47460,7 +48983,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47476,7 +49000,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47492,7 +49017,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47508,7 +49034,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47524,7 +49051,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47540,7 +49068,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47556,7 +49085,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47572,7 +49102,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47588,7 +49119,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47604,7 +49136,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47620,7 +49153,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47636,7 +49170,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47652,7 +49187,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47668,7 +49204,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47684,7 +49221,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47700,7 +49238,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47716,7 +49255,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47732,7 +49272,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47748,7 +49289,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47764,7 +49306,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47780,7 +49323,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47796,7 +49340,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47812,7 +49357,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47828,7 +49374,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47844,7 +49391,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47860,7 +49408,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47876,7 +49425,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47892,7 +49442,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47908,7 +49459,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47924,7 +49476,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47940,7 +49493,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47956,7 +49510,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47972,7 +49527,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -47988,7 +49544,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48004,7 +49561,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48020,7 +49578,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48036,7 +49595,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48052,7 +49612,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48068,7 +49629,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48084,7 +49646,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48100,7 +49663,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48116,7 +49680,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48132,7 +49697,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48148,7 +49714,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48164,7 +49731,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48180,7 +49748,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48196,7 +49765,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48212,7 +49782,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48228,7 +49799,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48244,7 +49816,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48260,7 +49833,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48276,7 +49850,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48292,7 +49867,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48308,7 +49884,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48324,7 +49901,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48340,7 +49918,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48356,7 +49935,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48372,7 +49952,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48388,7 +49969,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48404,7 +49986,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48420,7 +50003,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48436,7 +50020,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48452,7 +50037,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48468,7 +50054,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48484,7 +50071,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48500,7 +50088,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48516,7 +50105,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48532,7 +50122,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48548,7 +50139,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48564,7 +50156,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48580,7 +50173,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48596,7 +50190,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48612,7 +50207,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48628,7 +50224,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48644,7 +50241,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48660,7 +50258,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48676,7 +50275,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48692,7 +50292,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48708,7 +50309,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48724,7 +50326,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48740,7 +50343,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48756,7 +50360,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48772,7 +50377,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48788,7 +50394,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48804,7 +50411,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48820,7 +50428,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48836,7 +50445,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48852,7 +50462,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48868,7 +50479,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48884,7 +50496,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48900,7 +50513,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48916,7 +50530,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48932,7 +50547,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48948,7 +50564,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48964,7 +50581,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48980,7 +50598,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -48996,7 +50615,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49012,7 +50632,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49028,7 +50649,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49044,7 +50666,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49060,7 +50683,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49076,7 +50700,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49092,7 +50717,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49108,7 +50734,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49124,7 +50751,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49140,7 +50768,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49156,7 +50785,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49172,7 +50802,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49188,7 +50819,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49204,7 +50836,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49220,7 +50853,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49236,7 +50870,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49252,7 +50887,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49268,7 +50904,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49284,7 +50921,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49300,7 +50938,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49316,7 +50955,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49332,7 +50972,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49348,7 +50989,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49364,7 +51006,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49380,7 +51023,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49396,7 +51040,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49412,7 +51057,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49428,7 +51074,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49444,7 +51091,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49460,7 +51108,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49476,7 +51125,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49492,7 +51142,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49508,7 +51159,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49524,7 +51176,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49540,7 +51193,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49556,7 +51210,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49572,7 +51227,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49588,7 +51244,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49604,7 +51261,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49620,7 +51278,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49636,7 +51295,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49652,7 +51312,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49668,7 +51329,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49684,7 +51346,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49700,7 +51363,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49716,7 +51380,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49732,7 +51397,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49748,7 +51414,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49764,7 +51431,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49780,7 +51448,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49796,7 +51465,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49812,7 +51482,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49828,7 +51499,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49844,7 +51516,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49860,7 +51533,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49876,7 +51550,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49892,7 +51567,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49908,7 +51584,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49924,7 +51601,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49940,7 +51618,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49956,7 +51635,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49972,7 +51652,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -49988,7 +51669,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50004,7 +51686,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50020,7 +51703,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50036,7 +51720,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50052,7 +51737,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50068,7 +51754,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50084,7 +51771,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50100,7 +51788,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50116,7 +51805,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50132,7 +51822,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50148,7 +51839,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50164,7 +51856,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50180,7 +51873,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50196,7 +51890,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50212,7 +51907,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50228,7 +51924,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50244,7 +51941,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50260,7 +51958,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50276,7 +51975,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50292,7 +51992,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50308,7 +52009,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50324,7 +52026,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50340,7 +52043,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50356,7 +52060,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50372,7 +52077,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50388,7 +52094,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50404,7 +52111,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50420,7 +52128,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50436,7 +52145,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50452,7 +52162,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50468,7 +52179,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50484,7 +52196,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50500,7 +52213,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50516,7 +52230,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50532,7 +52247,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50548,7 +52264,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50564,7 +52281,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50580,7 +52298,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50596,7 +52315,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50612,7 +52332,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50628,7 +52349,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50644,7 +52366,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50660,7 +52383,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50676,7 +52400,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50692,7 +52417,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50708,7 +52434,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50724,7 +52451,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50740,7 +52468,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50756,7 +52485,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50772,7 +52502,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50788,7 +52519,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50804,7 +52536,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50820,7 +52553,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50836,7 +52570,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50852,7 +52587,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50868,7 +52604,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50884,7 +52621,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50900,7 +52638,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50916,7 +52655,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50932,7 +52672,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50948,7 +52689,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50964,7 +52706,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50980,7 +52723,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -50996,7 +52740,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51012,7 +52757,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51028,7 +52774,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51044,7 +52791,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51060,7 +52808,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51076,7 +52825,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51092,7 +52842,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51108,7 +52859,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51124,7 +52876,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51140,7 +52893,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51156,7 +52910,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51172,7 +52927,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51188,7 +52944,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51204,7 +52961,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51220,7 +52978,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51236,7 +52995,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51252,7 +53012,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51268,7 +53029,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51284,7 +53046,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51300,7 +53063,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51316,7 +53080,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51332,7 +53097,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51348,7 +53114,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51364,7 +53131,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51380,7 +53148,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51396,7 +53165,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51412,7 +53182,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51428,7 +53199,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51444,7 +53216,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51460,7 +53233,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51476,7 +53250,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51492,7 +53267,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51508,7 +53284,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51524,7 +53301,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51540,7 +53318,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51556,7 +53335,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51572,7 +53352,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51588,7 +53369,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51604,7 +53386,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51620,7 +53403,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51636,7 +53420,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51652,7 +53437,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51668,7 +53454,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51684,7 +53471,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51700,7 +53488,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51716,7 +53505,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51732,7 +53522,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51748,7 +53539,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51764,7 +53556,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51780,7 +53573,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51796,7 +53590,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51812,7 +53607,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51828,7 +53624,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51844,7 +53641,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51860,7 +53658,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51876,7 +53675,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51892,7 +53692,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51908,7 +53709,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51924,7 +53726,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51940,7 +53743,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51956,7 +53760,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51972,7 +53777,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -51988,7 +53794,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52004,7 +53811,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52020,7 +53828,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52036,7 +53845,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52052,7 +53862,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52068,7 +53879,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52084,7 +53896,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52100,7 +53913,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52116,7 +53930,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52132,7 +53947,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52148,7 +53964,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52164,7 +53981,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52180,7 +53998,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52196,7 +54015,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52212,7 +54032,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52228,7 +54049,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52244,7 +54066,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52260,7 +54083,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52276,7 +54100,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52292,7 +54117,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52308,7 +54134,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52324,7 +54151,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52340,7 +54168,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52356,7 +54185,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52372,7 +54202,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52388,7 +54219,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52404,7 +54236,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52420,7 +54253,8 @@
     "name": "json_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52436,7 +54270,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52452,7 +54287,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52468,7 +54304,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52484,7 +54321,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52500,7 +54338,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52516,7 +54355,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52532,7 +54372,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52548,7 +54389,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52564,7 +54406,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52580,7 +54423,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52596,7 +54440,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52612,7 +54457,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52628,7 +54474,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52644,7 +54491,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52660,7 +54508,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52676,7 +54525,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52692,7 +54542,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52708,7 +54559,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52724,7 +54576,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52740,7 +54593,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52756,7 +54610,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52772,7 +54627,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52788,7 +54644,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52804,7 +54661,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52820,7 +54678,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52836,7 +54695,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52852,7 +54712,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52868,7 +54729,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52884,7 +54746,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52900,7 +54763,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52916,7 +54780,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52932,7 +54797,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52948,7 +54814,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52964,7 +54831,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52980,7 +54848,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -52996,7 +54865,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53012,7 +54882,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53028,7 +54899,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53044,7 +54916,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53060,7 +54933,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53076,7 +54950,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53092,7 +54967,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53108,7 +54984,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53124,7 +55001,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53140,7 +55018,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53156,7 +55035,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53172,7 +55052,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53188,7 +55069,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53204,7 +55086,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53220,7 +55103,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53236,7 +55120,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53252,7 +55137,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53268,7 +55154,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53284,7 +55171,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53300,7 +55188,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53316,7 +55205,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53332,7 +55222,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53348,7 +55239,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53364,7 +55256,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53380,7 +55273,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53396,7 +55290,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53412,7 +55307,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53428,7 +55324,8 @@
     "name": "nanopb_fuzzer_response_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53444,7 +55341,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53460,7 +55358,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53476,7 +55375,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53492,7 +55392,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53508,7 +55409,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53524,7 +55426,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53540,7 +55443,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53556,7 +55460,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53572,7 +55477,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53588,7 +55494,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53604,7 +55511,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53620,7 +55528,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53636,7 +55545,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53652,7 +55562,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53668,7 +55579,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53684,7 +55596,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53700,7 +55613,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53716,7 +55630,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53732,7 +55647,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53748,7 +55664,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53764,7 +55681,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53780,7 +55698,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53796,7 +55715,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53812,7 +55732,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53828,7 +55749,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53844,7 +55766,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53860,7 +55783,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53876,7 +55800,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53892,7 +55817,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53908,7 +55834,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53924,7 +55851,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53940,7 +55868,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53956,7 +55885,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53972,7 +55902,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -53988,7 +55919,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54004,7 +55936,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54020,7 +55953,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54036,7 +55970,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54052,7 +55987,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54068,7 +56004,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54084,7 +56021,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54100,7 +56038,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54116,7 +56055,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54132,7 +56072,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54148,7 +56089,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54164,7 +56106,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54180,7 +56123,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54196,7 +56140,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54212,7 +56157,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54228,7 +56174,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54244,7 +56191,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54260,7 +56208,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54276,7 +56225,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54292,7 +56242,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54308,7 +56259,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54324,7 +56276,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54340,7 +56293,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54356,7 +56310,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54372,7 +56327,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54388,7 +56344,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54404,7 +56361,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54420,7 +56378,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54436,7 +56395,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54452,7 +56412,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54468,7 +56429,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54484,7 +56446,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54500,7 +56463,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54516,7 +56480,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54532,7 +56497,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54548,7 +56514,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54564,7 +56531,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54580,7 +56548,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54596,7 +56565,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54612,7 +56582,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54628,7 +56599,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54644,7 +56616,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54660,7 +56633,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54676,7 +56650,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54692,7 +56667,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54708,7 +56684,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54724,7 +56701,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54740,7 +56718,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54756,7 +56735,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54772,7 +56752,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54788,7 +56769,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54804,7 +56786,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54820,7 +56803,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54836,7 +56820,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54852,7 +56837,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54868,7 +56854,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54884,7 +56871,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54900,7 +56888,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54916,7 +56905,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54932,7 +56922,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54948,7 +56939,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54964,7 +56956,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54980,7 +56973,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -54996,7 +56990,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55012,7 +57007,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55028,7 +57024,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55044,7 +57041,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55060,7 +57058,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55076,7 +57075,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55092,7 +57092,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55108,7 +57109,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55124,7 +57126,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55140,7 +57143,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55156,7 +57160,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55172,7 +57177,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55188,7 +57194,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55204,7 +57211,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55220,7 +57228,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55236,7 +57245,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55252,7 +57262,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55268,7 +57279,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55284,7 +57296,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55300,7 +57313,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55316,7 +57330,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55332,7 +57347,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55348,7 +57364,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55364,7 +57381,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55380,7 +57398,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55396,7 +57415,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55412,7 +57432,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55428,7 +57449,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55444,7 +57466,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55460,7 +57483,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55476,7 +57500,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55492,7 +57517,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55508,7 +57534,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55524,7 +57551,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55540,7 +57568,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55556,7 +57585,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55572,7 +57602,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55588,7 +57619,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55604,7 +57636,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55620,7 +57653,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55636,7 +57670,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55652,7 +57687,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55668,7 +57704,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55684,7 +57721,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55700,7 +57738,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55716,7 +57755,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55732,7 +57772,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55748,7 +57789,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55764,7 +57806,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55780,7 +57823,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55796,7 +57840,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55812,7 +57857,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55828,7 +57874,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55844,7 +57891,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55860,7 +57908,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55876,7 +57925,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55892,7 +57942,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55908,7 +57959,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55924,7 +57976,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55940,7 +57993,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55956,7 +58010,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55972,7 +58027,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -55988,7 +58044,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56004,7 +58061,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56020,7 +58078,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56036,7 +58095,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56052,7 +58112,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56068,7 +58129,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56084,7 +58146,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56100,7 +58163,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56116,7 +58180,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56132,7 +58197,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56148,7 +58214,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56164,7 +58231,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56180,7 +58248,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56196,7 +58265,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56212,7 +58282,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56228,7 +58299,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56244,7 +58316,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56260,7 +58333,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56276,7 +58350,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56292,7 +58367,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56308,7 +58384,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56324,7 +58401,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56340,7 +58418,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56356,7 +58435,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56372,7 +58452,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56388,7 +58469,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56404,7 +58486,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56420,7 +58503,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56436,7 +58520,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56452,7 +58537,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56468,7 +58554,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56484,7 +58571,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56500,7 +58588,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56516,7 +58605,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56532,7 +58622,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56548,7 +58639,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56564,7 +58656,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56580,7 +58673,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56596,7 +58690,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56612,7 +58707,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56628,7 +58724,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56644,7 +58741,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56660,7 +58758,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56676,7 +58775,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56692,7 +58792,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56708,7 +58809,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56724,7 +58826,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56740,7 +58843,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56756,7 +58860,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56772,7 +58877,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56788,7 +58894,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56804,7 +58911,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56820,7 +58928,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56836,7 +58945,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56852,7 +58962,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56868,7 +58979,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56884,7 +58996,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56900,7 +59013,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56916,7 +59030,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56932,7 +59047,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56948,7 +59064,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56964,7 +59081,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56980,7 +59098,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -56996,7 +59115,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57012,7 +59132,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57028,7 +59149,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57044,7 +59166,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57060,7 +59183,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57076,7 +59200,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57092,7 +59217,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57108,7 +59234,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57124,7 +59251,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57140,7 +59268,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57156,7 +59285,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57172,7 +59302,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57188,7 +59319,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57204,7 +59336,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57220,7 +59353,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57236,7 +59370,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57252,7 +59387,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57268,7 +59404,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57284,7 +59421,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57300,7 +59438,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57316,7 +59455,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57332,7 +59472,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57348,7 +59489,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57364,7 +59506,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57380,7 +59523,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57396,7 +59540,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57412,7 +59557,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57428,7 +59574,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57444,7 +59591,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57460,7 +59608,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57476,7 +59625,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57492,7 +59642,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57508,7 +59659,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57524,7 +59676,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57540,7 +59693,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57556,7 +59710,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57572,7 +59727,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57588,7 +59744,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57604,7 +59761,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57620,7 +59778,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57636,7 +59795,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57652,7 +59812,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57668,7 +59829,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57684,7 +59846,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57700,7 +59863,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57716,7 +59880,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57732,7 +59897,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57748,7 +59914,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57764,7 +59931,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57780,7 +59948,8 @@
     "name": "nanopb_fuzzer_serverlist_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57796,7 +59965,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57812,7 +59982,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57828,7 +59999,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57844,7 +60016,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57860,7 +60033,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57876,7 +60050,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57892,7 +60067,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57908,7 +60084,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57924,7 +60101,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57940,7 +60118,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57956,7 +60135,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57972,7 +60152,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -57988,7 +60169,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58004,7 +60186,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58020,7 +60203,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58036,7 +60220,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58052,7 +60237,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58068,7 +60254,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58084,7 +60271,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58100,7 +60288,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58116,7 +60305,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58132,7 +60322,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58148,7 +60339,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58164,7 +60356,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58180,7 +60373,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58196,7 +60390,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58212,7 +60407,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58228,7 +60424,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58244,7 +60441,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58260,7 +60458,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58276,7 +60475,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58292,7 +60492,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58308,7 +60509,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58324,7 +60526,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58340,7 +60543,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58356,7 +60560,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58372,7 +60577,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58388,7 +60594,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58404,7 +60611,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58420,7 +60628,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58436,7 +60645,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58452,7 +60662,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58468,7 +60679,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58484,7 +60696,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58500,7 +60713,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58516,7 +60730,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58532,7 +60747,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58548,7 +60764,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58564,7 +60781,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58580,7 +60798,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58596,7 +60815,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58612,7 +60832,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58628,7 +60849,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58644,7 +60866,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58660,7 +60883,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58676,7 +60900,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58692,7 +60917,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58708,7 +60934,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58724,7 +60951,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58740,7 +60968,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58756,7 +60985,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58772,7 +61002,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58788,7 +61019,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58804,7 +61036,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58820,7 +61053,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58836,7 +61070,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58852,7 +61087,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58868,7 +61104,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58884,7 +61121,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58900,7 +61138,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58916,7 +61155,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58932,7 +61172,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58948,7 +61189,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58964,7 +61206,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58980,7 +61223,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -58996,7 +61240,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59012,7 +61257,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59028,7 +61274,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59044,7 +61291,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59060,7 +61308,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59076,7 +61325,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59092,7 +61342,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59108,7 +61359,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59124,7 +61376,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59140,7 +61393,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59156,7 +61410,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59172,7 +61427,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59188,7 +61444,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59204,7 +61461,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59220,7 +61478,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59236,7 +61495,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59252,7 +61512,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59268,7 +61529,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59284,7 +61546,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59300,7 +61563,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59316,7 +61580,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59332,7 +61597,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59348,7 +61614,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59364,7 +61631,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59380,7 +61648,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59396,7 +61665,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59412,7 +61682,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59428,7 +61699,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59444,7 +61716,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59460,7 +61733,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59476,7 +61750,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59492,7 +61767,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59508,7 +61784,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59524,7 +61801,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59540,7 +61818,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59556,7 +61835,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59572,7 +61852,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59588,7 +61869,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59604,7 +61886,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59620,7 +61903,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59636,7 +61920,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59652,7 +61937,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59668,7 +61954,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59684,7 +61971,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59700,7 +61988,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59716,7 +62005,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59732,7 +62022,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59748,7 +62039,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59764,7 +62056,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59780,7 +62073,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59796,7 +62090,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59812,7 +62107,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59828,7 +62124,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59844,7 +62141,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59860,7 +62158,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59876,7 +62175,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59892,7 +62192,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59908,7 +62209,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59924,7 +62226,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59940,7 +62243,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59956,7 +62260,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59972,7 +62277,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -59988,7 +62294,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60004,7 +62311,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60020,7 +62328,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60036,7 +62345,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60052,7 +62362,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60068,7 +62379,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60084,7 +62396,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60100,7 +62413,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60116,7 +62430,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60132,7 +62447,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60148,7 +62464,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60164,7 +62481,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60180,7 +62498,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60196,7 +62515,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60212,7 +62532,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60228,7 +62549,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60244,7 +62566,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60260,7 +62583,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60276,7 +62600,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60292,7 +62617,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60308,7 +62634,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60324,7 +62651,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60340,7 +62668,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60356,7 +62685,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60372,7 +62702,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60388,7 +62719,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60404,7 +62736,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60420,7 +62753,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60436,7 +62770,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60452,7 +62787,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60468,7 +62804,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60484,7 +62821,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60500,7 +62838,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60516,7 +62855,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60532,7 +62872,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60548,7 +62889,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60564,7 +62906,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60580,7 +62923,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60596,7 +62940,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60612,7 +62957,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60628,7 +62974,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60644,7 +62991,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60660,7 +63008,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60676,7 +63025,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60692,7 +63042,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60708,7 +63059,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60724,7 +63076,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60740,7 +63093,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60756,7 +63110,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60772,7 +63127,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60788,7 +63144,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60804,7 +63161,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60820,7 +63178,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60836,7 +63195,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60852,7 +63212,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60868,7 +63229,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60884,7 +63246,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60900,7 +63263,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60916,7 +63280,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60932,7 +63297,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60948,7 +63314,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60964,7 +63331,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60980,7 +63348,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -60996,7 +63365,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61012,7 +63382,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61028,7 +63399,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61044,7 +63416,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61060,7 +63433,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61076,7 +63450,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61092,7 +63467,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61108,7 +63484,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61124,7 +63501,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61140,7 +63518,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61156,7 +63535,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61172,7 +63552,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61188,7 +63569,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61204,7 +63586,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61220,7 +63603,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61236,7 +63620,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61252,7 +63637,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61268,7 +63654,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61284,7 +63671,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61300,7 +63688,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61316,7 +63705,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61332,7 +63722,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61348,7 +63739,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61364,7 +63756,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61380,7 +63773,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61396,7 +63790,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61412,7 +63807,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61428,7 +63824,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61444,7 +63841,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61460,7 +63858,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61476,7 +63875,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61492,7 +63892,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61508,7 +63909,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61524,7 +63926,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61540,7 +63943,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61556,7 +63960,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61572,7 +63977,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61588,7 +63994,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61604,7 +64011,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61620,7 +64028,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61636,7 +64045,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61652,7 +64062,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61668,7 +64079,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61684,7 +64096,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61700,7 +64113,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61716,7 +64130,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61732,7 +64147,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61748,7 +64164,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61764,7 +64181,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61780,7 +64198,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61796,7 +64215,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61812,7 +64232,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61828,7 +64249,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61844,7 +64266,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61860,7 +64283,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61876,7 +64300,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61892,7 +64317,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61908,7 +64334,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61924,7 +64351,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61940,7 +64368,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61956,7 +64385,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61972,7 +64402,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -61988,7 +64419,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62004,7 +64436,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62020,7 +64453,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62036,7 +64470,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62052,7 +64487,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62068,7 +64504,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62084,7 +64521,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62100,7 +64538,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62116,7 +64555,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62132,7 +64572,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62148,7 +64589,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62164,7 +64606,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62180,7 +64623,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62196,7 +64640,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62212,7 +64657,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62228,7 +64674,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62244,7 +64691,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62260,7 +64708,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62276,7 +64725,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62292,7 +64742,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62308,7 +64759,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62324,7 +64776,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62340,7 +64793,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62356,7 +64810,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62372,7 +64827,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62388,7 +64844,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62404,7 +64861,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62420,7 +64878,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62436,7 +64895,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62452,7 +64912,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62468,7 +64929,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62484,7 +64946,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62500,7 +64963,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62516,7 +64980,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62532,7 +64997,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62548,7 +65014,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62564,7 +65031,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62580,7 +65048,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62596,7 +65065,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62612,7 +65082,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62628,7 +65099,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62644,7 +65116,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62660,7 +65133,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62676,7 +65150,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62692,7 +65167,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62708,7 +65184,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62724,7 +65201,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62740,7 +65218,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62756,7 +65235,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62772,7 +65252,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62788,7 +65269,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62804,7 +65286,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62820,7 +65303,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62836,7 +65320,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62852,7 +65337,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62868,7 +65354,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62884,7 +65371,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62900,7 +65388,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62916,7 +65405,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62932,7 +65422,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62948,7 +65439,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62964,7 +65456,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62980,7 +65473,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -62996,7 +65490,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63012,7 +65507,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63028,7 +65524,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63044,7 +65541,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63060,7 +65558,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63076,7 +65575,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63092,7 +65592,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63108,7 +65609,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63124,7 +65626,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63140,7 +65643,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63156,7 +65660,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63172,7 +65677,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63188,7 +65694,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63204,7 +65711,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63220,7 +65728,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63236,7 +65745,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63252,7 +65762,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63268,7 +65779,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63284,7 +65796,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63300,7 +65813,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63316,7 +65830,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63332,7 +65847,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63348,7 +65864,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63364,7 +65881,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63380,7 +65898,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63396,7 +65915,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63412,7 +65932,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63428,7 +65949,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63444,7 +65966,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63460,7 +65983,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63476,7 +66000,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63492,7 +66017,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63508,7 +66034,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63524,7 +66051,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63540,7 +66068,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63556,7 +66085,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63572,7 +66102,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63588,7 +66119,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63604,7 +66136,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63620,7 +66153,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63636,7 +66170,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63652,7 +66187,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63668,7 +66204,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63684,7 +66221,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63700,7 +66238,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63716,7 +66255,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63732,7 +66272,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63748,7 +66289,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63764,7 +66306,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63780,7 +66323,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63796,7 +66340,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63812,7 +66357,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63828,7 +66374,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63844,7 +66391,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63860,7 +66408,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63876,7 +66425,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63892,7 +66442,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63908,7 +66459,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63924,7 +66476,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63940,7 +66493,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63956,7 +66510,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63972,7 +66527,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -63988,7 +66544,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64004,7 +66561,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64020,7 +66578,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64036,7 +66595,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64052,7 +66612,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64068,7 +66629,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64084,7 +66646,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64100,7 +66663,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64116,7 +66680,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64132,7 +66697,8 @@
     "name": "server_fuzzer_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64148,7 +66714,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64164,7 +66731,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64180,7 +66748,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64196,7 +66765,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64212,7 +66782,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64228,7 +66799,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64244,7 +66816,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64260,7 +66833,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64276,7 +66850,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64292,7 +66867,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64308,7 +66884,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64324,7 +66901,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64340,7 +66918,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64356,7 +66935,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64372,7 +66952,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64388,7 +66969,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64404,7 +66986,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64420,7 +67003,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64436,7 +67020,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64452,7 +67037,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64468,7 +67054,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64484,7 +67071,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64500,7 +67088,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64516,7 +67105,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64532,7 +67122,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64548,7 +67139,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64564,7 +67156,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64580,7 +67173,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64596,7 +67190,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64612,7 +67207,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64628,7 +67224,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64644,7 +67241,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64660,7 +67258,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64676,7 +67275,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64692,7 +67292,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64708,7 +67309,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64724,7 +67326,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64740,7 +67343,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64756,7 +67360,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64772,7 +67377,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64788,7 +67394,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64804,7 +67411,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64820,7 +67428,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64836,7 +67445,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64852,7 +67462,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64868,7 +67479,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64884,7 +67496,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64900,7 +67513,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64916,7 +67530,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64932,7 +67547,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64948,7 +67564,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64964,7 +67581,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64980,7 +67598,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -64996,7 +67615,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65012,7 +67632,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65028,7 +67649,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65044,7 +67666,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65060,7 +67683,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65076,7 +67700,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65092,7 +67717,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65108,7 +67734,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65124,7 +67751,8 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }, 
   {
     "args": [
@@ -65140,6 +67768,7 @@
     "name": "uri_fuzzer_test_one_entry", 
     "platforms": [
       "linux"
-    ]
+    ], 
+    "uses_polling": false
   }
 ]
diff --git a/vsprojects/build_plugins.bat b/vsprojects/build_plugins.bat
index 4c33a58..7c8e056 100644
--- a/vsprojects/build_plugins.bat
+++ b/vsprojects/build_plugins.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Convenience script to build gRPC protoc plugins from command line. protoc plugins are used to generate service stub code from .proto service defintions.
 
 setlocal
diff --git a/vsprojects/build_vs2010.bat b/vsprojects/build_vs2010.bat
index 1bc3c86..d951295 100644
--- a/vsprojects/build_vs2010.bat
+++ b/vsprojects/build_vs2010.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Convenience wrapper that runs specified gRPC target using msbuild
 @rem Usage: build_vs2010.bat TARGET_NAME
 
diff --git a/vsprojects/build_vs2013.bat b/vsprojects/build_vs2013.bat
index 82c0a3a..c500bf1 100644
--- a/vsprojects/build_vs2013.bat
+++ b/vsprojects/build_vs2013.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Convenience wrapper that runs specified gRPC target using msbuild
 @rem Usage: build_vs2013.bat TARGET_NAME
 
diff --git a/vsprojects/build_vs2015.bat b/vsprojects/build_vs2015.bat
index c6e1b43..e2f4b3d 100644
--- a/vsprojects/build_vs2015.bat
+++ b/vsprojects/build_vs2015.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @rem Convenience wrapper that runs specified gRPC target using msbuild
 @rem Usage: build_vs2015.bat TARGET_NAME
 
diff --git a/vsprojects/coapp/openssl/buildall.bat b/vsprojects/coapp/openssl/buildall.bat
index 2bf1c87..f5797ab 100644
--- a/vsprojects/coapp/openssl/buildall.bat
+++ b/vsprojects/coapp/openssl/buildall.bat
@@ -1,3 +1,31 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
 
 rem Restore using NuGet dependencies (Download NuGet from nuget.org and put it in this directory first)
 nuget restore  || goto eof:
diff --git a/vsprojects/coapp/zlib/buildall.bat b/vsprojects/coapp/zlib/buildall.bat
index 840410a..2b4b4a1 100644
--- a/vsprojects/coapp/zlib/buildall.bat
+++ b/vsprojects/coapp/zlib/buildall.bat
@@ -1,3 +1,32 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem     * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem     * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem     * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@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.
+
 @echo off
 setlocal
 
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
index 0ec53ac..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" />
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
index 491aeae..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>
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
index 96bee41..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" />
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index fe9eed7..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>
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index 6a2843e..a20d386 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -293,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" />
@@ -316,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" />
@@ -422,6 +424,7 @@
     <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\v1\load_balancer.pb.h" />
     <ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h" />
@@ -474,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">
@@ -728,6 +733,12 @@
     </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\v1\load_balancer.pb.c">
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index 7d53be7..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,6 +442,15 @@
     <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>
@@ -576,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>
@@ -641,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>
@@ -959,6 +977,9 @@
     <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>
@@ -1091,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>
@@ -1133,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 fbf26a2..09748f0 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -305,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" />
@@ -451,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">
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 2500d5c..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>
@@ -575,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>
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>
+