gitextract_m5s28tuc/ ├── .github/ │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── commit-checks.yml │ └── stale.yaml ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── Gopkg.toml ├── LICENSE ├── Makefile ├── NOTICE ├── PROTOCOL.md ├── README.md ├── THIRD_PARTY ├── _tools/ │ ├── .gitignore │ └── src/ │ ├── github.com/ │ │ ├── kisielk/ │ │ │ ├── errcheck/ │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── internal/ │ │ │ │ │ └── errcheck/ │ │ │ │ │ └── errcheck.go │ │ │ │ └── main.go │ │ │ └── gotool/ │ │ │ ├── LEGAL │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── go13.go │ │ │ ├── go14-15.go │ │ │ ├── go16-18.go │ │ │ ├── internal/ │ │ │ │ └── load/ │ │ │ │ ├── path.go │ │ │ │ ├── pkg.go │ │ │ │ └── search.go │ │ │ ├── match.go │ │ │ ├── match18.go │ │ │ └── tool.go │ │ └── twitchtv/ │ │ └── retool/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── add.go │ │ ├── build.go │ │ ├── clean.go │ │ ├── do.go │ │ ├── input.go │ │ ├── main.go │ │ ├── manifest.go │ │ ├── print.go │ │ ├── remove.go │ │ ├── spec.go │ │ ├── sync.go │ │ ├── tool.go │ │ ├── tooldir.go │ │ ├── upgrade.go │ │ └── vendor/ │ │ └── github.com/ │ │ ├── Masterminds/ │ │ │ └── semver/ │ │ │ ├── LICENSE.txt │ │ │ ├── README.md │ │ │ ├── collection.go │ │ │ ├── constraints.go │ │ │ ├── doc.go │ │ │ └── version.go │ │ └── pkg/ │ │ └── errors/ │ │ ├── LICENSE │ │ ├── README.md │ │ ├── errors.go │ │ └── stack.go │ ├── golang.org/ │ │ └── x/ │ │ ├── sys/ │ │ │ └── execabs/ │ │ │ └── execabs.go │ │ └── tools/ │ │ └── go/ │ │ ├── ast/ │ │ │ └── astutil/ │ │ │ ├── enclosing.go │ │ │ ├── imports.go │ │ │ ├── rewrite.go │ │ │ └── util.go │ │ ├── buildutil/ │ │ │ ├── allpackages.go │ │ │ ├── fakecontext.go │ │ │ ├── overlay.go │ │ │ ├── tags.go │ │ │ └── util.go │ │ ├── internal/ │ │ │ └── cgo/ │ │ │ ├── cgo.go │ │ │ └── cgo_pkgconfig.go │ │ └── loader/ │ │ ├── doc.go │ │ ├── loader.go │ │ └── util.go │ └── google.golang.org/ │ └── protobuf/ │ ├── cmd/ │ │ └── protoc-gen-go/ │ │ ├── internal_gengo/ │ │ │ ├── init.go │ │ │ ├── main.go │ │ │ ├── reflect.go │ │ │ └── well_known_types.go │ │ └── main.go │ ├── compiler/ │ │ └── protogen/ │ │ └── protogen.go │ ├── encoding/ │ │ ├── prototext/ │ │ │ ├── decode.go │ │ │ ├── doc.go │ │ │ └── encode.go │ │ └── protowire/ │ │ └── wire.go │ ├── internal/ │ │ ├── descfmt/ │ │ │ └── stringer.go │ │ ├── descopts/ │ │ │ └── options.go │ │ ├── detrand/ │ │ │ └── rand.go │ │ ├── encoding/ │ │ │ ├── defval/ │ │ │ │ └── default.go │ │ │ ├── messageset/ │ │ │ │ └── messageset.go │ │ │ ├── tag/ │ │ │ │ └── tag.go │ │ │ └── text/ │ │ │ ├── decode.go │ │ │ ├── decode_number.go │ │ │ ├── decode_string.go │ │ │ ├── decode_token.go │ │ │ ├── doc.go │ │ │ └── encode.go │ │ ├── errors/ │ │ │ ├── errors.go │ │ │ ├── is_go112.go │ │ │ └── is_go113.go │ │ ├── filedesc/ │ │ │ ├── build.go │ │ │ ├── desc.go │ │ │ ├── desc_init.go │ │ │ ├── desc_lazy.go │ │ │ ├── desc_list.go │ │ │ ├── desc_list_gen.go │ │ │ └── placeholder.go │ │ ├── filetype/ │ │ │ └── build.go │ │ ├── flags/ │ │ │ ├── flags.go │ │ │ ├── proto_legacy_disable.go │ │ │ └── proto_legacy_enable.go │ │ ├── genid/ │ │ │ ├── any_gen.go │ │ │ ├── api_gen.go │ │ │ ├── descriptor_gen.go │ │ │ ├── doc.go │ │ │ ├── duration_gen.go │ │ │ ├── empty_gen.go │ │ │ ├── field_mask_gen.go │ │ │ ├── goname.go │ │ │ ├── map_entry.go │ │ │ ├── source_context_gen.go │ │ │ ├── struct_gen.go │ │ │ ├── timestamp_gen.go │ │ │ ├── type_gen.go │ │ │ ├── wrappers.go │ │ │ └── wrappers_gen.go │ │ ├── impl/ │ │ │ ├── api_export.go │ │ │ ├── checkinit.go │ │ │ ├── codec_extension.go │ │ │ ├── codec_field.go │ │ │ ├── codec_gen.go │ │ │ ├── codec_map.go │ │ │ ├── codec_map_go111.go │ │ │ ├── codec_map_go112.go │ │ │ ├── codec_message.go │ │ │ ├── codec_messageset.go │ │ │ ├── codec_reflect.go │ │ │ ├── codec_tables.go │ │ │ ├── codec_unsafe.go │ │ │ ├── convert.go │ │ │ ├── convert_list.go │ │ │ ├── convert_map.go │ │ │ ├── decode.go │ │ │ ├── encode.go │ │ │ ├── enum.go │ │ │ ├── extension.go │ │ │ ├── legacy_enum.go │ │ │ ├── legacy_export.go │ │ │ ├── legacy_extension.go │ │ │ ├── legacy_file.go │ │ │ ├── legacy_message.go │ │ │ ├── merge.go │ │ │ ├── merge_gen.go │ │ │ ├── message.go │ │ │ ├── message_reflect.go │ │ │ ├── message_reflect_field.go │ │ │ ├── message_reflect_gen.go │ │ │ ├── pointer_reflect.go │ │ │ ├── pointer_unsafe.go │ │ │ ├── validate.go │ │ │ └── weak.go │ │ ├── order/ │ │ │ ├── order.go │ │ │ └── range.go │ │ ├── pragma/ │ │ │ └── pragma.go │ │ ├── set/ │ │ │ └── ints.go │ │ ├── strs/ │ │ │ ├── strings.go │ │ │ ├── strings_pure.go │ │ │ └── strings_unsafe.go │ │ └── version/ │ │ └── version.go │ ├── proto/ │ │ ├── checkinit.go │ │ ├── decode.go │ │ ├── decode_gen.go │ │ ├── doc.go │ │ ├── encode.go │ │ ├── encode_gen.go │ │ ├── equal.go │ │ ├── extension.go │ │ ├── merge.go │ │ ├── messageset.go │ │ ├── proto.go │ │ ├── proto_methods.go │ │ ├── proto_reflect.go │ │ ├── reset.go │ │ ├── size.go │ │ ├── size_gen.go │ │ └── wrappers.go │ ├── reflect/ │ │ ├── protodesc/ │ │ │ ├── desc.go │ │ │ ├── desc_init.go │ │ │ ├── desc_resolve.go │ │ │ ├── desc_validate.go │ │ │ └── proto.go │ │ ├── protoreflect/ │ │ │ ├── methods.go │ │ │ ├── proto.go │ │ │ ├── source.go │ │ │ ├── source_gen.go │ │ │ ├── type.go │ │ │ ├── value.go │ │ │ ├── value_pure.go │ │ │ ├── value_union.go │ │ │ └── value_unsafe.go │ │ └── protoregistry/ │ │ └── registry.go │ ├── runtime/ │ │ ├── protoiface/ │ │ │ ├── legacy.go │ │ │ └── methods.go │ │ └── protoimpl/ │ │ ├── impl.go │ │ └── version.go │ └── types/ │ ├── descriptorpb/ │ │ └── descriptor.pb.go │ └── pluginpb/ │ └── plugin.pb.go ├── check_protoc_version.sh ├── client_options.go ├── client_options_test.go ├── clientcompat/ │ ├── README.md │ ├── clientcompat.go │ ├── clientcompat.proto │ ├── gen.go │ ├── gocompat/ │ │ └── gocompat.go │ ├── internal/ │ │ └── clientcompat/ │ │ ├── clientcompat.pb.go │ │ └── clientcompat.twirp.go │ ├── main.go │ └── run.go ├── context.go ├── ctxsetters/ │ └── ctxsetters.go ├── docs/ │ ├── best_practices.md │ ├── command_line.md │ ├── curl.md │ ├── errors.md │ ├── example.md │ ├── headers.md │ ├── hooks.md │ ├── install.md │ ├── intro.md │ ├── migrate_to_twirp.md │ ├── mux.md │ ├── protobuf_and_json.md │ ├── routing.md │ ├── spec_v5.md │ ├── spec_v6.md │ ├── spec_v7.md │ └── version_matrix.md ├── errors.go ├── errors_test.go ├── example/ │ ├── cmd/ │ │ ├── client/ │ │ │ └── main.go │ │ └── server/ │ │ ├── README.md │ │ ├── main.go │ │ └── statter.go │ ├── gen.go │ ├── service.pb.go │ ├── service.proto │ └── service.twirp.go ├── hooks/ │ └── statsd/ │ ├── statsd.go │ └── statsd_test.go ├── interceptors.go ├── interceptors_test.go ├── internal/ │ ├── contextkeys/ │ │ └── keys.go │ ├── descriptors/ │ │ └── descriptors.go │ ├── gen/ │ │ ├── logging.go │ │ ├── main.go │ │ ├── stringutils/ │ │ │ └── stringutils.go │ │ ├── typemap/ │ │ │ ├── testdata/ │ │ │ │ ├── fileset.pb │ │ │ │ ├── gen.go │ │ │ │ ├── importer.proto │ │ │ │ ├── public_importer.proto │ │ │ │ ├── public_reimporter.proto │ │ │ │ ├── root_pkg.proto │ │ │ │ └── service.proto │ │ │ ├── typemap.go │ │ │ └── typemap_test.go │ │ ├── version.go │ │ └── wrappers.go │ └── twirptest/ │ ├── client_1_13_test.go │ ├── client_test.go │ ├── empty_service/ │ │ ├── compile_test.go │ │ ├── empty_service.pb.go │ │ ├── empty_service.proto │ │ ├── empty_service.twirp.go │ │ └── gen.go │ ├── gen.go │ ├── google_protobuf_imports/ │ │ ├── compile_test.go │ │ ├── gen.go │ │ ├── service.pb.go │ │ ├── service.proto │ │ └── service.twirp.go │ ├── hatmakers.go │ ├── importable/ │ │ ├── compile_test.go │ │ ├── gen.go │ │ ├── importable.pb.go │ │ ├── importable.proto │ │ └── importable.twirp.go │ ├── importer/ │ │ ├── compile_test.go │ │ ├── gen.go │ │ ├── importer.pb.go │ │ ├── importer.proto │ │ └── importer.twirp.go │ ├── importer_local/ │ │ ├── compile_test.go │ │ ├── gen.go │ │ ├── importer_local.pb.go │ │ ├── importer_local.proto │ │ ├── importer_local.twirp.go │ │ ├── importer_local_msgdef.pb.go │ │ └── importer_local_msgdef.proto │ ├── importmapping/ │ │ ├── compile_test.go │ │ ├── gen.go │ │ ├── gen.sh │ │ ├── protoc_gen-x.sh │ │ ├── x/ │ │ │ ├── x.pb.go │ │ │ ├── x.proto │ │ │ └── x.twirp.go │ │ └── y/ │ │ ├── y.pb.go │ │ └── y.proto │ ├── json_serialization/ │ │ ├── gen.go │ │ ├── json_serialization.pb.go │ │ ├── json_serialization.proto │ │ ├── json_serialization.twirp.go │ │ └── json_serialization_test.go │ ├── multiple/ │ │ ├── gen.go │ │ ├── multiple1.pb.go │ │ ├── multiple1.proto │ │ ├── multiple1.twirp.go │ │ ├── multiple2.pb.go │ │ ├── multiple2.proto │ │ ├── multiple2.twirp.go │ │ └── multiple_test.go │ ├── no_package_name/ │ │ ├── gen.go │ │ ├── no_package_name.pb.go │ │ ├── no_package_name.proto │ │ └── no_package_name.twirp.go │ ├── no_package_name_importer/ │ │ ├── compile_test.go │ │ ├── gen.go │ │ ├── no_package_name_importer.pb.go │ │ ├── no_package_name_importer.proto │ │ └── no_package_name_importer.twirp.go │ ├── service.pb.go │ ├── service.proto │ ├── service.twirp.go │ ├── service_method_same_name/ │ │ ├── compile_test.go │ │ ├── gen.go │ │ ├── service_method_same_name.pb.go │ │ ├── service_method_same_name.proto │ │ └── service_method_same_name.twirp.go │ ├── service_test.go │ └── snake_case_names/ │ ├── compatibility_test.go │ ├── compile_test.go │ ├── gen.go │ ├── snake_case_names.pb.go │ ├── snake_case_names.proto │ └── snake_case_names.twirp.go ├── license_test.go ├── protoc-gen-twirp/ │ ├── command_line.go │ ├── command_line_test.go │ ├── generator.go │ ├── generator_test.go │ ├── go_naming.go │ ├── go_naming_test.go │ └── main.go ├── server_options.go ├── server_options_test.go ├── tools.json ├── vendor/ │ ├── github.com/ │ │ ├── davecgh/ │ │ │ └── go-spew/ │ │ │ ├── LICENSE │ │ │ └── spew/ │ │ │ ├── bypass.go │ │ │ ├── bypasssafe.go │ │ │ ├── common.go │ │ │ ├── config.go │ │ │ ├── doc.go │ │ │ ├── dump.go │ │ │ ├── format.go │ │ │ └── spew.go │ │ ├── pkg/ │ │ │ └── errors/ │ │ │ ├── LICENSE │ │ │ ├── errors.go │ │ │ └── stack.go │ │ ├── pmezard/ │ │ │ └── go-difflib/ │ │ │ ├── LICENSE │ │ │ └── difflib/ │ │ │ └── difflib.go │ │ └── stretchr/ │ │ └── testify/ │ │ ├── LICENSE │ │ ├── assert/ │ │ │ ├── assertion_format.go │ │ │ ├── assertion_forward.go │ │ │ ├── assertions.go │ │ │ ├── doc.go │ │ │ ├── errors.go │ │ │ ├── forward_assertions.go │ │ │ └── http_assertions.go │ │ └── require/ │ │ ├── doc.go │ │ ├── forward_requirements.go │ │ ├── require.go │ │ ├── require_forward.go │ │ └── requirements.go │ └── google.golang.org/ │ └── protobuf/ │ ├── AUTHORS │ ├── CONTRIBUTORS │ ├── LICENSE │ ├── PATENTS │ ├── encoding/ │ │ ├── protojson/ │ │ │ ├── decode.go │ │ │ ├── doc.go │ │ │ ├── encode.go │ │ │ └── well_known_types.go │ │ ├── prototext/ │ │ │ ├── decode.go │ │ │ ├── doc.go │ │ │ └── encode.go │ │ └── protowire/ │ │ └── wire.go │ ├── internal/ │ │ ├── descfmt/ │ │ │ └── stringer.go │ │ ├── descopts/ │ │ │ └── options.go │ │ ├── detrand/ │ │ │ └── rand.go │ │ ├── encoding/ │ │ │ ├── defval/ │ │ │ │ └── default.go │ │ │ ├── json/ │ │ │ │ ├── decode.go │ │ │ │ ├── decode_number.go │ │ │ │ ├── decode_string.go │ │ │ │ ├── decode_token.go │ │ │ │ └── encode.go │ │ │ ├── messageset/ │ │ │ │ └── messageset.go │ │ │ ├── tag/ │ │ │ │ └── tag.go │ │ │ └── text/ │ │ │ ├── decode.go │ │ │ ├── decode_number.go │ │ │ ├── decode_string.go │ │ │ ├── decode_token.go │ │ │ ├── doc.go │ │ │ └── encode.go │ │ ├── errors/ │ │ │ ├── errors.go │ │ │ ├── is_go112.go │ │ │ └── is_go113.go │ │ ├── filedesc/ │ │ │ ├── build.go │ │ │ ├── desc.go │ │ │ ├── desc_init.go │ │ │ ├── desc_lazy.go │ │ │ ├── desc_list.go │ │ │ ├── desc_list_gen.go │ │ │ └── placeholder.go │ │ ├── filetype/ │ │ │ └── build.go │ │ ├── flags/ │ │ │ ├── flags.go │ │ │ ├── proto_legacy_disable.go │ │ │ └── proto_legacy_enable.go │ │ ├── genid/ │ │ │ ├── any_gen.go │ │ │ ├── api_gen.go │ │ │ ├── descriptor_gen.go │ │ │ ├── doc.go │ │ │ ├── duration_gen.go │ │ │ ├── empty_gen.go │ │ │ ├── field_mask_gen.go │ │ │ ├── goname.go │ │ │ ├── map_entry.go │ │ │ ├── source_context_gen.go │ │ │ ├── struct_gen.go │ │ │ ├── timestamp_gen.go │ │ │ ├── type_gen.go │ │ │ ├── wrappers.go │ │ │ └── wrappers_gen.go │ │ ├── impl/ │ │ │ ├── api_export.go │ │ │ ├── checkinit.go │ │ │ ├── codec_extension.go │ │ │ ├── codec_field.go │ │ │ ├── codec_gen.go │ │ │ ├── codec_map.go │ │ │ ├── codec_map_go111.go │ │ │ ├── codec_map_go112.go │ │ │ ├── codec_message.go │ │ │ ├── codec_messageset.go │ │ │ ├── codec_reflect.go │ │ │ ├── codec_tables.go │ │ │ ├── codec_unsafe.go │ │ │ ├── convert.go │ │ │ ├── convert_list.go │ │ │ ├── convert_map.go │ │ │ ├── decode.go │ │ │ ├── encode.go │ │ │ ├── enum.go │ │ │ ├── extension.go │ │ │ ├── legacy_enum.go │ │ │ ├── legacy_export.go │ │ │ ├── legacy_extension.go │ │ │ ├── legacy_file.go │ │ │ ├── legacy_message.go │ │ │ ├── merge.go │ │ │ ├── merge_gen.go │ │ │ ├── message.go │ │ │ ├── message_reflect.go │ │ │ ├── message_reflect_field.go │ │ │ ├── message_reflect_gen.go │ │ │ ├── pointer_reflect.go │ │ │ ├── pointer_unsafe.go │ │ │ ├── validate.go │ │ │ └── weak.go │ │ ├── order/ │ │ │ ├── order.go │ │ │ └── range.go │ │ ├── pragma/ │ │ │ └── pragma.go │ │ ├── set/ │ │ │ └── ints.go │ │ ├── strs/ │ │ │ ├── strings.go │ │ │ ├── strings_pure.go │ │ │ └── strings_unsafe.go │ │ └── version/ │ │ └── version.go │ ├── proto/ │ │ ├── checkinit.go │ │ ├── decode.go │ │ ├── decode_gen.go │ │ ├── doc.go │ │ ├── encode.go │ │ ├── encode_gen.go │ │ ├── equal.go │ │ ├── extension.go │ │ ├── merge.go │ │ ├── messageset.go │ │ ├── proto.go │ │ ├── proto_methods.go │ │ ├── proto_reflect.go │ │ ├── reset.go │ │ ├── size.go │ │ ├── size_gen.go │ │ └── wrappers.go │ ├── reflect/ │ │ ├── protoreflect/ │ │ │ ├── methods.go │ │ │ ├── proto.go │ │ │ ├── source.go │ │ │ ├── source_gen.go │ │ │ ├── type.go │ │ │ ├── value.go │ │ │ ├── value_pure.go │ │ │ ├── value_union.go │ │ │ └── value_unsafe.go │ │ └── protoregistry/ │ │ └── registry.go │ ├── runtime/ │ │ ├── protoiface/ │ │ │ ├── legacy.go │ │ │ └── methods.go │ │ └── protoimpl/ │ │ ├── impl.go │ │ └── version.go │ └── types/ │ ├── descriptorpb/ │ │ └── descriptor.pb.go │ ├── known/ │ │ ├── emptypb/ │ │ │ └── empty.pb.go │ │ └── wrapperspb/ │ │ └── wrappers.pb.go │ └── pluginpb/ │ └── plugin.pb.go ├── vendor_test.go ├── version_constant.go └── website/ ├── .gitignore ├── core/ │ └── Footer.js ├── i18n/ │ └── en.json ├── package.json ├── pages/ │ └── en/ │ ├── help.js │ ├── index.js │ └── users.js ├── sidebars.json ├── siteConfig.js └── static/ ├── .well-known/ │ └── assetlinks.json └── css/ └── custom.css